On Pá 10-02-06 14:59:58, Randy.Dunlap wrote: > On Fri, 10 Feb 2006, Pavel Machek wrote: > > > Hi! > > > > > in Documentation/power/devices.txt, I read: > > > > > > <quote> > > > System shutdown -- at least disks need to be spun down, or data may be > > > lost. Quiesce devices, just to make life easier for BIOS. event = > > > FREEZE, flags = SYSTEM_SHUTDOWN > > > </quote> > > > > > > Is this actually done somewhere? I can't find /SYSTEM_SHUTDOWN/ > > > in any kernel .h or .c files. > > > > I think we do FREEZE during shutdown, but flags never got > > implemented. It seems nobody really needs them, so... > > I'm not particular about the flags, but I do have a case of > needing to do what the comment describes: spin down disks > during shutdown. Can anyone suggest how that should be done? > > [I'm currently adding code to use register_reboot_notifier() > and keeping a table of SATA/PATA controllers/channels for use > at shutdown...] No, that is not the right way. void kernel_shutdown_prepare(enum system_states state) { notifier_call_chain(&reboot_notifier_list, (state == SYSTEM_HALT)?SYS_HALT:SYS_POWER_OFF, NULL); system_state = state; device_shutdown(); } device_shutdown() should do it, AFAICT. If you want to listen to such event, you should just register your driver with sysfs and implement .suspend() method. But I believe PATA does that already... Pavel -- Web maintainer for suspend.sf.net (www.sf.net/projects/suspend) wanted...