Re: how I know if a interrupt is ioapic_edge_type or ioapic_level_type? [Was Re: [Fwd: Re: [Linux-usb-users] Fwd: Re:2.6.17-rc6-mm2 - USB issues]]

From: Randy.Dunlap
Date: Thu Jun 22 2006 - 19:21:03 EST


On Thu, 22 Jun 2006 23:46:38 +0100 Sergio Monteiro Basto wrote:

> On Thu, 2006-06-22 at 14:29 -0700, Randy.Dunlap wrote:
> > On Thu, 22 Jun 2006 12:56:25 +0100 Sergio Monteiro Basto wrote:
> >
> > > On Wed, 2006-06-21 at 21:08 -0700, Randy.Dunlap wrote:
> > > >
> > > > If you have a specific issue/problem, it would probably be
> > > > better just to focus on that.
> > >
> > > on linux-2.6.17/drivers/pci/quirks.c
> > >
> > > * we must mask the PCI_INTERRUPT_LINE value versus 0xf to get
> > > * interrupts delivered properly.
> > > */
> > >
> > > static void quirk_via_irq(struct pci_dev *dev)
> > > {
> > > u8 irq, new_irq;
> > >
> > > I want here put something like: if ( dev->irq != XT-PIC) return and don't quirk this dev.
> > > else
> >
> > I don't think the interrupt device mode is known by this code (AFAICT
> > with a quick look). The function is only called for certain VIA chipsets.
> >
> > Do you want the quirk for any particular hardware device?
> > You might be able to look at the function's <dev> parameter
> > to decide on using the quirk or not.
> >
> >
> > > new_irq = dev->irq & 0xf;
> > > pci_read_config_byte(dev, PCI_INTERRUPT_LINE, &irq);
>
> yap, in my opinion this function should back to

No idea about that.
I think that you still didn't answer my question, or maybe I
didn't ask it well enough. What device are you having problems
with? I don't mean what chipset, I mean what device that you
touch...


> --- orig/drivers/pci/quirks.c 2006-06-21 20:25:41.000000000 +1000
> +++ linux-2.6.17-rc6-mm2/drivers/pci/quirks.c 2006-06-21 20:25:08.000000000 +1000
> @@ -662,13 +662,7 @@
> pci_write_config_byte(dev, PCI_INTERRUPT_LINE, new_irq);
> }
> }
> -DECLARE_PCI_FIXUP_ENABLE(PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_82C586_0, quirk_via_irq);
> -DECLARE_PCI_FIXUP_ENABLE(PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_82C586_1, quirk_via_irq);
> -DECLARE_PCI_FIXUP_ENABLE(PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_82C586_2, quirk_via_irq);
> -DECLARE_PCI_FIXUP_ENABLE(PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_82C586_3, quirk_via_irq);
> -DECLARE_PCI_FIXUP_ENABLE(PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_82C686, quirk_via_irq);
> -DECLARE_PCI_FIXUP_ENABLE(PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_82C686_4, quirk_via_irq);
> -DECLARE_PCI_FIXUP_ENABLE(PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_82C686_5, quirk_via_irq);
> +DECLARE_PCI_FIXUP_ENABLE(PCI_VENDOR_ID_VIA, PCI_ANY_ID, quirk_via_irq);
>
> /*
> * VIA VT82C598 has its device ID settable and many BIOSes
>
>
> But do you know or not ? how I know if dev->irq is XT-pic ?

I don't see a way to know that currently. It could be added
somehow if it's really required. So far I haven't seen a full
problem description or requirement for this.

---
~Randy
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/