Gitweb:     
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=4600c9d74e23b5696acf66a36ce5f2cfbcdecc6c
Commit:     4600c9d74e23b5696acf66a36ce5f2cfbcdecc6c
Parent:     3c75e23784e6ed5f4841de43d0750fd9b37bafcb
Author:     Shane Huang <[EMAIL PROTECTED]>
AuthorDate: Fri Jan 25 15:46:24 2008 +0900
Committer:  Greg Kroah-Hartman <[EMAIL PROTECTED]>
CommitDate: Fri Feb 1 15:04:30 2008 -0800

    PCI: modify SB700 SATA MSI quirk
    
    SB700 SATA MSI bug will be fixed in SB700 revision A21 at hardware
    level, but the SB700 revision older than A21 will also be found in the
    market.  This patch modify the original quirk commit
    bc38b411fe696fad32b261f492cb4afbf1835256 instead of withdrawing it.
    The patch also removes quirk to 0x4395 because 0x4395 is SB800 device
    ID.
    
    Signed-off-by: Shane Huang <[EMAIL PROTECTED]>
    Signed-off-by: Tejun Heo <[EMAIL PROTECTED]>
    Signed-off-by: Greg Kroah-Hartman <[EMAIL PROTECTED]>
---
 drivers/pci/quirks.c |   29 ++++++++++++++++++++++-------
 1 files changed, 22 insertions(+), 7 deletions(-)

diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c
index f925e47..0a953d4 100644
--- a/drivers/pci/quirks.c
+++ b/drivers/pci/quirks.c
@@ -1779,6 +1779,23 @@ static void __devinit quirk_msi_intx_disable_bug(struct 
pci_dev *dev)
 {
        dev->dev_flags |= PCI_DEV_FLAGS_MSI_INTX_DISABLE_BUG;
 }
+static void __devinit quirk_msi_intx_disable_ati_bug(struct pci_dev *dev)
+{
+       struct pci_dev *p;
+
+       /* SB700 MSI issue will be fixed at HW level from revision A21,
+        * we need check PCI REVISION ID of SMBus controller to get SB700
+        * revision.
+        */
+       p = pci_get_device(PCI_VENDOR_ID_ATI, PCI_DEVICE_ID_ATI_SBX00_SMBUS,
+                          NULL);
+       if (!p)
+               return;
+
+       if ((p->revision < 0x3B) && (p->revision >= 0x30))
+               dev->dev_flags |= PCI_DEV_FLAGS_MSI_INTX_DISABLE_BUG;
+       pci_dev_put(p);
+}
 DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_BROADCOM,
                        PCI_DEVICE_ID_TIGON3_5780,
                        quirk_msi_intx_disable_bug);
@@ -1799,17 +1816,15 @@ DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_BROADCOM,
                        quirk_msi_intx_disable_bug);
 
 DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, 0x4390,
-                       quirk_msi_intx_disable_bug);
+                       quirk_msi_intx_disable_ati_bug);
 DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, 0x4391,
-                       quirk_msi_intx_disable_bug);
+                       quirk_msi_intx_disable_ati_bug);
 DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, 0x4392,
-                       quirk_msi_intx_disable_bug);
+                       quirk_msi_intx_disable_ati_bug);
 DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, 0x4393,
-                       quirk_msi_intx_disable_bug);
+                       quirk_msi_intx_disable_ati_bug);
 DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, 0x4394,
-                       quirk_msi_intx_disable_bug);
-DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, 0x4395,
-                       quirk_msi_intx_disable_bug);
+                       quirk_msi_intx_disable_ati_bug);
 
 DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, 0x4373,
                        quirk_msi_intx_disable_bug);
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to