[PATCH] swsusp: switch pm_message_t to struct
This adds type-checking to pm_message_t, so that people can't confuse it with int or u32. It also allows us to fix "disk yoyo" during suspend (disk spinning down/up/down). [We've tried that before; since that cpufreq problems were fixed and I've tried make allyes config and fixed resulting damage.] Signed-off-by: Pavel Machek <pavel@suse.cz> Signed-off-by: Alexander Nyberg <alexn@telia.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
committed by
Linus Torvalds
parent
829ca9a30a
commit
ca078bae81
@ -350,9 +350,9 @@ static int sc1200_suspend (struct pci_dev *dev, pm_message_t state)
|
||||
{
|
||||
ide_hwif_t *hwif = NULL;
|
||||
|
||||
printk("SC1200: suspend(%u)\n", state);
|
||||
printk("SC1200: suspend(%u)\n", state.event);
|
||||
|
||||
if (state == 0) {
|
||||
if (state.event == PM_EVENT_ON) {
|
||||
// we only save state when going from full power to less
|
||||
|
||||
//
|
||||
@ -386,8 +386,8 @@ static int sc1200_suspend (struct pci_dev *dev, pm_message_t state)
|
||||
/* You don't need to iterate over disks -- sysfs should have done that for you already */
|
||||
|
||||
pci_disable_device(dev);
|
||||
pci_set_power_state(dev,state);
|
||||
dev->current_state = state;
|
||||
pci_set_power_state(dev, pci_choose_state(dev, state));
|
||||
dev->current_state = state.event;
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -396,8 +396,8 @@ static int sc1200_resume (struct pci_dev *dev)
|
||||
ide_hwif_t *hwif = NULL;
|
||||
|
||||
printk("SC1200: resume\n");
|
||||
pci_set_power_state(dev,0); // bring chip back from sleep state
|
||||
dev->current_state = 0;
|
||||
pci_set_power_state(dev, PCI_D0); // bring chip back from sleep state
|
||||
dev->current_state = PM_EVENT_ON;
|
||||
pci_enable_device(dev);
|
||||
//
|
||||
// loop over all interfaces that are part of this pci device:
|
||||
|
Reference in New Issue
Block a user