From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 025B6381EB1 for ; Tue, 18 Aug 2026 23:57:29 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=170.10.129.124 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787097451; cv=none; b=ttecFU0BrAEXViw75JqAj63gtMHB/7o6CjcthyvbPCzHh8VadMWw5rhjQoEM92lHnrt+YM/4EGKFACwYmbhcypoGV31B840xapRvwJxnNWjTDE4w9Zz1TI3qKBfZCet/lDz39R2fvDhMG/S0+YsvnSsjd9Uc6sU9FjgHHxjtYJI= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787097451; c=relaxed/simple; bh=CLIflbTK3K8NuDlGXHs9MGesopu/mahtSFnSSloyOXU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=XhgNvBtsXGSDDrI6p5//Pl3Koh3c1UvaEzktm5kuXoKIskDv4c8Hk8AZiiBq1hcqUnq8g/h3+58rcTZqGWyEuM2LQ0QvJ5LKqzVYfV30DXPPhqQNuNiCaMaWjZ91PMZGOMzDGEKrIFmbpq5PgZrseBMuGgohXan++R6R2jkw/0I= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=redhat.com; spf=pass smtp.mailfrom=redhat.com; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b=FP3lvmJ9; arc=none smtp.client-ip=170.10.129.124 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=redhat.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=redhat.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b="FP3lvmJ9" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1787097449; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=BCyf9rtyGAx6bysEfHD8j87uaMQiZpddyxAMrWCqR7E=; b=FP3lvmJ9qmyinjIrJ1TVc5p2CCXlckOHmelmUH+WXcX9AdlMe+GEMptablXePuZ6IV/6rw t7klZpLBheKFiwfS4XJNvKzRxkemUPStehw3DNmLsYKtkywHlIDNRA/RC3svZ9cgQznzVY rZHPz7btfjb8L8kW/ivKolHwlb51vVw= Received: from mx-prod-mc-06.mail-002.prod.us-west-2.aws.redhat.com (ec2-35-165-154-97.us-west-2.compute.amazonaws.com [35.165.154.97]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-301-CWvHRAMxOtaZlqVxCZ09-A-1; Tue, 18 Aug 2026 19:57:25 -0400 X-MC-Unique: CWvHRAMxOtaZlqVxCZ09-A-1 X-Mimecast-MFC-AGG-ID: CWvHRAMxOtaZlqVxCZ09-A_1787097443 Received: from mx-prod-int-06.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-06.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.93]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mx-prod-mc-06.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id 1574C180074B; Tue, 18 Aug 2026 23:57:23 +0000 (UTC) Received: from GoldenWind.lan (unknown [10.22.80.100]) by mx-prod-int-06.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP id 0E0111800347; Tue, 18 Aug 2026 23:57:19 +0000 (UTC) From: Lyude Paul To: dri-devel@lists.freedesktop.org, nouveau@lists.freedesktop.org, linux-kernel@vger.kernel.org, Marek Czernohous Cc: "Faith Ekstrand" , "Dave Airlie" , "Marek Czernohous" , "Maarten Lankhorst" , "Luca Ceresoli" , "Kees Cook" , "Marco Crivellari" , "Simona Vetter" , "Ben Skeggs" , "David Airlie" , "Thomas Zimmermann" , "Maxime Ripard" , "Danilo Krummrich" , "Jani Nikula" , "James Jones" , "Lyude Paul" Subject: [PATCH 6/6] drm/nouveau/kms/nv50-: Obliterate nouveau_encoder->crtc Date: Tue, 18 Aug 2026 19:48:48 -0400 Message-ID: <20260818235637.1738055-7-lyude@redhat.com> In-Reply-To: <20260818235637.1738055-1-lyude@redhat.com> References: <20260818235637.1738055-1-lyude@redhat.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Scanned-By: MIMEDefang 3.4.1 on 10.30.177.93 This is mostly a leftover artifact from the pre-atomic days, and while we've been using it for a while now - it isn't great. Mostly because having redundant state tracking for things atomic already keeps track of is pretty much always error prone, as anyone working on nouveau who isn't already very well versed in atomic modesetting isn't going to realize this isn't the right way to see what CRTC is assigned to an encoder. Now that we've removed the only legitimate user (DRM audio) and all the illegitimate ones, let's obliterate it. Signed-off-by: Lyude Paul --- drivers/gpu/drm/nouveau/dispnv50/disp.c | 8 -------- drivers/gpu/drm/nouveau/nouveau_encoder.h | 3 --- 2 files changed, 11 deletions(-) diff --git a/drivers/gpu/drm/nouveau/dispnv50/disp.c b/drivers/gpu/drm/nouveau/dispnv50/disp.c index 3bfc04f7ef602..9ab342ebed180 100644 --- a/drivers/gpu/drm/nouveau/dispnv50/disp.c +++ b/drivers/gpu/drm/nouveau/dispnv50/disp.c @@ -502,7 +502,6 @@ nv50_dac_atomic_disable(struct drm_encoder *encoder, struct drm_atomic_commit *s const u32 ctrl = NVDEF(NV507D, DAC_SET_CONTROL, OWNER, NONE); core->func->dac->ctrl(core, nv_encoder->outp.or.id, ctrl, NULL); - nv_encoder->crtc = NULL; } static void @@ -532,8 +531,6 @@ nv50_dac_atomic_enable(struct drm_encoder *encoder, struct drm_atomic_commit *st core->func->dac->ctrl(core, nv_encoder->outp.or.id, ctrl, asyh); asyh->or.depth = 0; - - nv_encoder->crtc = &nv_crtc->base; } static enum drm_connector_status @@ -1634,7 +1631,6 @@ nv50_sor_atomic_disable(struct drm_encoder *encoder, struct drm_atomic_commit *s nv_encoder->update(nv_encoder, head->base.index, NULL, 0, 0); nv50_audio_disable(encoder, &head->base); - nv_encoder->crtc = NULL; } // common/inc/displayport/displayport.h @@ -1802,7 +1798,6 @@ nv50_sor_atomic_enable(struct drm_encoder *encoder, struct drm_atomic_commit *st u8 depth = NV837D_SOR_SET_CONTROL_PIXEL_DEPTH_DEFAULT; nv_connector = nv50_outp_get_new_connector(state, nv_encoder); - nv_encoder->crtc = &nv_crtc->base; if ((disp->disp->object.oclass == GT214_DISP || disp->disp->object.oclass >= GF110_DISP) && @@ -2013,7 +2008,6 @@ nv50_pior_atomic_disable(struct drm_encoder *encoder, struct drm_atomic_commit * const u32 ctrl = NVDEF(NV507D, PIOR_SET_CONTROL, OWNER, NONE); core->func->pior->ctrl(core, nv_encoder->outp.or.id, ctrl, NULL); - nv_encoder->crtc = NULL; } static void @@ -2058,7 +2052,6 @@ nv50_pior_atomic_enable(struct drm_encoder *encoder, struct drm_atomic_commit *s } core->func->pior->ctrl(core, nv_encoder->outp.or.id, ctrl, asyh); - nv_encoder->crtc = &nv_crtc->base; } static const struct drm_encoder_helper_funcs @@ -2797,7 +2790,6 @@ nv50_display_read_hw_or_state(struct drm_device *dev, struct nv50_disp *disp, armh->state.enable = true; pm_runtime_get_noresume(dev->dev); - outp->crtc = crtc; outp->ctrl = NVVAL(NV507D, SOR_SET_CONTROL, PROTOCOL, proto) | BIT(crtc->index); drm_connector_get(conn); diff --git a/drivers/gpu/drm/nouveau/nouveau_encoder.h b/drivers/gpu/drm/nouveau/nouveau_encoder.h index 647322ac1c8df..6dcdfd048a35d 100644 --- a/drivers/gpu/drm/nouveau/nouveau_encoder.h +++ b/drivers/gpu/drm/nouveau/nouveau_encoder.h @@ -54,9 +54,6 @@ struct nouveau_encoder { struct i2c_adapter *i2c; - /* different to drm_encoder.crtc, this reflects what's - * actually programmed on the hw, not the proposed crtc */ - struct drm_crtc *crtc; u32 ctrl; /* Protected by nouveau_drm.audio.lock */ -- 2.55.0