Am Dienstag, den 01.02.2022, 12:36 +0100 schrieb Christoph Niedermaier: > 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 <cniedermaier@xxxxxxxxxxxxxxxxxx> > Cc: Marek Vasut <marex@xxxxxxx> > Cc: Boris Brezillon <boris.brezillon@xxxxxxxxxxxxx> > Cc: Philipp Zabel <p.zabel@xxxxxxxxxxxxxx> > Cc: David Airlie <airlied@xxxxxxxx> > Cc: Daniel Vetter <daniel@xxxxxxxx> > Cc: Shawn Guo <shawnguo@xxxxxxxxxx> > Cc: Sascha Hauer <s.hauer@xxxxxxxxxxxxxx> > Cc: Pengutronix Kernel Team <kernel@xxxxxxxxxxxxxx> > Cc: Fabio Estevam <festevam@xxxxxxxxx> > Cc: NXP Linux Team <linux-imx@xxxxxxx> > Cc: linux-arm-kernel@xxxxxxxxxxxxxxxxxxx > To: dri-devel@xxxxxxxxxxxxxxxxxxxxx > --- > V2: - Add Boris to the Cc list > --- > 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 a8aba0141ce7..06cb1a59b9bc 100644 > --- a/drivers/gpu/drm/imx/parallel-display.c > +++ b/drivers/gpu/drm/imx/parallel-display.c > @@ -217,14 +217,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; Tested on a Colibri iMX6DL with a panel-dpi based panel. Tested-by: Max Krummenacher <max.krummenacher@xxxxxxxxxxx>