drm/mcde/panel: Inverse misunderstood flag
authorLinus Walleij <linus.walleij@linaro.org>
Thu, 4 Mar 2021 00:41:38 +0000 (01:41 +0100)
committerLinus Walleij <linus.walleij@linaro.org>
Thu, 4 Mar 2021 13:31:06 +0000 (14:31 +0100)
A recent patch renaming MIPI_DSI_MODE_EOT_PACKET to
MIPI_DSI_MODE_NO_EOT_PACKET brought to light the
misunderstanding in the current MCDE driver and all
its associated panel drivers that MIPI_DSI_MODE_EOT_PACKET
would mean "use EOT packet" when in fact it means the
reverse.

Fix it up by implementing the flag right in the MCDE
DSI driver and remove the flag from panels that actually
want the EOT packet.

Suggested-by: Nicolas Boichat <drinkcat@chromium.org>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Reviewed-by: Nicolas Boichat <drinkcat@chromium.org>
Fixes: 5fc537bfd000 ("drm/mcde: Add new driver for ST-Ericsson MCDE")
Fixes: 899f24ed8d3a ("drm/panel: Add driver for Novatek NT35510-based panels")
Fixes: ac1d6d74884e ("drm/panel: Add driver for Samsung S6D16D0 panel")
Fixes: 435e06c06cb2 ("drm/panel: s6e63m0: Add DSI transport")
Fixes: 8152c2bfd780 ("drm/panel: Add driver for Sony ACX424AKP panel")
Link: https://patchwork.freedesktop.org/patch/msgid/20210304004138.1785057-1-linus.walleij@linaro.org
drivers/gpu/drm/mcde/mcde_dsi.c
drivers/gpu/drm/panel/panel-novatek-nt35510.c
drivers/gpu/drm/panel/panel-samsung-s6d16d0.c
drivers/gpu/drm/panel/panel-samsung-s6e63m0-dsi.c
drivers/gpu/drm/panel/panel-sony-acx424akp.c

index 2314c81..b3fd350 100644 (file)
@@ -760,7 +760,7 @@ static void mcde_dsi_start(struct mcde_dsi *d)
                DSI_MCTL_MAIN_DATA_CTL_BTA_EN |
                DSI_MCTL_MAIN_DATA_CTL_READ_EN |
                DSI_MCTL_MAIN_DATA_CTL_REG_TE_EN;
-       if (d->mdsi->mode_flags & MIPI_DSI_MODE_EOT_PACKET)
+       if (!(d->mdsi->mode_flags & MIPI_DSI_MODE_EOT_PACKET))
                val |= DSI_MCTL_MAIN_DATA_CTL_HOST_EOT_GEN;
        writel(val, d->regs + DSI_MCTL_MAIN_DATA_CTL);
 
index b9a0e56..ef70140 100644 (file)
@@ -898,8 +898,7 @@ static int nt35510_probe(struct mipi_dsi_device *dsi)
         */
        dsi->hs_rate = 349440000;
        dsi->lp_rate = 9600000;
-       dsi->mode_flags = MIPI_DSI_CLOCK_NON_CONTINUOUS |
-               MIPI_DSI_MODE_EOT_PACKET;
+       dsi->mode_flags = MIPI_DSI_CLOCK_NON_CONTINUOUS;
 
        /*
         * Every new incarnation of this display must have a unique
index 4aac0d1..70560ca 100644 (file)
@@ -184,9 +184,7 @@ static int s6d16d0_probe(struct mipi_dsi_device *dsi)
         * As we only send commands we do not need to be continuously
         * clocked.
         */
-       dsi->mode_flags =
-               MIPI_DSI_CLOCK_NON_CONTINUOUS |
-               MIPI_DSI_MODE_EOT_PACKET;
+       dsi->mode_flags = MIPI_DSI_CLOCK_NON_CONTINUOUS;
 
        s6->supply = devm_regulator_get(dev, "vdd1");
        if (IS_ERR(s6->supply))
index eec74c1..9c3563c 100644 (file)
@@ -97,7 +97,6 @@ static int s6e63m0_dsi_probe(struct mipi_dsi_device *dsi)
        dsi->hs_rate = 349440000;
        dsi->lp_rate = 9600000;
        dsi->mode_flags = MIPI_DSI_MODE_VIDEO |
-               MIPI_DSI_MODE_EOT_PACKET |
                MIPI_DSI_MODE_VIDEO_BURST;
 
        ret = s6e63m0_probe(dev, s6e63m0_dsi_dcs_read, s6e63m0_dsi_dcs_write,
index 065efae..95659a4 100644 (file)
@@ -449,8 +449,7 @@ static int acx424akp_probe(struct mipi_dsi_device *dsi)
                        MIPI_DSI_MODE_VIDEO_BURST;
        else
                dsi->mode_flags =
-                       MIPI_DSI_CLOCK_NON_CONTINUOUS |
-                       MIPI_DSI_MODE_EOT_PACKET;
+                       MIPI_DSI_CLOCK_NON_CONTINUOUS;
 
        acx->supply = devm_regulator_get(dev, "vddi");
        if (IS_ERR(acx->supply))