]> git.proxmox.com Git - mirror_ubuntu-jammy-kernel.git/commitdiff
drm/mcde: Support using DSI in LP mode
authorLinus Walleij <linus.walleij@linaro.org>
Sat, 8 Aug 2020 22:31:20 +0000 (00:31 +0200)
committerLinus Walleij <linus.walleij@linaro.org>
Thu, 13 Aug 2020 14:39:15 +0000 (16:39 +0200)
It is possible to set a flag in the struct mipi_dsi_device
so the panel is handled in low power (LP) mode. Some displays
only support this mode and it is also good for testing.

Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Cc: newbytee@protonmail.com
Cc: Stephan Gerhold <stephan@gerhold.net>
Link: https://patchwork.freedesktop.org/patch/msgid/20200808223122.1492124-2-linus.walleij@linaro.org
drivers/gpu/drm/mcde/mcde_dsi.c

index a342e898298b82e67918b753500c1b7c99d5415c..5cea8cbf084c7d284d5d7375c99ca23ddff660e6 100644 (file)
@@ -812,10 +812,11 @@ static void mcde_dsi_start(struct mcde_dsi *d)
        /* Command mode, clear IF1 ID */
        val = readl(d->regs + DSI_CMD_MODE_CTL);
        /*
-        * If we enable low-power mode here, with
-        * val |= DSI_CMD_MODE_CTL_IF1_LP_EN
+        * If we enable low-power mode here,
         * then display updates become really slow.
         */
+       if (d->mdsi->mode_flags & MIPI_DSI_MODE_LPM)
+               val |= DSI_CMD_MODE_CTL_IF1_LP_EN;
        val &= ~DSI_CMD_MODE_CTL_IF1_ID_MASK;
        writel(val, d->regs + DSI_CMD_MODE_CTL);
 
@@ -904,10 +905,11 @@ static void mcde_dsi_bridge_pre_enable(struct drm_bridge *bridge)
                /* Command mode, clear IF1 ID */
                val = readl(d->regs + DSI_CMD_MODE_CTL);
                /*
-                * If we enable low-power mode here with
-                * val |= DSI_CMD_MODE_CTL_IF1_LP_EN
+                * If we enable low-power mode here
                 * the display updates become really slow.
                 */
+               if (d->mdsi->mode_flags & MIPI_DSI_MODE_LPM)
+                       val |= DSI_CMD_MODE_CTL_IF1_LP_EN;
                val &= ~DSI_CMD_MODE_CTL_IF1_ID_MASK;
                writel(val, d->regs + DSI_CMD_MODE_CTL);
        }