Commit f6fd1d70 authored by Linus Walleij's avatar Linus Walleij

drm/mcde: Support using DSI in LP mode

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: default avatarLinus Walleij <linus.walleij@linaro.org>
Acked-by: default avatarDaniel 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
parent 44c3867a
...@@ -812,10 +812,11 @@ static void mcde_dsi_start(struct mcde_dsi *d) ...@@ -812,10 +812,11 @@ static void mcde_dsi_start(struct mcde_dsi *d)
/* Command mode, clear IF1 ID */ /* Command mode, clear IF1 ID */
val = readl(d->regs + DSI_CMD_MODE_CTL); val = readl(d->regs + DSI_CMD_MODE_CTL);
/* /*
* If we enable low-power mode here, with * If we enable low-power mode here,
* val |= DSI_CMD_MODE_CTL_IF1_LP_EN
* then display updates become really slow. * 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; val &= ~DSI_CMD_MODE_CTL_IF1_ID_MASK;
writel(val, d->regs + DSI_CMD_MODE_CTL); writel(val, d->regs + DSI_CMD_MODE_CTL);
...@@ -904,10 +905,11 @@ static void mcde_dsi_bridge_pre_enable(struct drm_bridge *bridge) ...@@ -904,10 +905,11 @@ static void mcde_dsi_bridge_pre_enable(struct drm_bridge *bridge)
/* Command mode, clear IF1 ID */ /* Command mode, clear IF1 ID */
val = readl(d->regs + DSI_CMD_MODE_CTL); val = readl(d->regs + DSI_CMD_MODE_CTL);
/* /*
* If we enable low-power mode here with * If we enable low-power mode here
* val |= DSI_CMD_MODE_CTL_IF1_LP_EN
* the display updates become really slow. * 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; val &= ~DSI_CMD_MODE_CTL_IF1_ID_MASK;
writel(val, d->regs + DSI_CMD_MODE_CTL); writel(val, d->regs + DSI_CMD_MODE_CTL);
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment