summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarek Vasut <marex@nabladev.com>2026-04-09 05:48:41 +0300
committerRaphael Gallais-Pou <raphael.gallais-pou@foss.st.com>2026-04-13 13:52:33 +0300
commiteecdd4bd6e47bf0c8ff1e049771fa5bab7074c7c (patch)
tree92e0b222d22edda13894de3ca2f5a70f4b5726ad
parent79ae8510b5b81b9500370f89c619b50ca9c0990f (diff)
downloadlinux-eecdd4bd6e47bf0c8ff1e049771fa5bab7074c7c.tar.xz
drm/bridge: stm_lvds: Do not fail atomic_check on disabled connector
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@nabladev.com> Acked-by: Raphaƫl Gallais-Pou <raphael.gallais-pou@foss.st.com> Link: https://patch.msgid.link/20260409024928.344010-1-marex@nabladev.com Signed-off-by: Raphael Gallais-Pou <raphael.gallais-pou@foss.st.com>
-rw-r--r--drivers/gpu/drm/stm/lvds.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/drivers/gpu/drm/stm/lvds.c b/drivers/gpu/drm/stm/lvds.c
index fe38c0984b2b..25e2ba98f36a 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);