aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/sata_sil24.c
diff options
context:
space:
mode:
authorTejun Heo <htejun@gmail.com>2006-02-10 23:58:48 +0900
committerJeff Garzik <jgarzik@pobox.com>2006-02-10 10:30:12 -0500
commit489ff4c7d167be954f715128790bd80d3c888322 (patch)
tree72c06ba67487dd1796fcf45e4d803a9880657bc6 /drivers/scsi/sata_sil24.c
parent[PATCH] sata_sil24: convert to new reset mechanism (diff)
downloadlinux-dev-489ff4c7d167be954f715128790bd80d3c888322.tar.xz
linux-dev-489ff4c7d167be954f715128790bd80d3c888322.zip
[PATCH] sata_sil24: add hardreset
Now that libata is smart enough to handle both soft and hard resets, add hardreset method. Note that sil24 hardreset doesn't supply signature; still, the new reset mechanism can make good use of it. Signed-off-by: Tejun Heo <htejun@gmail.com> Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
Diffstat (limited to 'drivers/scsi/sata_sil24.c')
-rw-r--r--drivers/scsi/sata_sil24.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/drivers/scsi/sata_sil24.c b/drivers/scsi/sata_sil24.c
index ccac05a5eb6d..228a7fabffff 100644
--- a/drivers/scsi/sata_sil24.c
+++ b/drivers/scsi/sata_sil24.c
@@ -485,10 +485,19 @@ static int sil24_softreset(struct ata_port *ap, int verbose,
return 0;
}
+static int sil24_hardreset(struct ata_port *ap, int verbose,
+ unsigned int *class)
+{
+ unsigned int dummy_class;
+
+ /* sil24 doesn't report device signature after hard reset */
+ return sata_std_hardreset(ap, verbose, &dummy_class);
+}
+
static int sil24_probe_reset(struct ata_port *ap, unsigned int *classes)
{
return ata_drive_probe_reset(ap, ata_std_probeinit,
- sil24_softreset, NULL,
+ sil24_softreset, sil24_hardreset,
ata_std_postreset, classes);
}