Message ID | 1335578325-21326-2-git-send-email-xiong@qca.qualcomm.com |
---|---|
State | Changes Requested, archived |
Delegated to: | David Miller |
Headers | show |
On Sat, Apr 28, 2012 at 09:58:36AM +0800, xiong wrote: > All supported devices have one issue that msi interrupt doesn't assert > if pci command register bit (PCI_COMMAND_INTX_DISABLE) is set. > Add workaround in drivers/pci/quirks.c > > Signed-off-by: xiong <xiong@qca.qualcomm.com> > --- > drivers/pci/quirks.c | 12 ++++++++++++ > 1 files changed, 12 insertions(+), 0 deletions(-) > > diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c > index 4bf7102..953ec3f 100644 > --- a/drivers/pci/quirks.c > +++ b/drivers/pci/quirks.c > @@ -2626,6 +2626,18 @@ DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, 0x4374, > DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, 0x4375, > quirk_msi_intx_disable_bug); > > +DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATTANSIC, 0x1062, > + quirk_msi_intx_disable_bug); > +DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATTANSIC, 0x1063, > + quirk_msi_intx_disable_bug); > +DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATTANSIC, 0x2060, > + quirk_msi_intx_disable_bug); > +DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATTANSIC, 0x2062, > + quirk_msi_intx_disable_bug); > +DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATTANSIC, 0x1073, > + quirk_msi_intx_disable_bug); > +DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATTANSIC, 0x1083, > + quirk_msi_intx_disable_bug); > #endif /* CONFIG_PCI_MSI */ Xiong -- just a heads up, I think to backport these then you can send me patches for compat-wireless to do the work around itself on the driver on a patch under patches/ you can say create a 58-drivers-pci-quirks.patch which pathces your driver there. Luis -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Thanks Luis, just one question: I don't know which kernel version contains the updated pci/quirks.c, so, if I write the patch file (a 58-drivers-pci-quirks.patch) as: --- a/drivers/net/ethernet/atheros/atl1c/atl1c_main.c +++ b/drivers/net/ethernet/atheros/atl1c/atl1c_main.c +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,22)) + pdev->dev_flags |= PCI_DEV_FLAGS_MSI_INTX_DISABLE_BUG; +#endif It seems not good for the kernel with updated pci/quirks.c Any better suggestion ? thanks -Xiong > -----Original Message----- > From: Luis R. Rodriguez [mailto:mcgrof@gmail.com] On Behalf Of Luis R. > Rodriguez > Sent: Saturday, April 28, 2012 10:05 > To: Huang, Xiong > Cc: davem@davemloft.net; netdev@vger.kernel.org; linux- > kernel@vger.kernel.org; qca-linux-team; nic-devel > Subject: Re: [PATCH 01/10] atl1c: add workaround for issue of bit INTX-disable > for MSI interrupt > > On Sat, Apr 28, 2012 at 09:58:36AM +0800, xiong wrote: > > All supported devices have one issue that msi interrupt doesn't assert > > if pci command register bit (PCI_COMMAND_INTX_DISABLE) is set. > > Add workaround in drivers/pci/quirks.c > > > > Signed-off-by: xiong <xiong@qca.qualcomm.com> > > --- > > drivers/pci/quirks.c | 12 ++++++++++++ > > 1 files changed, 12 insertions(+), 0 deletions(-) > > > > diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c index > > 4bf7102..953ec3f 100644 > > --- a/drivers/pci/quirks.c > > +++ b/drivers/pci/quirks.c > > @@ -2626,6 +2626,18 @@ > DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, > > 0x4374, DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, 0x4375, > > quirk_msi_intx_disable_bug); > > > > +DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATTANSIC, 0x1062, > > + quirk_msi_intx_disable_bug); > > +DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATTANSIC, 0x1063, > > + quirk_msi_intx_disable_bug); > > +DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATTANSIC, 0x2060, > > + quirk_msi_intx_disable_bug); > > +DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATTANSIC, 0x2062, > > + quirk_msi_intx_disable_bug); > > +DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATTANSIC, 0x1073, > > + quirk_msi_intx_disable_bug); > > +DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATTANSIC, 0x1083, > > + quirk_msi_intx_disable_bug); > > #endif /* CONFIG_PCI_MSI */ > > Xiong -- just a heads up, I think to backport these then you can send me patches > for compat-wireless to do the work around itself on the driver on a patch under > patches/ you can say create a 58-drivers-pci-quirks.patch which pathces your > driver there. > > Luis -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Sat, Apr 28, 2012 at 2:53 AM, Huang, Xiong <xiong@qca.qualcomm.com> wrote: > Thanks Luis, just one question: > > I don't know which kernel version contains the updated pci/quirks.c, so, > if I write the patch file (a 58-drivers-pci-quirks.patch) as: > > --- a/drivers/net/ethernet/atheros/atl1c/atl1c_main.c > +++ b/drivers/net/ethernet/atheros/atl1c/atl1c_main.c > > +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,22)) > + pdev->dev_flags |= PCI_DEV_FLAGS_MSI_INTX_DISABLE_BUG; > +#endif > > > It seems not good for the kernel with updated pci/quirks.c > > Any better suggestion ? thanks That looks good for the backport, you would just ifdef around < KERNEL_VERSION(3,5,0) Luis -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c index 4bf7102..953ec3f 100644 --- a/drivers/pci/quirks.c +++ b/drivers/pci/quirks.c @@ -2626,6 +2626,18 @@ DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, 0x4374, DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, 0x4375, quirk_msi_intx_disable_bug); +DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATTANSIC, 0x1062, + quirk_msi_intx_disable_bug); +DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATTANSIC, 0x1063, + quirk_msi_intx_disable_bug); +DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATTANSIC, 0x2060, + quirk_msi_intx_disable_bug); +DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATTANSIC, 0x2062, + quirk_msi_intx_disable_bug); +DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATTANSIC, 0x1073, + quirk_msi_intx_disable_bug); +DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATTANSIC, 0x1083, + quirk_msi_intx_disable_bug); #endif /* CONFIG_PCI_MSI */ /* Allow manual resource allocation for PCI hotplug bridges
All supported devices have one issue that msi interrupt doesn't assert if pci command register bit (PCI_COMMAND_INTX_DISABLE) is set. Add workaround in drivers/pci/quirks.c Signed-off-by: xiong <xiong@qca.qualcomm.com> --- drivers/pci/quirks.c | 12 ++++++++++++ 1 files changed, 12 insertions(+), 0 deletions(-)