From: Hannes Reinecke <[email protected]>

The driver has both a bus and a host reset, where the host reset
does a bus reset followed by an attempt to reset the chip registes
to a default state.
However, as the bus reset always returned SUCCESS the host reset
was never called, so the functionality of the register reset function
was never validated.
Additionally, tha AIC-6260 chip has a hard reset line, which
actually should be preferred for a host reset. But I
haven't found a way how this can be triggered via software,
so take the safe approach and drop the host reset.

Signed-off-by: Hannes Reinecke <[email protected]>
---
 drivers/scsi/aha152x.c | 13 +++----------
 1 file changed, 3 insertions(+), 10 deletions(-)

diff --git a/drivers/scsi/aha152x.c b/drivers/scsi/aha152x.c
index ce5dc73..bc0058d 100644
--- a/drivers/scsi/aha152x.c
+++ b/drivers/scsi/aha152x.c
@@ -1140,6 +1140,9 @@ static void free_hard_reset_SCs(struct Scsi_Host *shpnt, 
Scsi_Cmnd **SCs)
 /*
  * Reset the bus
  *
+ * AIC-6260 has a hard reset (MRST signal), but apparently
+ * one cannot trigger it via software. So live with
+ * a soft reset; no-one seemed to have cared.
  */
 static int aha152x_bus_reset_host(struct Scsi_Host *shpnt)
 {
@@ -1223,15 +1226,6 @@ int aha152x_host_reset_host(struct Scsi_Host *shpnt)
 }
 
 /*
- * Reset the host (bus and controller)
- *
- */
-static int aha152x_host_reset(Scsi_Cmnd *SCpnt)
-{
-       return aha152x_host_reset_host(SCpnt->device->host);
-}
-
-/*
  * Return the "logical geometry"
  *
  */
@@ -2917,7 +2911,6 @@ static int aha152x_adjust_queue(struct scsi_device 
*device)
        .eh_abort_handler               = aha152x_abort,
        .eh_device_reset_handler        = aha152x_device_reset,
        .eh_bus_reset_handler           = aha152x_bus_reset,
-       .eh_host_reset_handler          = aha152x_host_reset,
        .bios_param                     = aha152x_biosparam,
        .can_queue                      = 1,
        .this_id                        = 7,
-- 
1.8.5.6

Reply via email to