return 0;
}
-#ifdef CONFIG_PM
-static int mxsfb_runtime_suspend(struct device *dev)
-{
- struct drm_device *drm = dev_get_drvdata(dev);
- struct mxsfb_drm_private *mxsfb = drm->dev_private;
-
- if (!drm->registered)
- return 0;
-
- if (mxsfb->enabled) {
- mxsfb_crtc_disable(mxsfb);
- mxsfb->suspended = true;
- }
-
- return 0;
-}
-
-static int mxsfb_runtime_resume(struct device *dev)
-{
- struct drm_device *drm = dev_get_drvdata(dev);
- struct mxsfb_drm_private *mxsfb = drm->dev_private;
-
- if (!drm->registered || !mxsfb->suspended)
- return 0;
-
- mxsfb_crtc_enable(mxsfb);
- mxsfb->suspended = false;
-
- return 0;
-}
-
+#ifdef CONFIG_PM_SLEEP
static int mxsfb_suspend(struct device *dev)
{
struct drm_device *drm = dev_get_drvdata(dev);
- struct mxsfb_drm_private *mxsfb = drm->dev_private;
-
- if (mxsfb->enabled) {
- mxsfb_crtc_disable(mxsfb);
- mxsfb->suspended = true;
- }
- return 0;
+ return drm_mode_config_helper_suspend(drm);
}
static int mxsfb_resume(struct device *dev)
{
struct drm_device *drm = dev_get_drvdata(dev);
- struct mxsfb_drm_private *mxsfb = drm->dev_private;
-
- if (!mxsfb->suspended)
- return 0;
- mxsfb_crtc_enable(mxsfb);
- mxsfb->suspended = false;
-
- return 0;
+ return drm_mode_config_helper_resume(drm);
}
#endif
static const struct dev_pm_ops mxsfb_pm_ops = {
- SET_RUNTIME_PM_OPS(mxsfb_runtime_suspend, mxsfb_runtime_resume, NULL)
SET_SYSTEM_SLEEP_PM_OPS(mxsfb_suspend, mxsfb_resume)
};
.driver = {
.name = "mxsfb",
.of_match_table = mxsfb_dt_ids,
- .pm = &mxsfb_pm_ops,
+ .pm = &mxsfb_pm_ops,
},
};