pata_sil680 is broken on Linkstation amd Kurobox HG machines since 2.6.24.
Work around the breakage until a real fix is found.
Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
---
On Tue, 26 Feb 2008, Benjamin Herrenschmidt wrote:
How about the one below? I'd really like to get it in for 2.6.25 to avoid
a second broken stable kernel on these machines.
Ben, please verify that your cell machines still work.
Thanks
Guennadi
diff --git a/drivers/ata/pata_sil680.c b/drivers/ata/pata_sil680.c
index 503245a..75179ff 100644
--- a/drivers/ata/pata_sil680.c
+++ b/drivers/ata/pata_sil680.c
@@ -335,9 +335,12 @@ static int __devinit sil680_init_one(struct pci_dev *pdev,
};
const struct ata_port_info *ppi[] = { &info, NULL };
static int printed_version;
+#ifdef CONFIG_PPC64
struct ata_host *host;
void __iomem *mmio_base;
- int rc, try_mmio;
+ int rc;
+#endif
+ int try_mmio;
if (!printed_version++)
dev_printk(KERN_DEBUG, &pdev->dev, "version " DRV_VERSION "\n");
@@ -350,7 +353,8 @@ static int __devinit sil680_init_one(struct pci_dev *pdev,
return -ENODEV;
}
- if (!try_mmio)
+#ifdef CONFIG_PPC64
+ if (!try_mmio || !machine_is(cell))
goto use_ioports;
/* Try to acquire MMIO resources and fallback to PIO if
@@ -396,6 +400,7 @@ static int __devinit sil680_init_one(struct pci_dev *pdev,
&sil680_sht);
use_ioports:
+#endif
return ata_pci_init_one(pdev, ppi);
}
--