From: Christoph Niedermaier <[email protected]>

[ Upstream commit 6061806a863e8b65b109eb06a280041cc7525442 ]

If display timings were read from the devicetree using
of_get_display_timing() and pixelclk-active is defined
there, the flag DISPLAY_FLAGS_SYNC_POSEDGE/NEGEDGE is
automatically generated. Through the function
drm_bus_flags_from_videomode() e.g. called in the
panel-simple driver this flag got into the bus flags,
but then in imx_pd_bridge_atomic_check() the bus flag
check failed and will not initialize the display. The
original commit fe141cedc433 does not explain why this
check was introduced. So remove the bus flags check,
because it stops the initialization of the display with
valid bus flags.

Fixes: fe141cedc433 ("drm/imx: pd: Use bus format/flags provided by the bridge 
when available")
Signed-off-by: Christoph Niedermaier <[email protected]>
Cc: Marek Vasut <[email protected]>
Cc: Boris Brezillon <[email protected]>
Cc: Philipp Zabel <[email protected]>
Cc: David Airlie <[email protected]>
Cc: Daniel Vetter <[email protected]>
Cc: Shawn Guo <[email protected]>
Cc: Sascha Hauer <[email protected]>
Cc: Pengutronix Kernel Team <[email protected]>
Cc: Fabio Estevam <[email protected]>
Cc: NXP Linux Team <[email protected]>
Cc: [email protected]
To: [email protected]
Tested-by: Max Krummenacher <[email protected]>
Acked-by: Boris Brezillon <[email protected]>
Signed-off-by: Marek Vasut <[email protected]>
Link: 
https://patchwork.freedesktop.org/patch/msgid/[email protected]
Signed-off-by: Maarten Lankhorst <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
---
 drivers/gpu/drm/imx/parallel-display.c | 8 --------
 1 file changed, 8 deletions(-)

diff --git a/drivers/gpu/drm/imx/parallel-display.c 
b/drivers/gpu/drm/imx/parallel-display.c
index 2eb8df4697df..605ac8825a59 100644
--- a/drivers/gpu/drm/imx/parallel-display.c
+++ b/drivers/gpu/drm/imx/parallel-display.c
@@ -212,14 +212,6 @@ static int imx_pd_bridge_atomic_check(struct drm_bridge 
*bridge,
        if (!imx_pd_format_supported(bus_fmt))
                return -EINVAL;
 
-       if (bus_flags &
-           ~(DRM_BUS_FLAG_DE_LOW | DRM_BUS_FLAG_DE_HIGH |
-             DRM_BUS_FLAG_PIXDATA_DRIVE_POSEDGE |
-             DRM_BUS_FLAG_PIXDATA_DRIVE_NEGEDGE)) {
-               dev_warn(imxpd->dev, "invalid bus_flags (%x)\n", bus_flags);
-               return -EINVAL;
-       }
-
        bridge_state->output_bus_cfg.flags = bus_flags;
        bridge_state->input_bus_cfg.flags = bus_flags;
        imx_crtc_state->bus_flags = bus_flags;
-- 
2.34.1



Reply via email to