[PATCH] sata_inic162x: fix a few glitches in hardreset

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



* Hardreset must not exit without actually performing reset regardless
  of link status.  We're resetting the link after all.

* Minor message update.

* 150ms delay is meaningful iff link is online after reset is
  complete.

Signed-off-by: Tejun Heo <htejun@xxxxxxxxx>
---
 drivers/ata/sata_inic162x.c |   12 ++++--------
 1 files changed, 4 insertions(+), 8 deletions(-)

diff --git a/drivers/ata/sata_inic162x.c b/drivers/ata/sata_inic162x.c
index b2a6f77..fad2bd3 100644
--- a/drivers/ata/sata_inic162x.c
+++ b/drivers/ata/sata_inic162x.c
@@ -429,11 +429,6 @@ static int inic_hardreset(struct ata_port *ap, unsigned int *class)
 	/* hammer it into sane state */
 	inic_reset_port(port_base);
 
-	if (ata_port_offline(ap)) {
-		*class = ATA_DEV_NONE;
-		return 0;
-	}
-
 	val = readw(idma_ctl);
 	writew(val | IDMA_CTL_RST_ATA, idma_ctl);
 	readw(idma_ctl);	/* flush */
@@ -443,16 +438,17 @@ static int inic_hardreset(struct ata_port *ap, unsigned int *class)
 	rc = sata_phy_resume(ap, timing);
 	if (rc) {
 		ata_port_printk(ap, KERN_WARNING, "failed to resume "
-				"link for reset (errno=%d)\n", rc);
+				"link after reset (errno=%d)\n", rc);
 		return rc;
 	}
 
-	msleep(150);
-
 	*class = ATA_DEV_NONE;
 	if (ata_port_online(ap)) {
 		struct ata_taskfile tf;
 
+		/* wait a while before checking status */
+		msleep(150);
+
 		if (ata_busy_sleep(ap, ATA_TMOUT_BOOT_QUICK, ATA_TMOUT_BOOT)) {
 			ata_port_printk(ap, KERN_WARNING,
 					"device busy after hardreset\n");
-- 
1.4.4.4

-
To unsubscribe from this list: send the line "unsubscribe linux-ide" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Filesystems]     [Linux SCSI]     [Linux RAID]     [Git]     [Kernel Newbies]     [Linux Newbie]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Samba]     [Device Mapper]

  Powered by Linux