I did some modification to this patch and send it again, Please check
it.
The quirk to 0x4395 has been removed because 0x4395 only belongs to
SB800.


Thanks
Shane


> -----Original Message-----
> From: Shane Huang 
> 
> 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.
> 
> 
> Signed-off-by: Shane Huang <[EMAIL PROTECTED]>


diff -ruN linux-2.6.24-rc7_org/drivers/pci/quirks.c
linux-2.6.24-rc7_new/drivers/pci/quirks.c
--- linux-2.6.24-rc7_org/drivers/pci/quirks.c   2008-01-23
14:44:53.000000000 +0800
+++ linux-2.6.24-rc7_new/drivers/pci/quirks.c   2008-01-25
10:55:21.000000000 +0800
@@ -1709,6 +1709,24 @@
 {
        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;
+       u8 rev = 0;
+
+       /* 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) {
+               pci_read_config_byte(p, PCI_CLASS_REVISION, &rev);
+       }
+       if ((rev < 0x3B) && (rev >= 0x30)) {
+               dev->dev_flags |= PCI_DEV_FLAGS_MSI_INTX_DISABLE_BUG;
+       }
+}
 DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_BROADCOM,
                        PCI_DEVICE_ID_TIGON3_5780,
                        quirk_msi_intx_disable_bug);
@@ -1729,17 +1747,15 @@
                        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);

Attachment: modify_SB700_MSI_2.patch
Description: modify_SB700_MSI_2.patch

Reply via email to