Commit d0c5ac04 authored by Linus Walleij's avatar Linus Walleij
Browse files

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: default avatarNicolas Boichat <drinkcat@chromium.org>
Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
Reviewed-by: default avatarNicolas Boichat <drinkcat@chromium.org>
Fixes: 5fc537bf ("drm/mcde: Add new driver for ST-Ericsson MCDE")
Fixes: 899f24ed ("drm/panel: Add driver for Novatek NT35510-based panels")
Fixes: ac1d6d74 ("drm/panel: Add driver for Samsung S6D16D0 panel")
Fixes: 435e06c0 ("drm/panel: s6e63m0: Add DSI transport")
Fixes: 8152c2bf ("drm/panel: Add driver for Sony ACX424AKP panel")
Link: https://patchwork.freedesktop.org/patch/msgid/20210304004138.1785057-1-linus.walleij@linaro.org
parent 762949bb
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -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);

+1 −2
Original line number Diff line number Diff line
@@ -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
+1 −3
Original line number Diff line number Diff line
@@ -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))
+0 −1
Original line number Diff line number Diff line
@@ -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,
+1 −2
Original line number Diff line number Diff line
@@ -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))