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 | 14 ++++++++------ 3 files changed, 11 insertions(+), 7 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 2005-03-20 16:51:45.000000000 -0800 +++ 25-akpm/drivers/base/power/suspend.c 2005-03-20 16:51:45.000000000 -0800 @@ -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 2005-03-20 16:51:45.000000000 -0800 +++ 25-akpm/drivers/ide/ide-disk.c 2005-03-20 16:51:45.000000000 -0800 @@ -1082,7 +1082,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 2005-03-20 16:51:45.000000000 -0800 +++ 25-akpm/drivers/pci/pci.c 2005-03-20 16:53:34.000000000 -0800 @@ -362,14 +362,15 @@ 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. */ -int (*platform_pci_choose_state)(struct pci_dev *dev, pm_message_t state) = NULL; +int (*platform_pci_choose_state)(struct pci_dev *dev, pm_message_t state); -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) { int ret; if (!pci_find_capability(dev, PCI_CAP_ID_PM)) @@ -381,10 +382,11 @@ pci_power_t pci_choose_state(struct pci_ state = ret; } 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; } _