Re: [PATCH 8/8] sata_sil24: reimplement hardreset

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

 



On Thu, Apr 06, 2006 at 12:44:30PM -0400, Jeff Garzik wrote:
> >+
> >+	if (ata_busy_sleep(ap, ATA_TMOUT_BOOT_QUICK, ATA_TMOUT_BOOT)) {
> >+		reason = "device not ready";
> >+		goto err;
> >+	}
> >+
> >+	/* SStatus is a bit sluggish (reports 0) on sil24, wait for it */
> >+	sil24_poll_register(port + PORT_SSTATUS, 0xf, 0x0, 10, 100);
> 
> Its weird to poll BSY before polling SStatus.
> 

It turned out that the above delay is not enough.  SStatus oscillates
between zero and valid status for short duration after hardreset
resulting in weird messages like 'ata2: SATA link up <unknown>
(SStatus 0 Scontrol 310)".  I've added unconditional msleep(100) right
afer hardreset and removed this code.

> 
> >+	/* no classification, just return */
> 
> bad comment?

How about...

	/* Sil24 hardreset doesn't report device signature, leave
	 * classes[] alone.
	 */
?

> >+	return 0;
> > 
> >-	/* sil24 doesn't report device signature after hard reset */
> >-	return sata_std_hardreset(ap, &dummy_class);
> >+ err:
> >+	printk(KERN_ERR "ata%u: hardreset failed (%s)\n", ap->id, reason);
> >+	return -EIO;
> > }
> > 
> > static int sil24_probe_reset(struct ata_port *ap, unsigned int *classes)
> 

Thanks.

-- 
tejun
-
: 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