The MMIO access implementation in the SIL680 driver is broken for anything else but the Cell processor. Also, on IXP4xx the driver tries MMIO but fails. Revert MMIO, like upstream for 2.6.26: http://patchwork.ozlabs.org/linuxppc/patch?id=17772 Signed-off-by: Leon Woestenberg Index: linux-2.6.24/drivers/ata/pata_sil680.c =================================================================== --- linux-2.6.24.orig/drivers/ata/pata_sil680.c 2008-05-12 02:27:42.000000000 +0200 +++ linux-2.6.24/drivers/ata/pata_sil680.c 2008-05-12 02:29:04.000000000 +0200 @@ -269,7 +269,10 @@ dev_dbg(&pdev->dev, "sil680: BA5_EN = %d clock = %02X\n", tmpbyte & 1, tmpbyte & 0x30); - *try_mmio = (tmpbyte & 1) || pci_resource_start(pdev, 5); +#ifdef CONFIG_PPC_MERGE + if (machine_is(cell)) + *try_mmio = (tmpbyte & 1) || pci_resource_start(pdev, 5); +#endif switch(tmpbyte & 0x30) { case 0x00: