diff options
-rw-r--r-- | drivers/staging/gma500/power.c | 9 | ||||
-rw-r--r-- | drivers/staging/gma500/power.h | 4 | ||||
-rw-r--r-- | drivers/staging/gma500/psb_drv.c | 6 |
3 files changed, 9 insertions, 10 deletions
diff --git a/drivers/staging/gma500/power.c b/drivers/staging/gma500/power.c index 5cd5023..972bea7 100644 --- a/drivers/staging/gma500/power.c +++ b/drivers/staging/gma500/power.c @@ -185,8 +185,9 @@ static bool gma_resume_pci(struct pci_dev *pdev) * perform the necessary shut down steps and save enough state that * we can undo this when resume is called. */ -int gma_power_suspend(struct pci_dev *pdev, pm_message_t state) +int gma_power_suspend(struct device *_dev) { + struct pci_dev *pdev = container_of(_dev, struct pci_dev, dev); struct drm_device *dev = pci_get_drvdata(pdev); struct drm_psb_private *dev_priv = dev->dev_private; @@ -210,8 +211,9 @@ int gma_power_suspend(struct pci_dev *pdev, pm_message_t state) * * Resume the PCI side of the graphics and then the displays */ -int gma_power_resume(struct pci_dev *pdev) +int gma_power_resume(struct device *_dev) { + struct pci_dev *pdev = container_of(_dev, struct pci_dev, dev); struct drm_device *dev = pci_get_drvdata(pdev); mutex_lock(&power_mutex); @@ -295,8 +297,7 @@ void gma_power_end(struct drm_device *dev) int psb_runtime_suspend(struct device *dev) { - static pm_message_t dummy; - return gma_power_suspend(to_pci_dev(dev), dummy); + return gma_power_suspend(dev); } int psb_runtime_resume(struct device *dev) diff --git a/drivers/staging/gma500/power.h b/drivers/staging/gma500/power.h index 333b28d..1969d2e 100644 --- a/drivers/staging/gma500/power.h +++ b/drivers/staging/gma500/power.h @@ -39,8 +39,8 @@ void gma_power_uninit(struct drm_device *dev); /* * The kernel bus power management will call these functions */ -int gma_power_suspend(struct pci_dev *pdev, pm_message_t state); -int gma_power_resume(struct pci_dev *pdev); +int gma_power_suspend(struct device *dev); +int gma_power_resume(struct device *dev); /* * These are the functions the driver should use to wrap all hw access diff --git a/drivers/staging/gma500/psb_drv.c b/drivers/staging/gma500/psb_drv.c index b8b9864..f96a619 100644 --- a/drivers/staging/gma500/psb_drv.c +++ b/drivers/staging/gma500/psb_drv.c @@ -1144,6 +1144,8 @@ static void psb_remove(struct pci_dev *pdev) } static const struct dev_pm_ops psb_pm_ops = { + .resume = gma_power_resume, + .suspend = gma_power_suspend, .runtime_suspend = psb_runtime_suspend, .runtime_resume = psb_runtime_resume, .runtime_idle = psb_runtime_idle, @@ -1205,13 +1207,9 @@ static struct drm_driver driver = { static struct pci_driver psb_pci_driver = { .name = DRIVER_NAME, .id_table = pciidlist, - .resume = gma_power_resume, - .suspend = gma_power_suspend, .probe = psb_probe, .remove = psb_remove, -#ifdef CONFIG_PM .driver.pm = &psb_pm_ops, -#endif }; static int psb_probe(struct pci_dev *pdev, const struct pci_device_id *ent) |