diff --git a/drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c b/drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c index 26ec8492ca0f..1b832ed4afa8 100644 --- a/drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c +++ b/drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c @@ -13,6 +13,7 @@ #include #include #include +#include #include #include @@ -582,12 +583,16 @@ static const struct component_ops dw_hdmi_rockchip_ops = { static int dw_hdmi_rockchip_probe(struct platform_device *pdev) { + pm_runtime_enable(&pdev->dev); + pm_runtime_get_sync(&pdev->dev); + return component_add(&pdev->dev, &dw_hdmi_rockchip_ops); } static int dw_hdmi_rockchip_remove(struct platform_device *pdev) { component_del(&pdev->dev, &dw_hdmi_rockchip_ops); + pm_runtime_disable(&pdev->dev); return 0; } @@ -595,12 +600,14 @@ static int dw_hdmi_rockchip_remove(struct platform_device *pdev) static int dw_hdmi_rockchip_suspend(struct device *dev) { dw_hdmi_suspend(dev); + pm_runtime_put_sync(dev); return 0; } static int dw_hdmi_rockchip_resume(struct device *dev) { + pm_runtime_get_sync(dev); dw_hdmi_resume(dev); return 0;