|
@@ -235,41 +235,32 @@ static void bcma_host_pci_remove(struct pci_dev *dev)
|
|
|
}
|
|
|
|
|
|
#ifdef CONFIG_PM
|
|
|
-static int bcma_host_pci_suspend(struct pci_dev *dev, pm_message_t state)
|
|
|
+static int bcma_host_pci_suspend(struct device *dev)
|
|
|
{
|
|
|
- struct bcma_bus *bus = pci_get_drvdata(dev);
|
|
|
-
|
|
|
- /* Host specific */
|
|
|
- pci_save_state(dev);
|
|
|
- pci_disable_device(dev);
|
|
|
- pci_set_power_state(dev, pci_choose_state(dev, state));
|
|
|
+ struct pci_dev *pdev = to_pci_dev(dev);
|
|
|
+ struct bcma_bus *bus = pci_get_drvdata(pdev);
|
|
|
|
|
|
bus->mapped_core = NULL;
|
|
|
+
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
|
-static int bcma_host_pci_resume(struct pci_dev *dev)
|
|
|
+static int bcma_host_pci_resume(struct device *dev)
|
|
|
{
|
|
|
- struct bcma_bus *bus = pci_get_drvdata(dev);
|
|
|
- int err;
|
|
|
+ struct pci_dev *pdev = to_pci_dev(dev);
|
|
|
+ struct bcma_bus *bus = pci_get_drvdata(pdev);
|
|
|
|
|
|
- /* Host specific */
|
|
|
- pci_set_power_state(dev, 0);
|
|
|
- err = pci_enable_device(dev);
|
|
|
- if (err)
|
|
|
- return err;
|
|
|
- pci_restore_state(dev);
|
|
|
+ return bcma_bus_resume(bus);
|
|
|
+}
|
|
|
|
|
|
- /* Bus specific */
|
|
|
- err = bcma_bus_resume(bus);
|
|
|
- if (err)
|
|
|
- return err;
|
|
|
+static SIMPLE_DEV_PM_OPS(bcma_pm_ops, bcma_host_pci_suspend,
|
|
|
+ bcma_host_pci_resume);
|
|
|
+#define BCMA_PM_OPS (&bcma_pm_ops)
|
|
|
|
|
|
- return 0;
|
|
|
-}
|
|
|
#else /* CONFIG_PM */
|
|
|
-# define bcma_host_pci_suspend NULL
|
|
|
-# define bcma_host_pci_resume NULL
|
|
|
+
|
|
|
+#define BCMA_PM_OPS NULL
|
|
|
+
|
|
|
#endif /* CONFIG_PM */
|
|
|
|
|
|
static DEFINE_PCI_DEVICE_TABLE(bcma_pci_bridge_tbl) = {
|
|
@@ -287,8 +278,7 @@ static struct pci_driver bcma_pci_bridge_driver = {
|
|
|
.id_table = bcma_pci_bridge_tbl,
|
|
|
.probe = bcma_host_pci_probe,
|
|
|
.remove = bcma_host_pci_remove,
|
|
|
- .suspend = bcma_host_pci_suspend,
|
|
|
- .resume = bcma_host_pci_resume,
|
|
|
+ .driver.pm = BCMA_PM_OPS,
|
|
|
};
|
|
|
|
|
|
int __init bcma_host_pci_init(void)
|