From: Pavel Machek During my conversion, I discovered two more places where pci_choose_state is needed to preserve type information. Code should be equivalent, because we only pass 0 or 3 in "state" parameter. Signed-off-by: Andrew Morton --- 25-akpm/drivers/net/tg3.c | 2 +- 25-akpm/drivers/usb/core/hcd-pci.c | 11 +++++++---- 2 files changed, 8 insertions(+), 5 deletions(-) diff -puN drivers/net/tg3.c~driver-model-more-pci_choose_states-are-needed drivers/net/tg3.c --- 25/drivers/net/tg3.c~driver-model-more-pci_choose_states-are-needed 2005-01-23 01:30:11.329219864 -0800 +++ 25-akpm/drivers/net/tg3.c 2005-01-23 01:30:11.340218192 -0800 @@ -8475,7 +8475,7 @@ static int tg3_suspend(struct pci_dev *p spin_unlock(&dev->xmit_lock); spin_unlock_irq(&tp->lock); - err = tg3_set_power_state(tp, state); + err = tg3_set_power_state(tp, pci_choose_state(pdev, state)); if (err) { spin_lock_irq(&tp->lock); spin_lock(&dev->xmit_lock); diff -puN drivers/usb/core/hcd-pci.c~driver-model-more-pci_choose_states-are-needed drivers/usb/core/hcd-pci.c --- 25/drivers/usb/core/hcd-pci.c~driver-model-more-pci_choose_states-are-needed 2005-01-23 01:30:11.330219712 -0800 +++ 25-akpm/drivers/usb/core/hcd-pci.c 2005-01-23 01:30:11.341218040 -0800 @@ -274,11 +274,12 @@ static char __attribute_used__ *pci_stat * * Store this function in the HCD's struct pci_driver as suspend(). */ -int usb_hcd_pci_suspend (struct pci_dev *dev, u32 state) +int usb_hcd_pci_suspend (struct pci_dev *dev, pm_message_t pmsg) { struct usb_hcd *hcd; int retval = 0; int has_pci_pm; + pci_power_t state; hcd = pci_get_drvdata(dev); @@ -287,8 +288,10 @@ int usb_hcd_pci_suspend (struct pci_dev * PM-sensitive HCDs may already have done this. */ has_pci_pm = pci_find_capability(dev, PCI_CAP_ID_PM); - if (state > 4) - state = 4; + + state = pci_choose_state(dev, pmsg); + if (state > PCI_D3cold) + state = PCI_D3cold; switch (hcd->state) { @@ -396,7 +399,7 @@ int usb_hcd_pci_resume (struct pci_dev * if (has_pci_pm) pci_set_power_state (dev, 0); - dev->dev.power.power_state = 0; + dev->dev.power.power_state = PMSG_ON; retval = request_irq (dev->irq, usb_hcd_irq, SA_SHIRQ, hcd->driver->description, hcd); if (retval < 0) { _