if (!edp->edp_en) {
rk32_edp_clk_enable(edp);
+ pm_runtime_get_sync(edp->dev);
rk32_edp_pre_init(edp);
rk32_edp_init_edp(edp);
enable_irq(edp->irq);
struct rk32_edp *edp = rk32_edp;
if (edp->edp_en) {
+ pm_runtime_put(edp->dev);
disable_irq(edp->irq);
rk32_edp_reset(edp);
rk32_edp_analog_power_ctr(edp, 0);
disable_irq_nosync(edp->irq);
if (!support_uboot_display())
rk32_edp_clk_disable(edp);
+
+ pm_runtime_enable(&pdev->dev);
+
rk32_edp = edp;
rk_fb_trsm_ops_register(&trsm_edp_ops, SCREEN_EDP);
#if defined(CONFIG_DEBUG_FS)
return 0;
}
-static void rk32_edp_shutdown(struct platform_device *pdev)
+static int rockchip_edp_remove(struct platform_device *pdev)
{
+ pm_runtime_disable(&pdev->dev);
+ return 0;
}
#if defined(CONFIG_OF)
static struct platform_driver rk32_edp_driver = {
.probe = rk32_edp_probe,
+ .remove = rockchip_edp_remove,
.driver = {
.name = "rk32-edp",
.owner = THIS_MODULE,
.of_match_table = of_match_ptr(rk32_edp_dt_ids),
#endif
},
- .shutdown = rk32_edp_shutdown,
};
static int __init rk32_edp_module_init(void)