]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
drm/rockchip: analogix_dp: add runtime PM handling
authorLucas Stach <l.stach@pengutronix.de>
Wed, 19 Jun 2024 18:21:48 +0000 (20:21 +0200)
committerRobert Foss <rfoss@kernel.org>
Thu, 27 Jun 2024 09:51:58 +0000 (11:51 +0200)
Hook up the runtime PM suspend/resume paths to make the rockchip
glue behave more like the exynos one. The same suspend/resume
functions are used for system sleep via the runtime PM force
suspend/resume.

Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
Reviewed-by: Robert Foss <rfoss@kernel.org>
Reviewed-by: Heiko Stuebner <heiko@sntech.de>
Tested-by: Heiko Stuebner <heiko@sntech.de>
Signed-off-by: Robert Foss <rfoss@kernel.org>
Link: https://patchwork.freedesktop.org/patch/msgid/20240619182200.3752465-2-l.stach@pengutronix.de
drivers/gpu/drm/rockchip/analogix_dp-rockchip.c

index baeb41875a4b85215734f8d9ee4f504fdc958066..8214265f1497bf8bda44f3b30de41af1ffc808bf 100644 (file)
@@ -13,6 +13,7 @@
 #include <linux/of.h>
 #include <linux/of_graph.h>
 #include <linux/platform_device.h>
+#include <linux/pm_runtime.h>
 #include <linux/regmap.h>
 #include <linux/reset.h>
 #include <linux/clk.h>
@@ -430,7 +431,6 @@ static void rockchip_dp_remove(struct platform_device *pdev)
        analogix_dp_remove(dp->adp);
 }
 
-#ifdef CONFIG_PM_SLEEP
 static int rockchip_dp_suspend(struct device *dev)
 {
        struct rockchip_dp_device *dp = dev_get_drvdata(dev);
@@ -450,14 +450,9 @@ static int rockchip_dp_resume(struct device *dev)
 
        return analogix_dp_resume(dp->adp);
 }
-#endif
 
-static const struct dev_pm_ops rockchip_dp_pm_ops = {
-#ifdef CONFIG_PM_SLEEP
-       .suspend_late = rockchip_dp_suspend,
-       .resume_early = rockchip_dp_resume,
-#endif
-};
+static DEFINE_RUNTIME_DEV_PM_OPS(rockchip_dp_pm_ops, rockchip_dp_suspend,
+               rockchip_dp_resume, NULL);
 
 static const struct rockchip_dp_chip_data rk3399_edp = {
        .lcdsel_grf_reg = RK3399_GRF_SOC_CON20,
@@ -485,7 +480,7 @@ struct platform_driver rockchip_dp_driver = {
        .remove_new = rockchip_dp_remove,
        .driver = {
                   .name = "rockchip-dp",
-                  .pm = &rockchip_dp_pm_ops,
+                  .pm = pm_ptr(&rockchip_dp_pm_ops),
                   .of_match_table = rockchip_dp_dt_ids,
        },
 };