From: Lyude Paul <lyude@redhat.com>
To: dri-devel@lists.freedesktop.org, nouveau@lists.freedesktop.org,
linux-kernel@vger.kernel.org,
Marek Czernohous <mczernohous@gmail.com>
Cc: stable@vger.kernel.org,
"Faith Ekstrand" <faith.ekstrand@collabora.com>,
"Dave Airlie" <airlied@redhat.com>,
"Marek Czernohous" <marek@czernohous.de>,
"Maarten Lankhorst" <maarten.lankhorst@linux.intel.com>,
"Luca Ceresoli" <luca.ceresoli@bootlin.com>,
"Kees Cook" <kees@kernel.org>,
"Marco Crivellari" <marco.crivellari@suse.com>,
"Simona Vetter" <simona@ffwll.ch>,
"Ben Skeggs" <bskeggs@redhat.com>,
"David Airlie" <airlied@gmail.com>,
"Thomas Zimmermann" <tzimmermann@suse.de>,
"Maxime Ripard" <mripard@kernel.org>,
"Danilo Krummrich" <dakr@kernel.org>,
"Jani Nikula" <jani.nikula@intel.com>,
"James Jones" <jajones@nvidia.com>,
"Lyude Paul" <lyude@redhat.com>
Subject: [PATCH v2 3/6] drm/nouveau/kms/nv50-: Stop using nv_encoder->crtc in nv50_sor_atomic_disable()
Date: Wed, 19 Aug 2026 11:43:50 -0400 [thread overview]
Message-ID: <20260819155934.154125-4-lyude@redhat.com> (raw)
In-Reply-To: <20260819155934.154125-1-lyude@redhat.com>
This is a leftover CRTC bookkeeping variable from the pre-atomic days.
While it works in most situations, it's prone to breaking - as pointed out
by Marek Czernohous.
Signed-off-by: Lyude Paul <lyude@redhat.com>
Reported-by: Marek Czernohous <mczernohous@gmail.com>
Fixes: f575f2bdb6c3 ("drm/nouveau/kms/nv50-: Remove (nv_encoder->crtc) checks in ->disable callbacks")
Cc: <stable@vger.kernel.org> # v5.12+
---
drivers/gpu/drm/nouveau/dispnv50/disp.c | 10 ++++++++--
1 file changed, 8 insertions(+), 2 deletions(-)
diff --git a/drivers/gpu/drm/nouveau/dispnv50/disp.c b/drivers/gpu/drm/nouveau/dispnv50/disp.c
index 152361f7feb42..f19820dc055ae 100644
--- a/drivers/gpu/drm/nouveau/dispnv50/disp.c
+++ b/drivers/gpu/drm/nouveau/dispnv50/disp.c
@@ -459,7 +459,7 @@ nv50_outp_get_old_connector(struct drm_atomic_commit *state, struct nouveau_enco
return NULL;
}
-static struct nouveau_crtc * __maybe_unused
+static struct nouveau_crtc *
nv50_outp_get_old_crtc(const struct drm_atomic_commit *state, const struct nouveau_encoder *outp)
{
struct drm_crtc *crtc;
@@ -1606,12 +1606,18 @@ static void
nv50_sor_atomic_disable(struct drm_encoder *encoder, struct drm_atomic_commit *state)
{
struct nouveau_encoder *nv_encoder = nouveau_encoder(encoder);
- struct nv50_head *head = nv50_head(nv_encoder->crtc);
+ struct nouveau_crtc *nv_crtc;
+ struct nv50_head *head;
#ifdef CONFIG_DRM_NOUVEAU_BACKLIGHT
nv50_sor_atomic_disable_backlight(nouveau_drm(state->dev), nv_encoder, state);
#endif
+ nv_crtc = nv50_outp_get_old_crtc(state, nv_encoder);
+ if (drm_WARN_ON(state->dev, !nv_crtc))
+ return;
+ head = nv50_head(&nv_crtc->base);
+
if (nv_encoder->dcb->type == DCB_OUTPUT_TMDS && nv_encoder->hdmi.enabled) {
nvif_outp_hdmi(&nv_encoder->outp, head->base.index,
false, 0, 0, 0, false, false, false);
--
2.55.0
WARNING: multiple messages have this Message-ID (diff)
From: Lyude Paul <lyude@redhat.com>
To: dri-devel@lists.freedesktop.org, nouveau@lists.freedesktop.org,
linux-kernel@vger.kernel.org,
Marek Czernohous <mczernohous@gmail.com>
Cc: stable@vger.kernel.org,
Faith Ekstrand <faith.ekstrand@collabora.com>,
Dave Airlie <airlied@redhat.com>,
Marek Czernohous <marek@czernohous.de>,
Maarten Lankhorst <maarten.lankhorst@linux.intel.com>,
Luca Ceresoli <luca.ceresoli@bootlin.com>,
Kees Cook <kees@kernel.org>,
Marco Crivellari <marco.crivellari@suse.com>,
Simona Vetter <simona@ffwll.ch>, Ben Skeggs <bskeggs@redhat.com>,
Maxime Ripard <mripard@kernel.org>,
Danilo Krummrich <dakr@kernel.org>,
Jani Nikula <jani.nikula@intel.com>
Subject: [PATCH v2 3/6] drm/nouveau/kms/nv50-: Stop using nv_encoder->crtc in nv50_sor_atomic_disable()
Date: Wed, 19 Aug 2026 11:43:50 -0400 [thread overview]
Message-ID: <20260819155934.154125-4-lyude@redhat.com> (raw)
In-Reply-To: <20260819155934.154125-1-lyude@redhat.com>
This is a leftover CRTC bookkeeping variable from the pre-atomic days.
While it works in most situations, it's prone to breaking - as pointed out
by Marek Czernohous.
Signed-off-by: Lyude Paul <lyude@redhat.com>
Reported-by: Marek Czernohous <mczernohous@gmail.com>
Fixes: f575f2bdb6c3 ("drm/nouveau/kms/nv50-: Remove (nv_encoder->crtc) checks in ->disable callbacks")
Cc: <stable@vger.kernel.org> # v5.12+
---
drivers/gpu/drm/nouveau/dispnv50/disp.c | 10 ++++++++--
1 file changed, 8 insertions(+), 2 deletions(-)
diff --git a/drivers/gpu/drm/nouveau/dispnv50/disp.c b/drivers/gpu/drm/nouveau/dispnv50/disp.c
index 152361f7feb42..f19820dc055ae 100644
--- a/drivers/gpu/drm/nouveau/dispnv50/disp.c
+++ b/drivers/gpu/drm/nouveau/dispnv50/disp.c
@@ -459,7 +459,7 @@ nv50_outp_get_old_connector(struct drm_atomic_commit *state, struct nouveau_enco
return NULL;
}
-static struct nouveau_crtc * __maybe_unused
+static struct nouveau_crtc *
nv50_outp_get_old_crtc(const struct drm_atomic_commit *state, const struct nouveau_encoder *outp)
{
struct drm_crtc *crtc;
@@ -1606,12 +1606,18 @@ static void
nv50_sor_atomic_disable(struct drm_encoder *encoder, struct drm_atomic_commit *state)
{
struct nouveau_encoder *nv_encoder = nouveau_encoder(encoder);
- struct nv50_head *head = nv50_head(nv_encoder->crtc);
+ struct nouveau_crtc *nv_crtc;
+ struct nv50_head *head;
#ifdef CONFIG_DRM_NOUVEAU_BACKLIGHT
nv50_sor_atomic_disable_backlight(nouveau_drm(state->dev), nv_encoder, state);
#endif
+ nv_crtc = nv50_outp_get_old_crtc(state, nv_encoder);
+ if (drm_WARN_ON(state->dev, !nv_crtc))
+ return;
+ head = nv50_head(&nv_crtc->base);
+
if (nv_encoder->dcb->type == DCB_OUTPUT_TMDS && nv_encoder->hdmi.enabled) {
nvif_outp_hdmi(&nv_encoder->outp, head->base.index,
false, 0, 0, 0, false, false, false);
--
2.55.0
next prev parent reply other threads:[~2026-08-19 16:00 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-08-19 15:43 [PATCH v2 0/6] Obliterate nouveau_encoder->crtc Lyude Paul
2026-08-19 15:43 ` Lyude Paul
2026-08-19 15:43 ` [PATCH v2 1/6] drm/nouveau/kms/nv50-: Move DPCD backlight disable into its own function Lyude Paul
2026-08-19 15:43 ` Lyude Paul
2026-08-19 16:14 ` sashiko-bot
2026-08-19 15:43 ` [PATCH v2 2/6] drm/nouveau/kms/nv50-: Add nv50_outp_get_old_crtc() Lyude Paul
2026-08-19 15:43 ` Lyude Paul
2026-08-19 15:43 ` Lyude Paul [this message]
2026-08-19 15:43 ` [PATCH v2 3/6] drm/nouveau/kms/nv50-: Stop using nv_encoder->crtc in nv50_sor_atomic_disable() Lyude Paul
2026-08-19 15:43 ` [PATCH v2 4/6] drm/nouveau/kms/nv50-: Stop using nv_encoder->crtc in nv50_disp_atomic_commit_core() Lyude Paul
2026-08-19 15:43 ` Lyude Paul
2026-08-19 15:43 ` [PATCH v2 5/6] drm/nouveau/kms/nv50-: Add nouveau_encoder->audio.crtc Lyude Paul
2026-08-19 15:43 ` Lyude Paul
2026-08-19 16:15 ` sashiko-bot
2026-08-19 15:43 ` [PATCH v2 6/6] drm/nouveau/kms/nv50-: Obliterate nouveau_encoder->crtc Lyude Paul
2026-08-19 15:43 ` Lyude Paul
2026-08-19 16:08 ` sashiko-bot
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260819155934.154125-4-lyude@redhat.com \
--to=lyude@redhat.com \
--cc=airlied@gmail.com \
--cc=airlied@redhat.com \
--cc=bskeggs@redhat.com \
--cc=dakr@kernel.org \
--cc=dri-devel@lists.freedesktop.org \
--cc=faith.ekstrand@collabora.com \
--cc=jajones@nvidia.com \
--cc=jani.nikula@intel.com \
--cc=kees@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=luca.ceresoli@bootlin.com \
--cc=maarten.lankhorst@linux.intel.com \
--cc=marco.crivellari@suse.com \
--cc=marek@czernohous.de \
--cc=mczernohous@gmail.com \
--cc=mripard@kernel.org \
--cc=nouveau@lists.freedesktop.org \
--cc=simona@ffwll.ch \
--cc=stable@vger.kernel.org \
--cc=tzimmermann@suse.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.