aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/ata
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/ata')
-rw-r--r--drivers/ata/sata_sil24.c13
1 files changed, 10 insertions, 3 deletions
diff --git a/drivers/ata/sata_sil24.c b/drivers/ata/sata_sil24.c
index e6fe4c424a62..e538edc1b4ea 100644
--- a/drivers/ata/sata_sil24.c
+++ b/drivers/ata/sata_sil24.c
@@ -578,8 +578,8 @@ static int sil24_exec_polled_cmd(struct ata_port *ap, int pmp,
578 return rc; 578 return rc;
579} 579}
580 580
581static int sil24_softreset(struct ata_port *ap, unsigned int *class, 581static int sil24_do_softreset(struct ata_port *ap, unsigned int *class,
582 unsigned long deadline) 582 int pmp, unsigned long deadline)
583{ 583{
584 unsigned long timeout_msec = 0; 584 unsigned long timeout_msec = 0;
585 struct ata_taskfile tf; 585 struct ata_taskfile tf;
@@ -605,7 +605,8 @@ static int sil24_softreset(struct ata_port *ap, unsigned int *class,
605 timeout_msec = jiffies_to_msecs(deadline - jiffies); 605 timeout_msec = jiffies_to_msecs(deadline - jiffies);
606 606
607 ata_tf_init(ap->device, &tf); /* doesn't really matter */ 607 ata_tf_init(ap->device, &tf); /* doesn't really matter */
608 rc = sil24_exec_polled_cmd(ap, 0, &tf, 0, PRB_CTRL_SRST, timeout_msec); 608 rc = sil24_exec_polled_cmd(ap, pmp, &tf, 0, PRB_CTRL_SRST,
609 timeout_msec);
609 if (rc == -EBUSY) { 610 if (rc == -EBUSY) {
610 reason = "timeout"; 611 reason = "timeout";
611 goto err; 612 goto err;
@@ -629,6 +630,12 @@ static int sil24_softreset(struct ata_port *ap, unsigned int *class,
629 return -EIO; 630 return -EIO;
630} 631}
631 632
633static int sil24_softreset(struct ata_port *ap, unsigned int *class,
634 unsigned long deadline)
635{
636 return sil24_do_softreset(ap, class, 0, deadline);
637}
638
632static int sil24_hardreset(struct ata_port *ap, unsigned int *class, 639static int sil24_hardreset(struct ata_port *ap, unsigned int *class,
633 unsigned long deadline) 640 unsigned long deadline)
634{ 641{