diff options
| author | Jonathan McDowell <noodles@earth.li> | 2004-05-09 23:52:40 -0500 |
|---|---|---|
| committer | James Bottomley <jejb@mulgrave.(none)> | 2004-05-09 23:52:40 -0500 |
| commit | cee97f38528b7ccd446ab4bbd16e9e909ba2b27f (patch) | |
| tree | f4f3aa7ef01c174022f3dafb2e86a1ddf3672398 | |
| parent | f8888d23055a7628b19d23ec5dbf17ddbc5ee4cb (diff) | |
[PATCH] Initio INI-9X00U/UW error handling in 2.6
Plumb old error handling into new eh infrastructure.
| -rw-r--r-- | drivers/scsi/ini9100u.c | 14 | ||||
| -rw-r--r-- | drivers/scsi/ini9100u.h | 3 |
2 files changed, 15 insertions, 2 deletions
diff --git a/drivers/scsi/ini9100u.c b/drivers/scsi/ini9100u.c index 5cbba72cfe98..e634b66e8875 100644 --- a/drivers/scsi/ini9100u.c +++ b/drivers/scsi/ini9100u.c @@ -106,6 +106,8 @@ * - Changed the assumption that HZ = 100 * 10/17/03 mc - v1.04 * - added new DMA API support + * 06/01/04 jmd - v1.04a + * - Re-add reset_bus support **************************************************************************/ #define CVT_LINUX_VERSION(V,P,S) (V * 65536 + P * 256 + S) @@ -149,6 +151,7 @@ static Scsi_Host_Template driver_template = { .queuecommand = i91u_queue, // .abort = i91u_abort, // .reset = i91u_reset, + .eh_bus_reset_handler = i91u_bus_reset, .bios_param = i91u_biosparam, .can_queue = 1, .this_id = 1, @@ -161,7 +164,7 @@ static Scsi_Host_Template driver_template = { char *i91uCopyright = "Copyright (C) 1996-98"; char *i91uInitioName = "by Initio Corporation"; char *i91uProductName = "INI-9X00U/UW"; -char *i91uVersion = "v1.04"; +char *i91uVersion = "v1.04a"; #define TULSZ(sz) (sizeof(sz) / sizeof(sz[0])) #define TUL_RDWORD(x,y) (short)(inl((int)((ULONG)((ULONG)x+(UCHAR)y)) )) @@ -550,6 +553,15 @@ int i91u_reset(Scsi_Cmnd * SCpnt, unsigned int reset_flags) return tul_device_reset(pHCB, (ULONG) SCpnt, SCpnt->device->id, reset_flags); } +int i91u_bus_reset(Scsi_Cmnd * SCpnt) +{ + HCS *pHCB; + + pHCB = (HCS *) SCpnt->device->host->base; + tul_reset_scsi(pHCB, 0); + return SUCCESS; +} + /* * Return the "logical geometry" */ diff --git a/drivers/scsi/ini9100u.h b/drivers/scsi/ini9100u.h index 436d65db994e..2ed7404c3f0a 100644 --- a/drivers/scsi/ini9100u.h +++ b/drivers/scsi/ini9100u.h @@ -82,10 +82,11 @@ extern int i91u_command(Scsi_Cmnd *); extern int i91u_queue(Scsi_Cmnd *, void (*done) (Scsi_Cmnd *)); extern int i91u_abort(Scsi_Cmnd *); extern int i91u_reset(Scsi_Cmnd *, unsigned int); +extern int i91u_bus_reset(Scsi_Cmnd *); extern int i91u_biosparam(struct scsi_device *, struct block_device *, sector_t, int *); -#define i91u_REVID "Initio INI-9X00U/UW SCSI device driver; Revision: 1.03g" +#define i91u_REVID "Initio INI-9X00U/UW SCSI device driver; Revision: 1.04a" #define VIRT_TO_BUS(i) (unsigned int) virt_to_bus((void *)(i)) #define ULONG unsigned long |
