While digging to find out why the Linux kernels AHCI driver disables
MSI for the ATI SB600 chipset I came across a comment in a Linux bug
report indicating that although most vendors BIOS do as expected and
disable MSI some older revisions are bugy and do not. We should be
disabling MSI on these chipsets incase the user has such an older
BIOS revision.

OK?


Index: ahci.c
===================================================================
RCS file: /home/cvs/src/sys/dev/pci/ahci.c,v
retrieving revision 1.192
diff -u -p -r1.192 ahci.c
--- ahci.c      2 Jul 2012 13:24:53 -0000       1.192
+++ ahci.c      31 Jul 2012 03:17:53 -0000
@@ -738,6 +740,12 @@ ahci_ati_sb600_attach(struct ahci_softc 
        ahci_ati_sb_idetoahci(sc, pa);
 
        sc->sc_flags |= AHCI_F_IPMS_PROBE;
+
+       /*
+        * SB600 has errata with MSI and does not work. The BIOS is
+        * supposed to disable MSI but some BIOS do not.
+        */
+       pa->pa_flags &= ~PCI_FLAGS_MSI_ENABLED;
 
        return (0);
 }

-- 
This message has been scanned for viruses and
dangerous content by MailScanner, and is
believed to be clean.

Reply via email to