diff options
author | Pavel Machek <pavel@ucw.cz> | 2005-09-03 18:56:57 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@evo.osdl.org> | 2005-09-05 03:06:16 -0400 |
commit | ca078bae813dd46c0f9b102fdfb4a3384641ff48 (patch) | |
tree | e3348f5dcb24159a522941aa2e3ee40bc9e0589b /drivers/ide/pci/sc1200.c | |
parent | 829ca9a30a2ddb727981d80fabdbff2ea86bc9ea (diff) |
[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>
Diffstat (limited to 'drivers/ide/pci/sc1200.c')
-rw-r--r-- | drivers/ide/pci/sc1200.c | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/drivers/ide/pci/sc1200.c b/drivers/ide/pci/sc1200.c index 10592cec6c43..24e21b2838c1 100644 --- a/drivers/ide/pci/sc1200.c +++ b/drivers/ide/pci/sc1200.c | |||
@@ -350,9 +350,9 @@ static int sc1200_suspend (struct pci_dev *dev, pm_message_t state) | |||
350 | { | 350 | { |
351 | ide_hwif_t *hwif = NULL; | 351 | ide_hwif_t *hwif = NULL; |
352 | 352 | ||
353 | printk("SC1200: suspend(%u)\n", state); | 353 | printk("SC1200: suspend(%u)\n", state.event); |
354 | 354 | ||
355 | if (state == 0) { | 355 | if (state.event == PM_EVENT_ON) { |
356 | // we only save state when going from full power to less | 356 | // we only save state when going from full power to less |
357 | 357 | ||
358 | // | 358 | // |
@@ -386,8 +386,8 @@ static int sc1200_suspend (struct pci_dev *dev, pm_message_t state) | |||
386 | /* You don't need to iterate over disks -- sysfs should have done that for you already */ | 386 | /* You don't need to iterate over disks -- sysfs should have done that for you already */ |
387 | 387 | ||
388 | pci_disable_device(dev); | 388 | pci_disable_device(dev); |
389 | pci_set_power_state(dev,state); | 389 | pci_set_power_state(dev, pci_choose_state(dev, state)); |
390 | dev->current_state = state; | 390 | dev->current_state = state.event; |
391 | return 0; | 391 | return 0; |
392 | } | 392 | } |
393 | 393 | ||
@@ -396,8 +396,8 @@ static int sc1200_resume (struct pci_dev *dev) | |||
396 | ide_hwif_t *hwif = NULL; | 396 | ide_hwif_t *hwif = NULL; |
397 | 397 | ||
398 | printk("SC1200: resume\n"); | 398 | printk("SC1200: resume\n"); |
399 | pci_set_power_state(dev,0); // bring chip back from sleep state | 399 | pci_set_power_state(dev, PCI_D0); // bring chip back from sleep state |
400 | dev->current_state = 0; | 400 | dev->current_state = PM_EVENT_ON; |
401 | pci_enable_device(dev); | 401 | pci_enable_device(dev); |
402 | // | 402 | // |
403 | // loop over all interfaces that are part of this pci device: | 403 | // loop over all interfaces that are part of this pci device: |