[PATCH] drm/bridge: stm_lvds: Do not fail atomic_check on disabled connector
Raphael Gallais-Pou
raphael.gallais-pou at foss.st.com
Mon Apr 13 01:30:38 PDT 2026
On 4/9/26 04:48, Marek Vasut wrote:
> If the connector is disabled, the new connector state has .crtc field
> set to NULL and there is nothing more to validate after that point.
> The .crtc field being NULL is not an error. Test for .crtc being NULL,
> and if it is NULL, exit early with return 0.
>
> This fixes a failure in suspend/resume path, where the connector is
> already disabled, but .atomic_check is called, fails, returns -EINVAL
> and blocks the suspend entry.
>
> Fixes: aca1cbc1c986 ("drm/stm: lvds: add new STM32 LVDS Display Interface Transmitter driver")
> Signed-off-by: Marek Vasut <marex at nabladev.com>
> ---
Hi Marek,
Acked-by: Raphaël Gallais-Pou <raphael.gallais-pou at foss.st.com>
Thanks,
Best regards,
Raphaël
> Cc: Alexandre Torgue <alexandre.torgue at foss.st.com>
> Cc: David Airlie <airlied at gmail.com>
> Cc: Maarten Lankhorst <maarten.lankhorst at linux.intel.com>
> Cc: Maxime Coquelin <mcoquelin.stm32 at gmail.com>
> Cc: Maxime Ripard <mripard at kernel.org>
> Cc: Philippe Cornu <philippe.cornu at foss.st.com>
> Cc: Raphael Gallais-Pou <raphael.gallais-pou at foss.st.com>
> Cc: Simona Vetter <simona at ffwll.ch>
> Cc: Thomas Zimmermann <tzimmermann at suse.de>
> Cc: Yannick Fertre <yannick.fertre at foss.st.com>
> Cc: dri-devel at lists.freedesktop.org
> Cc: linux-arm-kernel at lists.infradead.org
> Cc: linux-kernel at vger.kernel.org
> Cc: linux-stm32 at st-md-mailman.stormreply.com
> ---
> drivers/gpu/drm/stm/lvds.c | 6 +++---
> 1 file changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/gpu/drm/stm/lvds.c b/drivers/gpu/drm/stm/lvds.c
> index fe38c0984b2b5..25e2ba98f36ae 100644
> --- a/drivers/gpu/drm/stm/lvds.c
> +++ b/drivers/gpu/drm/stm/lvds.c
> @@ -897,14 +897,14 @@ static int lvds_connector_atomic_check(struct drm_connector *connector,
> if (!conn_state)
> return -EINVAL;
>
> + if (!conn_state->crtc)
> + return 0;
> +
> if (list_empty(&connector->modes)) {
> drm_dbg(connector->dev, "connector: empty modes list\n");
> return -EINVAL;
> }
>
> - if (!conn_state->crtc)
> - return -EINVAL;
> -
> panel_mode = list_first_entry(&connector->modes,
> struct drm_display_mode, head);
>
More information about the linux-arm-kernel
mailing list