[PATCH v2] drm/bridge: imx93-mipi-dsi: Fix mode validation
Liu Ying
victor.liu at nxp.com
Wed May 13 22:55:24 PDT 2026
On Tue, May 12, 2026 at 05:18:49PM +0800, Liu Ying wrote:
> i.MX93 MIPI DPHY PLL has limitation for matching with some pixel clock
> rates, e.g., the best DPHY PLL frequency is 445.333333MHz for a typical
> 1920x1080p at 60Hz CEA/DMT display modes with a pixel clock rate running
> at 148.5MHz with 4 data lanes + RGB888 pixel in MIPI DSI sync pulse mode,
> while the expected PLL frequency is (148.5 * 24) / 4 / 2 MHz = 445.5MHz.
> Fortunately, VESA Display Monitor Timing Standard allows +/-0.5% pixel
> clock rate deviation for timings. So, for those display modes read
> from EDID through a bridge with DRM_BRIDGE_OP_DETECT and DRM_BRIDGE_OP_EDID
> operation bit masks set, pixel clock rate could be adjusted to match
> with the PLL frequency(for the above example, the pixel clock rate is
> adjusted to be 148.444444MHz with about -0.03% deviation from the 148.5MHz
> nominal rate so that the adjusted rate matches with the 445.333333MHz PLL
> frequency).
>
> Instead of checking the last bridge's operation bit masks against
> DRM_BRIDGE_OP_DETECT and DRM_BRIDGE_OP_EDID to determine if allowing
> +/-0.5% pixel clock rate deviation, check any bridge after this bridge,
> because the last bridge is usually a display connector bridge without
> any operation bit mask when the clock rate deviation is allowed.
>
> Fixes: ce62f8ea7e3f ("drm/bridge: imx: Add i.MX93 MIPI DSI support")
> Fixes: 5849eff7f067 ("drm/bridge: imx93-mipi-dsi: use drm_bridge_chain_get_last_bridge()")
> Reviewed-by: Frank Li <Frank.Li at nxp.com>
> Signed-off-by: Liu Ying <victor.liu at nxp.com>
> ---
> Changes in v2:
> - Collect Frank's R-b tag.
> - Add an explanation to commit message about the reason why mode validation
> checks bridge's operation bit masks. (Dmitry)
> - Copy Dmitry.
> - Link to v1: https://lore.kernel.org/r/20260227-imx93-mipi-dsi-fix-mode-validation-v1-1-a9cd67991280@nxp.com
>
> To: Liu Ying <victor.liu at nxp.com>
> To: Andrzej Hajda <andrzej.hajda at intel.com>
> To: Neil Armstrong <neil.armstrong at linaro.org>
> To: Robert Foss <rfoss at kernel.org>
> To: Laurent Pinchart <Laurent.pinchart at ideasonboard.com>
> To: Jonas Karlman <jonas at kwiboo.se>
> To: Jernej Skrabec <jernej.skrabec at gmail.com>
> To: Maarten Lankhorst <maarten.lankhorst at linux.intel.com>
> To: Maxime Ripard <mripard at kernel.org>
> To: Thomas Zimmermann <tzimmermann at suse.de>
> To: David Airlie <airlied at gmail.com>
> To: Simona Vetter <simona at ffwll.ch>
> To: Frank Li <Frank.Li at nxp.com>
> To: Sascha Hauer <s.hauer at pengutronix.de>
> To: Pengutronix Kernel Team <kernel at pengutronix.de>
> To: Fabio Estevam <festevam at gmail.com>
> To: Luca Ceresoli <luca.ceresoli at bootlin.com>
> Cc: Dmitry Baryshkov <dmitry.baryshkov at oss.qualcomm.com>
> Cc: dri-devel at lists.freedesktop.org
> Cc: imx at lists.linux.dev
> Cc: linux-arm-kernel at lists.infradead.org
> Cc: linux-kernel at vger.kernel.org
> ---
> drivers/gpu/drm/bridge/imx/imx93-mipi-dsi.c | 29 ++++++++++++++++-------------
> 1 file changed, 16 insertions(+), 13 deletions(-)
Just for the record, sashiko bot reported a deadlock issue[1], but didn't copy
all receivers. I think that's a real issue, so would fix it.
[1] https://lore.kernel.org/all/20260513201715.AACA2C19425@smtp.kernel.org/
--
Regards,
Liu Ying
More information about the linux-arm-kernel
mailing list