Re: [PATCH v12] drm/bridge: imx: Add i.MX93 parallel display format configuration support

[email protected]
Newsgroups dev.linux.lists.imx,org.freedesktop.lists.dri-devel
Message-ID <[email protected]>
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [High] Returning a fallback format for unsupported output formats breaks DRM bridge format negotiation.
--

--- Patch [1]: [PATCH v12] drm/bridge: imx: Add i.MX93 parallel display format configuration support ---
commit 62def9c6e85686d63c6204b71b54383955f8f9d1
Author: Liu Ying <[email protected]>
drm/bridge: imx: Add i.MX93 parallel display format configuration support

This commit introduces a new DRM bridge driver to support parallel display
format configuration on the NXP i.MX93 and i.MX91 SoCs. It handles format
conversions for the MEDIAMIX BLK-CTRL DISPLAY_MUX register.

> diff --git a/drivers/gpu/drm/bridge/imx/imx93-pdfc.c b/drivers/gpu/drm/bridge/imx/imx93-pdfc.c
> new file mode 100644
> index 0000000000000..b084409d22ef2
> --- /dev/null
> +++ b/drivers/gpu/drm/bridge/imx/imx93-pdfc.c
[ ... ]
> +static u32 *
> +imx93_pdfc_bridge_atomic_get_input_bus_fmts(struct drm_bridge *bridge,
> +					    struct drm_bridge_state *bridge_state,
> +					    struct drm_crtc_state *crtc_state,
> +					    struct drm_connector_state *conn_state,
> +					    u32 output_fmt,
> +					    unsigned int *num_input_fmts)
> +{
> +	struct imx93_pdfc *pdfc = bridge_to_imx93_pdfc(bridge);
> +	u32 *input_fmts;
> +
> +	*num_input_fmts = 0;
> +
> +	input_fmts = kmalloc_obj(*input_fmts);
> +	if (!input_fmts)
> +		return NULL;
> +
> +	*num_input_fmts = 1;
> +
> +	if (!imx93_pdfc_bus_output_fmt_supported(output_fmt)) {
> +		dev_dbg(pdfc->dev, "No valid output bus-fmt detected, fallback to MEDIA_BUS_FMT_RGB888_1X24\n");
> +		input_fmts[0] = MEDIA_BUS_FMT_RGB888_1X24;
> +		return input_fmts;
> +	}

[Severity: High]
Does returning a fallback format here break DRM bridge format negotiation?

When the downstream bridge requests an unsupported output format first,
drm_atomic_bridge_chain_select_bus_fmts() queries atomic_get_input_bus_fmts()
to check if the format is supported. By returning MEDIA_BUS_FMT_RGB888_1X24
instead of 0 formats, this driver falsely claims it can support the requested
output_fmt.

The core then proceeds with the unsupported format, which is correctly
rejected by imx93_pdfc_bridge_atomic_check(), aborting the modeset with
-EINVAL instead of gracefully negotiating a fallback.

Should this instead set *num_input_fmts = 0, free the array, and return NULL
when the output format is unsupported?

-- 
Sashiko AI review · https://sashiko.dev/#/patchset/20260722-v6-18-topic-imx93-parallel-display-v12-1-a59dbb4dbc13@nxp.com?part=1
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.