diff options
author | Tejun Heo <htejun@gmail.com> | 2008-04-07 12:46:56 -0400 |
---|---|---|
committer | Jeff Garzik <jgarzik@redhat.com> | 2008-04-17 15:44:25 -0400 |
commit | 45db2f6c95eee7c6622ea1b3edb9abafba58e3ab (patch) | |
tree | 1c57efcf3e118b177dd7c9c1070b8af70694aff3 /drivers/ata/pata_scc.c | |
parent | 2a0c15ca39f5881aa1b472ca856bb7a2e584ece7 (diff) |
libata: move link onlineness check out of softreset methods
Currently, SATA softresets should do link onlineness check before
actually performing SRST protocol but it doesn't really belong to
softreset.
This patch moves onlineness check in softreset to ata_eh_reset() and
ata_eh_followup_srst_needed() to clean up code and help future sata_mv
changes which need clear separation between SCR and TF accesses.
sata_fsl is peculiar in that its softreset really isn't softreset but
combination of hardreset and softreset. This patch adds dummy private
->prereset to keep the current behavior but the driver really should
implement separate hard and soft resets and return -EAGAIN from
hardreset if it should be follwed by softreset.
Signed-off-by: Tejun Heo <htejun@gmail.com>
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
Diffstat (limited to 'drivers/ata/pata_scc.c')
-rw-r--r-- | drivers/ata/pata_scc.c | 6 |
1 files changed, 0 insertions, 6 deletions
diff --git a/drivers/ata/pata_scc.c b/drivers/ata/pata_scc.c index 7bdea8a4ca7e..e965b251ca24 100644 --- a/drivers/ata/pata_scc.c +++ b/drivers/ata/pata_scc.c | |||
@@ -615,11 +615,6 @@ static int scc_softreset(struct ata_link *link, unsigned int *classes, | |||
615 | 615 | ||
616 | DPRINTK("ENTER\n"); | 616 | DPRINTK("ENTER\n"); |
617 | 617 | ||
618 | if (ata_link_offline(link)) { | ||
619 | classes[0] = ATA_DEV_NONE; | ||
620 | goto out; | ||
621 | } | ||
622 | |||
623 | /* determine if device 0/1 are present */ | 618 | /* determine if device 0/1 are present */ |
624 | if (scc_devchk(ap, 0)) | 619 | if (scc_devchk(ap, 0)) |
625 | devmask |= (1 << 0); | 620 | devmask |= (1 << 0); |
@@ -645,7 +640,6 @@ static int scc_softreset(struct ata_link *link, unsigned int *classes, | |||
645 | classes[1] = ata_sff_dev_classify(&ap->link.device[1], | 640 | classes[1] = ata_sff_dev_classify(&ap->link.device[1], |
646 | devmask & (1 << 1), &err); | 641 | devmask & (1 << 1), &err); |
647 | 642 | ||
648 | out: | ||
649 | DPRINTK("EXIT, classes[0]=%u [1]=%u\n", classes[0], classes[1]); | 643 | DPRINTK("EXIT, classes[0]=%u [1]=%u\n", classes[0], classes[1]); |
650 | return 0; | 644 | return 0; |
651 | } | 645 | } |