[MIPS] Enable FAST-20 for onboard scsi
authorThomas Bogendoerfer <tsbogend@alpha.franken.de>
Wed, 2 Jul 2008 19:06:03 +0000 (21:06 +0200)
committerRalf Baechle <ralf@linux-mips.org>
Tue, 15 Jul 2008 17:44:31 +0000 (18:44 +0100)
Both onboard controller of the O2 support FAST-20 transfer speeds,
but the bit, which signals that to the aic driver, isn't set. Instead
of adding detection code to the scsi driver, we just fake the missing
bit in the PCI config space of the scsi chips.

Signed-off-by: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
arch/mips/pci/ops-mace.c

index e95881897ec904b0489233f3fb1fd771a7da20e3..1cfb5588699fb6764f0793db6f47512167943430 100644 (file)
@@ -61,6 +61,13 @@ mace_pci_read_config(struct pci_bus *bus, unsigned int devfn,
        /* ack possible master abort */
        mace->pci.error &= ~MACEPCI_ERROR_MASTER_ABORT;
        mace->pci.control = control;
+       /*
+        * someone forgot to set the ultra bit for the onboard
+        * scsi chips; we fake it here
+        */
+       if (bus->number == 0 && reg == 0x40 && size == 4 &&
+           (devfn == (1 << 3) || devfn == (2 << 3)))
+               *val |= 0x1000;
 
        DPRINTK("read%d: reg=%08x,val=%02x\n", size * 8, reg, *val);