Skip to contentSkip to conversation

IDE power management

2.6.0-test4 [email protected] 2 participants 3 messages Aug 29, 2003 – Oct 22, 2003

lore
Share & tools
lore
#0 lore raw

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

#1 lore raw
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.

#2 lore raw
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 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...

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() in piix.c to 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