drm: bridge: samsung-dsim: complete the CLKLANE_STOP setting
authorDario Binacchi <dario.binacchi@amarulasolutions.com>
Mon, 18 Dec 2023 08:43:38 +0000 (09:43 +0100)
committerRobert Foss <rfoss@kernel.org>
Mon, 22 Jan 2024 15:08:34 +0000 (16:08 +0100)
The patch completes the setting of CLKLANE_STOP for the imx8m{m,n,p}
platforms (i. e. not exynos).

Co-developed-by: Michael Trimarchi <michael@amarulasolutions.com>
Signed-off-by: Michael Trimarchi <michael@amarulasolutions.com>
Signed-off-by: Dario Binacchi <dario.binacchi@amarulasolutions.com>
Reviewed-by: Robert Foss <rfoss@kernel.org>
Signed-off-by: Robert Foss <rfoss@kernel.org>
Link: https://patchwork.freedesktop.org/patch/msgid/20231218084354.508942-3-dario.binacchi@amarulasolutions.com
drivers/gpu/drm/bridge/samsung-dsim.c

index 12054b8745a926f191715515b0f578fad287e88f..f9d85fe1df7ec6bbf1d6724cd7abb668ba9b64d2 100644 (file)
@@ -96,6 +96,7 @@
 #define DSIM_MFLUSH_VS                 BIT(29)
 /* This flag is valid only for exynos3250/3472/5260/5430 */
 #define DSIM_CLKLANE_STOP              BIT(30)
+#define DSIM_NON_CONTINUOUS_CLKLANE    BIT(31)
 
 /* DSIM_ESCMODE */
 #define DSIM_TX_TRIGGER_RST            BIT(4)
@@ -945,8 +946,12 @@ static int samsung_dsim_init_link(struct samsung_dsim *dsi)
         * power consumption.
         */
        if (driver_data->has_clklane_stop &&
-           dsi->mode_flags & MIPI_DSI_CLOCK_NON_CONTINUOUS)
+           dsi->mode_flags & MIPI_DSI_CLOCK_NON_CONTINUOUS) {
+               if (!samsung_dsim_hw_is_exynos(dsi->plat_data->hw_type))
+                       reg |= DSIM_NON_CONTINUOUS_CLKLANE;
+
                reg |= DSIM_CLKLANE_STOP;
+       }
        samsung_dsim_write(dsi, DSIM_CONFIG_REG, reg);
 
        lanes_mask = BIT(dsi->lanes) - 1;