From: Pavel Machek While fixing usb, I stomped on a few more fixes. Print error when some device fails to power down, and 2 is no longer valid state to pass in pm_message_t. Signed-off-by: Andrew Morton --- 25-akpm/drivers/base/power/suspend.c | 2 ++ 25-akpm/drivers/ide/ide-disk.c | 2 +- 25-akpm/drivers/pci/pci.c | 12 +++++++----- 3 files changed, 10 insertions(+), 6 deletions(-) diff -puN drivers/base/power/suspend.c~more-pm_message_t-fixes drivers/base/power/suspend.c --- 25/drivers/base/power/suspend.c~more-pm_message_t-fixes Fri Mar 11 14:38:16 2005 +++ 25-akpm/drivers/base/power/suspend.c Fri Mar 11 14:38:16 2005 @@ -134,6 +134,8 @@ int device_power_down(pm_message_t state Done: return error; Error: + printk(KERN_ERR "Could not power down device %s: " + "error %d\n", kobject_name(&dev->kobj), error); dpm_power_up(); goto Done; } diff -puN drivers/ide/ide-disk.c~more-pm_message_t-fixes drivers/ide/ide-disk.c --- 25/drivers/ide/ide-disk.c~more-pm_message_t-fixes Fri Mar 11 14:38:16 2005 +++ 25-akpm/drivers/ide/ide-disk.c Fri Mar 11 14:38:16 2005 @@ -1034,7 +1034,7 @@ static void ide_device_shutdown(struct d } printk("Shutdown: %s\n", drive->name); - dev->bus->suspend(dev, PM_SUSPEND_STANDBY); + dev->bus->suspend(dev, PMSG_SUSPEND); } /* diff -puN drivers/pci/pci.c~more-pm_message_t-fixes drivers/pci/pci.c --- 25/drivers/pci/pci.c~more-pm_message_t-fixes Fri Mar 11 14:38:16 2005 +++ 25-akpm/drivers/pci/pci.c Fri Mar 11 14:38:16 2005 @@ -312,22 +312,24 @@ pci_set_power_state(struct pci_dev *dev, /** * pci_choose_state - Choose the power state of a PCI device * @dev: PCI device to be suspended - * @state: target sleep state for the whole system + * @state: target sleep state for the whole system. This is the value + * that is passed to suspend() function. * * Returns PCI power state suitable for given device and given system * message. */ -pci_power_t pci_choose_state(struct pci_dev *dev, u32 state) +pci_power_t pci_choose_state(struct pci_dev *dev, pm_message_t state) { if (!pci_find_capability(dev, PCI_CAP_ID_PM)) return PCI_D0; switch (state) { - case 0: return PCI_D0; - case 2: return PCI_D2; + case 0: return PCI_D0; case 3: return PCI_D3hot; - default: BUG(); + default: + printk("They asked me for state %d\n", state); + BUG(); } return PCI_D0; } _