Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

drm/imx: parallel-display: Prefer bus format set via legacy "interface-pix-fmt" DT property

Prefer bus format set via legacy "interface-pix-fmt" DT property
over panel bus format. This is necessary to retain support for
DTs which configure the IPUv3 parallel output as 24bit DPI, but
connect 18bit DPI panels to it with hardware swizzling.

This used to work up to Linux 6.12, but stopped working in 6.13,
reinstate the behavior to support old DTs.

Cc: stable@vger.kernel.org
Fixes: 5f6e56d3319d ("drm/imx: parallel-display: switch to drm_panel_bridge")
Signed-off-by: Marek Vasut <marex@nabladev.com>
Reviewed-by: Philipp Zabel <p.zabel@pengutronix.de>
Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
Link: https://patch.msgid.link/20260110171510.692666-1-marex@nabladev.com

authored by

Marek Vasut and committed by
Philipp Zabel
cdf26e14 ba683f77

+12 -3
+12 -3
drivers/gpu/drm/imx/ipuv3/parallel-display.c
··· 110 110 output_fmt = imxpd->bus_format ? : MEDIA_BUS_FMT_RGB888_1X24; 111 111 112 112 /* Now make sure the requested output format is supported. */ 113 - if ((imxpd->bus_format && imxpd->bus_format != output_fmt) || 114 - !imx_pd_format_supported(output_fmt)) { 113 + if (!imx_pd_format_supported(output_fmt)) { 115 114 *num_input_fmts = 0; 116 115 return NULL; 117 116 } ··· 120 121 if (!input_fmts) 121 122 return NULL; 122 123 123 - input_fmts[0] = output_fmt; 124 + /* 125 + * Prefer bus format set via legacy "interface-pix-fmt" DT property 126 + * over panel bus format. This is necessary to retain support for 127 + * DTs which configure the IPUv3 parallel output as 24bit, but 128 + * connect 18bit DPI panels to it with hardware swizzling. 129 + */ 130 + if (imxpd->bus_format && imxpd->bus_format != output_fmt) 131 + input_fmts[0] = imxpd->bus_format; 132 + else 133 + input_fmts[0] = output_fmt; 134 + 124 135 return input_fmts; 125 136 } 126 137