drm/imx: parallel-display: Adjust bus_flags handling
authorMarek Vasut <marex@denx.de>
Mon, 9 Mar 2020 20:18:33 +0000 (21:18 +0100)
committerPhilipp Zabel <p.zabel@pengutronix.de>
Mon, 20 Jul 2020 13:16:05 +0000 (15:16 +0200)
The bus_flags handling logic does not seem to cover all potential
usecases. Specifically, this seems to fail with an "edt,etm0700g0edh6"
display attached to an 24bit display interface, with interface-pix-fmt
= "rgb24" set in DT.

This patch fixes the problem by overriding the imx_crtc_state->bus_flags
from the imxpd->bus_flags only if the DT property "interface-pix-fmt" is
present or if the DI provides no formats.

Signed-off-by: Marek Vasut <marex@denx.de>
Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
drivers/gpu/drm/imx/parallel-display.c

index 622eabe..2d773f0 100644 (file)
@@ -217,7 +217,7 @@ static int imx_pd_bridge_atomic_check(struct drm_bridge *bridge,
 
        if (next_bridge_state)
                bus_flags = next_bridge_state->input_bus_cfg.flags;
-       else if (!imxpd->bus_format && di->num_bus_formats)
+       else if (di->num_bus_formats)
                bus_flags = di->bus_flags;
        else
                bus_flags = imxpd->bus_flags;