[UBUNTU:libata] delay resume to wait for harddrives to spin up

Ryan Lortie desrt at desrt.ca
Sat Jun 10 16:59:01 UTC 2006


This patch was picked up from the LKML
(http://lkml.org/lkml/2006/5/28/103).  It is currently in 2.6.17-rc6.
It causes the code to spin on resume until the harddrives have finished
powering on.

I adapted it for the dapper kernel since we do some things that are no
longer done upstream on resume (like PHY reset).  I've essentially moved
the code up a bit in the function to delay before we do all of our
stuff.

mjg59 says that this patch is "obviously correct" and should be included
for dapper-updates.  It also fixes a real problem on my Macbook where
the drives don't spin up fast enough.

Cheers


diff -rup linux-source-2.6.15/drivers/scsi/libata-core.c linux-source-2.6.15+/drivers/scsi/libata-core.c
--- linux-source-2.6.15/drivers/scsi/libata-core.c	2006-05-02 01:01:55.000000000 -0400
+++ linux-source-2.6.15+/drivers/scsi/libata-core.c	2006-06-10 04:17:58.000000000 -0400
@@ -4303,6 +4303,9 @@ int ata_device_resume(struct ata_port *a
 	if (!ata_dev_present(dev))
 		return 0;
 
+ 	if (ap->flags & ATA_FLAG_SUSPENDED)
+ 		ata_busy_wait(ap, ATA_BUSY | ATA_DRQ, 200000);
+ 
 	ap->ops->phy_reset(ap);
 	ata_acpi_exec_tfs(ap);
 



-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 703 bytes
Desc: This is a digitally signed message part
URL: <https://lists.ubuntu.com/archives/kernel-team/attachments/20060610/f7b49614/attachment.sig>


More information about the kernel-team mailing list