[SCSI] mac_esp: fix PIO mode, take 2
authorFinn Thain <fthain@telegraphics.com.au>
Sat, 5 Dec 2009 01:30:42 +0000 (12:30 +1100)
committerJames Bottomley <James.Bottomley@suse.de>
Mon, 18 Jan 2010 16:48:10 +0000 (10:48 -0600)
commit02507a80b35edd720480540d917e9f92cc371009
tree0da90f4cc680093926073f34fb9ddcb84f4a1aea
parentf2818663c82b7297ff4aa38cbddb870dc02f7104
[SCSI] mac_esp: fix PIO mode, take 2

The mac_esp PIO algorithm no longer works in 2.6.31 and crashes my Centris
660av. So here's a better one.

Also, force async with esp_set_offset() rather than esp_slave_configure().

One of the SCSI drives I tested still doesn't like the PIO mode and fails
with "esp: esp0: Reconnect IRQ2 timeout" (the same drive works fine in
PDMA mode).

This failure happens when esp_reconnect_with_tag() tries to read in two
tag bytes but the chip only provides one (0x20). I don't know what causes
this. I decided not to waste any more time trying to fix it because the
best solution is to rip out the PIO mode altogether and use the DMA
engine.

Signed-off-by: Finn Thain <fthain@telegraphics.com.au>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
drivers/scsi/esp_scsi.c
drivers/scsi/mac_esp.c