[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
@@ -333,13 +333,17 @@ pci_power_t pci_choose_state(struct pci_dev *dev, pm_message_t state)
|
||||
if (platform_pci_choose_state) {
|
||||
ret = platform_pci_choose_state(dev, state);
|
||||
if (ret >= 0)
|
||||
state = ret;
|
||||
state.event = ret;
|
||||
}
|
||||
switch (state) {
|
||||
case 0: return PCI_D0;
|
||||
case 3: return PCI_D3hot;
|
||||
|
||||
switch (state.event) {
|
||||
case PM_EVENT_ON:
|
||||
return PCI_D0;
|
||||
case PM_EVENT_FREEZE:
|
||||
case PM_EVENT_SUSPEND:
|
||||
return PCI_D3hot;
|
||||
default:
|
||||
printk("They asked me for state %d\n", state);
|
||||
printk("They asked me for state %d\n", state.event);
|
||||
BUG();
|
||||
}
|
||||
return PCI_D0;
|
||||
|
Reference in New Issue
Block a user