pata_sil680: only enable MMIO on Cell blades
authorBenjamin Herrenschmidt <[email protected]>
Fri, 28 Mar 2008 21:52:29 +0000 (14:52 -0700)
committerJeff Garzik <[email protected]>
Sat, 29 Mar 2008 16:21:27 +0000 (12:21 -0400)
There have been reported regressions of the SIL 680 driver when using MMIO, so
this makes it only try MMIO on Cell blades where it's known to be necessary
(the host bridge doesn't do PIO on these).

We'll try to find the root problem with MMIO separately.

Signed-off-by: Benjamin Herrenschmidt <[email protected]>
Acked-by: Alan Cox <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Jeff Garzik <[email protected]>
drivers/ata/pata_sil680.c

index 503245a1eafadba2126c4d310abe9dad4509396f..3988e44f4934b198a2beb1798ef903c6ce7979de 100644 (file)
@@ -269,7 +269,11 @@ static u8 sil680_init_chip(struct pci_dev *pdev, int *try_mmio)
        dev_dbg(&pdev->dev, "sil680: BA5_EN = %d clock = %02X\n",
                tmpbyte & 1, tmpbyte & 0x30);
 
-       *try_mmio = (tmpbyte & 1) || pci_resource_start(pdev, 5);
+       *try_mmio = 0;
+#ifdef CONFIG_PPC
+       if (machine_is(cell))
+               *try_mmio = (tmpbyte & 1) || pci_resource_start(pdev, 5);
+#endif
 
        switch(tmpbyte & 0x30) {
                case 0x00: