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 <ma...@denx.de>
Cc: Daniel Vetter <dan...@ffwll.ch>
Cc: David Airlie <airl...@linux.ie>
Cc: Fabio Estevam <feste...@gmail.com>
Cc: NXP Linux Team <linux-...@nxp.com>
Cc: Philipp Zabel <p.za...@pengutronix.de>
Cc: Sascha Hauer <s.ha...@pengutronix.de>
Cc: Shawn Guo <shawn...@kernel.org>
Cc: linux-arm-ker...@lists.infradead.org
To: dri-devel@lists.freedesktop.org
---
V2: Rebase on next, update description
---
 drivers/gpu/drm/imx/parallel-display.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/imx/parallel-display.c 
b/drivers/gpu/drm/imx/parallel-display.c
index 08fafa4bf8c2..e411179cba1f 100644
--- a/drivers/gpu/drm/imx/parallel-display.c
+++ b/drivers/gpu/drm/imx/parallel-display.c
@@ -216,7 +216,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;
-- 
2.25.0

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

Reply via email to