Re: VIA IRQ quirk missing PCI ids since 2.6.16.17

Jeff Garzik
2006-11-07T08:31:59Z

Dave Jones wrote:
> On Mon, Nov 06, 2006 at 09:13:45PM +0000, Alan Cox wrote:
>
> > +static const struct pci_device_id via_vlink_fixup_tbl[] = {
> > + { PCI_VDEVICE(VIA, PCI_DEVICE_ID_VIA_8233_0), 17},
> > + { PCI_VDEVICE(VIA, PCI_DEVICE_ID_VIA_8233A), 17 },
> > + { PCI_VDEVICE(VIA, PCI_DEVICE_ID_VIA_8233C_0), 17 },
> > + { PCI_VDEVICE(VIA, PCI_DEVICE_ID_VIA_8235), 16 },
> > + /* May not be needed for the 8237 */
> > + { PCI_VDEVICE(VIA, PCI_DEVICE_ID_VIA_8237), 15 },
> > + { PCI_VDEVICE(VIA, PCI_DEVICE_ID_VIA_8237A), 15 },
> > { 0, },
>
> This got me wondering what PCI_VDEVICE was, so I went looking.
> It's a libata'ism it seems with the comment..
>
> /* move to PCI layer? */
>
> Which sounds like a good idea to me. But until this is moved,
> does quirks.c actually compile with this patch? I don't see
> an include of linux/libata.h there.
>
> When it gets moved to the PCI layer, I wonder if it'd be worth
> doing the same thing to the second argument, so that we'd be
> able to do..
>
> { PCI_VDEVICE(VIA, VIA_8233_0), 17},
>
> Or maybe even..
>
> { PCI_VDEVICE(VIA, 8233_0), 17},

Won't work, libata passes hex constants as the second argument... which
is the policy I'm encouraging for all places where the PCI_DEVICE_ID_xxx
is only used in a single place.

Jeff