lkml.org 
[lkml]   [2003]   [Dec]   [27]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
Date
From
Subjectshutdown patch
Hi,

In 2.4, there was an IDE reboot notifier that placed HDDs into
standby before shutdown (and parking heads). These no longer exist
in 2.6's IDE code since the power management rework. Debian (and
probably most distributions) run halt(8) as the last command in
runlevel 0 which puts the disk into standby mode, so generally it
isn't a problem.

However, if the system is powered off by other means (eg,
suspend-to-disk), the drive is never placed in standby mode, and
some drives will make a very audible "thunk" (my guess is as they
race to park their heads).

This patch places the disks in standby when device_shutdown() is
called. Please consider it, or something with the same functionality
(I'm not sure if it's correct to assume that calling
device->shutdown() can be treated the same as entering S5).

Regards,

Bernard.

--
Bernard Blackham <bernard at blackham dot com dot au>
diff -ruN linux-2.6.0/drivers/ide/ide.c.orig linux-2.6.0/drivers/ide/ide.c
--- linux-2.6.0/drivers/ide/ide.c.orig 2003-12-18 10:58:38.000000000 +0800
+++ linux-2.6.0/drivers/ide/ide.c 2003-12-28 10:18:47.000000000 +0800
@@ -2493,6 +2493,11 @@
return 0;
}

+static void ide_drive_shutdown (struct device * dev)
+{
+ generic_ide_suspend(dev, 5);
+}
+
int ide_register_driver(ide_driver_t *driver)
{
struct list_head list;
@@ -2519,6 +2524,7 @@
driver->gen_driver.name = (char *) driver->name;
driver->gen_driver.bus = &ide_bus_type;
driver->gen_driver.remove = ide_drive_remove;
+ driver->gen_driver.shutdown = ide_drive_shutdown;
return driver_register(&driver->gen_driver);
}
[unhandled content-type:application/pgp-signature]
\
 
 \ /
  Last update: 2005-03-22 13:59    [W:0.044 / U:0.080 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site