OSDN Git Service

scsi: zorro_esp: New driver for Amiga Zorro NCR53C9x boards
authorMichael Schmitz <schmitz@debian.org>
Thu, 12 Apr 2018 01:53:26 +0000 (13:53 +1200)
committerMartin K. Petersen <martin.petersen@oracle.com>
Thu, 19 Apr 2018 04:00:44 +0000 (00:00 -0400)
commit3109e5ae0311e937d49a5325134e50b742ac5f4a
treeb5ef6ae4c3fe7f748d19d09dcd415262f49871fe
parent37b37d2609cb0ac267280ef27350b962d16d272e
scsi: zorro_esp: New driver for Amiga Zorro NCR53C9x boards

New combined SCSI driver for all ESP based Zorro SCSI boards for m68k Amiga.

Code largely based on board specific parts of the old drivers (blz1230.c,
blz2060.c, cyberstorm.c, cyberstormII.c, fastlane.c which were removed after
the 2.6 kernel series for lack of maintenance) with contributions by Tuomas
Vainikka (TCQ bug tests and workaround) and Finn Thain (TCQ bugfix by use of
PIO in extended message in transfer).

New Kconfig option and Makefile entries for new Amiga Zorro ESP SCSI driver
included in this patch.

Use DMA transfers wherever possible, with board-specific DMA set-up functions
copied from the old driver code. Three byte reselection messages do appear to
cause DMA timeouts. So wire up a PIO transfer routine for these
instead. esp_reselect_with_tag explicitly sets
esp->cmd_block_dma as target address for the message bytes but PIO
requires a virtual address.  Substiute kernel virtual address
esp->cmd_block in PIO transfer call if DMA address is esp->cmd_block_dma
and phase is message in.

PIO code taken from mac_esp.c where the reselection timeout issue was debugged
and fixed first, with minor macro and function rename.

Signed-off-by: Michael Schmitz <schmitzmic@gmail.com>
Reviewed-by: Finn Thain <fthain@telegraphics.com.au>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Tested-by: Christian T. Steigies <cts@debian.org>
Tested-by: John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/scsi/Kconfig
drivers/scsi/Makefile
drivers/scsi/zorro_esp.c [new file with mode: 0644]