Skip to contentSkip to conversation

pata_sil680: only enable MMIO on Cell blades

PATCH In review [email protected] 2 participants 2 messages Mar 27, 2008 libata

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 pata_sil680: only enable MMIO on Cell blades

From: Benjamin Herrenschmidt <[email protected]>

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.

---

 drivers/ata/pata_sil680.c |    6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)
drivers/ata/pata_sil680.c renamed from drivers/ata/pata_sil680.c~pata_sil680-only-enable-mmio-on-cell-blades +5 -1
diff -puN drivers/ata/pata_sil680.c~pata_sil680-only-enable-mmio-on-cell-blades drivers/ata/pata_sil680.c
@@ -229,7 +229,11 @@ static u8 sil680_init_chip(struct pci_de
 	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:

_

#1 lore raw
Quoted 5 lines · On Thu, 2008-03-27 at 00:46 -0700, [email protected] wrote:

From: Benjamin Herrenschmidt <[email protected]>

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).

This should go in .25 please.

Cheers,
Ben.

Quoted 27 lines

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

---

 drivers/ata/pata_sil680.c |    6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff -puN drivers/ata/pata_sil680.c~pata_sil680-only-enable-mmio-on-cell-blades drivers/ata/pata_sil680.c

drivers/ata/pata_sil680.c renamed from drivers/ata/pata_sil680.c~pata_sil680-only-enable-mmio-on-cell-blades +5 -1
@@ -229,7 +229,11 @@ static u8 sil680_init_chip(struct pci_de
 	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:

_