IDE power management
Since 2.6.0-test4, and in -mmX IDE power management no longer works for me. Using Fn+F12 to initiate APM suspend-to-disk, the suspend starts as normal, then the disk spins down, which is wrong, because the disk spins up again to perform the actual save-to-disk operation.
The laptop is a Sony Vaio 333MHz celeron, with a PIIX4 IDE controller.
This used to work fine in all previous kernels.
I get the following log messages:
hda: start_power_step(step: 0)
hda: start_power_step(step: 1)
hda: complete_power_step(step: 1, stat: 50, err:0)
hda: completing PM request, suspend
hda: a request made it's way while we are power managing --- power down/up occurs here
hda: Wakeup request inited, waiting for !BSY...
hda: start_power_step(step: 1000)
hda: completing PM request, resume
...
hda: lost interrupt
The hard disk won't allow any accesses any more.
APM suspend to RAM doesn't work properly on this machine, so I haven't tested that.
Charlie
Quoted 13 lines
hda:
start_power_step(step: 0)
hda:start_power_step(step: 1)
hda:complete_power_step(step: 1, stat: 50, err:0)
hda: completing PM request, suspend
hda: a request made it's way while we are power managing --- power down/up occurs here
hda: Wakeup request inited, waiting for !BSY...
hda:start_power_step(step: 1000)
hda: completing PM request, resume
...
hda: lost interrupt
Quoted 4 lines
The hard disk won't allow any accesses any more.
APM suspend to RAM doesn't work properly on this machine, so I haven't tested that.
I'm afraid we may have APM junk getting in our way. It would be interesting to check out what is the request that made its way while power managing, though I usually consider this is harmless...
The lost interrupt problem may or may not be related, it could well be an IRQ routing problem as well. Did you have DMA enabled ? What happens if you disable that before suspend ? You can also add some printk to piix_config_drive_xfer_rate() in piix.c to check if that is properly getting called and doesn't fail.
Ben.
Quoted 22 lines · Benjamin Herrenschmidt
Quoted 13 lines
hda:
start_power_step(step: 0)
hda:start_power_step(step: 1)
hda:complete_power_step(step: 1, stat: 50, err:0)
hda: completing PM request, suspend
hda: a request made it's way while we are power managing --- power down/up occurs here
hda: Wakeup request inited, waiting for !BSY...
hda:start_power_step(step: 1000)
hda: completing PM request, resume
...
hda: lost interruptQuoted 4 lines
The hard disk won't allow any accesses any more.
APM suspend to RAM doesn't work properly on this machine, so I haven't tested that.
I'm afraid we may have APM junk getting in our way. It would be interesting to check out what is the request that made its way while power managing, though I usually consider this is harmless...
Quoted 5 lines
The lost interrupt problem may or may not be related, it could well be an IRQ routing problem as well. Did you have DMA enabled ? What happens if you disable that before suspend ? You can also add some printk to
piix_config_drive_xfer_rate()inpiix.cto check if that is properly getting called and doesn't fail.
I didn't get time to do this before the disk in my laptop died. I've put it a new disk and installed 2.6.0-test7, and IDE now seems to works after a resume.
I think the disk is still spinning down before suspend (it's difficult to tell, because I can hardly hear the new disk) and this needs to be fixed at some point.
Regards
Charlie