Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

drm/mcde/panel: Inverse misunderstood flag

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

+4 -9
+1 -1
drivers/gpu/drm/mcde/mcde_dsi.c
··· 760 760 DSI_MCTL_MAIN_DATA_CTL_BTA_EN | 761 761 DSI_MCTL_MAIN_DATA_CTL_READ_EN | 762 762 DSI_MCTL_MAIN_DATA_CTL_REG_TE_EN; 763 - if (d->mdsi->mode_flags & MIPI_DSI_MODE_EOT_PACKET) 763 + if (!(d->mdsi->mode_flags & MIPI_DSI_MODE_EOT_PACKET)) 764 764 val |= DSI_MCTL_MAIN_DATA_CTL_HOST_EOT_GEN; 765 765 writel(val, d->regs + DSI_MCTL_MAIN_DATA_CTL); 766 766
+1 -2
drivers/gpu/drm/panel/panel-novatek-nt35510.c
··· 898 898 */ 899 899 dsi->hs_rate = 349440000; 900 900 dsi->lp_rate = 9600000; 901 - dsi->mode_flags = MIPI_DSI_CLOCK_NON_CONTINUOUS | 902 - MIPI_DSI_MODE_EOT_PACKET; 901 + dsi->mode_flags = MIPI_DSI_CLOCK_NON_CONTINUOUS; 903 902 904 903 /* 905 904 * Every new incarnation of this display must have a unique
+1 -3
drivers/gpu/drm/panel/panel-samsung-s6d16d0.c
··· 184 184 * As we only send commands we do not need to be continuously 185 185 * clocked. 186 186 */ 187 - dsi->mode_flags = 188 - MIPI_DSI_CLOCK_NON_CONTINUOUS | 189 - MIPI_DSI_MODE_EOT_PACKET; 187 + dsi->mode_flags = MIPI_DSI_CLOCK_NON_CONTINUOUS; 190 188 191 189 s6->supply = devm_regulator_get(dev, "vdd1"); 192 190 if (IS_ERR(s6->supply))
-1
drivers/gpu/drm/panel/panel-samsung-s6e63m0-dsi.c
··· 97 97 dsi->hs_rate = 349440000; 98 98 dsi->lp_rate = 9600000; 99 99 dsi->mode_flags = MIPI_DSI_MODE_VIDEO | 100 - MIPI_DSI_MODE_EOT_PACKET | 101 100 MIPI_DSI_MODE_VIDEO_BURST; 102 101 103 102 ret = s6e63m0_probe(dev, s6e63m0_dsi_dcs_read, s6e63m0_dsi_dcs_write,
+1 -2
drivers/gpu/drm/panel/panel-sony-acx424akp.c
··· 449 449 MIPI_DSI_MODE_VIDEO_BURST; 450 450 else 451 451 dsi->mode_flags = 452 - MIPI_DSI_CLOCK_NON_CONTINUOUS | 453 - MIPI_DSI_MODE_EOT_PACKET; 452 + MIPI_DSI_CLOCK_NON_CONTINUOUS; 454 453 455 454 acx->supply = devm_regulator_get(dev, "vddi"); 456 455 if (IS_ERR(acx->supply))