|
|
@@ -14,6 +14,7 @@
|
|
|
#include <linux/io.h>
|
|
|
#include <linux/irq.h>
|
|
|
#include <linux/pci.h>
|
|
|
+#include <linux/pm_runtime.h>
|
|
|
#include <linux/slab.h>
|
|
|
#include <linux/mmc/host.h>
|
|
|
#include <linux/mmc/mmc.h>
|
|
|
@@ -79,25 +80,13 @@ static void dw_mci_pci_remove(struct pci_dev *pdev)
|
|
|
dw_mci_remove(host);
|
|
|
}
|
|
|
|
|
|
-#ifdef CONFIG_PM_SLEEP
|
|
|
-static int dw_mci_pci_suspend(struct device *dev)
|
|
|
-{
|
|
|
- struct pci_dev *pdev = to_pci_dev(dev);
|
|
|
- struct dw_mci *host = pci_get_drvdata(pdev);
|
|
|
-
|
|
|
- return dw_mci_suspend(host);
|
|
|
-}
|
|
|
-
|
|
|
-static int dw_mci_pci_resume(struct device *dev)
|
|
|
-{
|
|
|
- struct pci_dev *pdev = to_pci_dev(dev);
|
|
|
- struct dw_mci *host = pci_get_drvdata(pdev);
|
|
|
-
|
|
|
- return dw_mci_resume(host);
|
|
|
-}
|
|
|
-#endif /* CONFIG_PM_SLEEP */
|
|
|
-
|
|
|
-static SIMPLE_DEV_PM_OPS(dw_mci_pci_pmops, dw_mci_pci_suspend, dw_mci_pci_resume);
|
|
|
+static const struct dev_pm_ops dw_mci_pci_dev_pm_ops = {
|
|
|
+ SET_SYSTEM_SLEEP_PM_OPS(pm_runtime_force_suspend,
|
|
|
+ pm_runtime_force_resume)
|
|
|
+ SET_RUNTIME_PM_OPS(dw_mci_runtime_suspend,
|
|
|
+ dw_mci_runtime_resume,
|
|
|
+ NULL)
|
|
|
+};
|
|
|
|
|
|
static const struct pci_device_id dw_mci_pci_id[] = {
|
|
|
{ PCI_DEVICE(SYNOPSYS_DW_MCI_VENDOR_ID, SYNOPSYS_DW_MCI_DEVICE_ID) },
|
|
|
@@ -111,7 +100,7 @@ static struct pci_driver dw_mci_pci_driver = {
|
|
|
.probe = dw_mci_pci_probe,
|
|
|
.remove = dw_mci_pci_remove,
|
|
|
.driver = {
|
|
|
- .pm = &dw_mci_pci_pmops
|
|
|
+ .pm = &dw_mci_pci_dev_pm_ops,
|
|
|
},
|
|
|
};
|
|
|
|