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 D815B361640 for ; Fri, 21 Aug 2026 21:59:33 +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=1787349575; cv=none; b=SLERWG+x4xUs7RoyT+97SltJ7l6xXHg6jgh5ZxXvD0CCkoLQjssc9vCwdtX5iZ/3I0GYK4AmLPxK2USzO34HKyAQjk+5px9hRendMsEidqn5ypl+x7Zy660Yu0ZmHAPtG/XfHQgCOA8iJ00He2IcqvbKOW7ftHGlnUdjHyji+6E= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787349575; c=relaxed/simple; bh=1AKlFn/j/CRyBxuXZMQJgLvXMtM0Lmp8jpP3Xok+ELw=; h=Message-ID:Subject:From:To:Cc:Date:In-Reply-To:References: Content-Type:MIME-Version; b=HqnEUtHTEkGfRahdLSm9ShmHjgVVonUIFqZ43wM3RCAgcXFdJ4eW8oJ+0ksivJ+defxfxxNU7+QaM6mb/M2nYEtC8PDJvEJu63poAqBzAzHrfRMXCz+nYO2HLS5/aBMp8/uhxqXP7G+dNG3qFyZAS9rwaWfJUx7hgMyH6NELiuI= 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=LIUsNl/w; dkim=pass (2048-bit key) header.d=redhat.com header.i=@redhat.com header.b=SdopySXN; 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="LIUsNl/w"; dkim=pass (2048-bit key) header.d=redhat.com header.i=@redhat.com header.b="SdopySXN" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1787349572; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=Yu+hOZT2DZL8hLRcYSAFyvPiNjPMHm+BvocQ7hwJTWc=; b=LIUsNl/wAUFc1hZ03USsiPKAXFGrA5YFkVWI0NWbnyWZ1Qkm3oRTt4gFwWGiH1k/FhhXMM ulXD1oid5Q5ez4bo2EAjvuBpVuCN4CbxQCkxMl+bhGGSYoRzTiIIc+ayCEPb6vbdFvmhka Mb8QMjs4GcDIhfxPq2aZ7BSqakh6PVM= Received: from mail-qk1-f198.google.com (mail-qk1-f198.google.com [209.85.222.198]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-315--QUD7qUXOiuWQb6UERixVA-1; Fri, 21 Aug 2026 17:59:31 -0400 X-MC-Unique: -QUD7qUXOiuWQb6UERixVA-1 X-Mimecast-MFC-AGG-ID: -QUD7qUXOiuWQb6UERixVA_1787349571 Received: by mail-qk1-f198.google.com with SMTP id af79cd13be357-92e538afe65so186025185a.3 for ; Fri, 21 Aug 2026 14:59:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=google; t=1787349571; x=1787954371; darn=vger.kernel.org; h=mime-version:user-agent:content-transfer-encoding:content-type :references:in-reply-to:date:cc:to:from:subject:message-id:from:to :cc:subject:date:message-id:reply-to:content-type; bh=Yu+hOZT2DZL8hLRcYSAFyvPiNjPMHm+BvocQ7hwJTWc=; b=SdopySXNhL2pE+WUc5INaipbA9Y5uUJpSAiRw9/gcJ8yalTbh+2DKgDNzuX2BdKwxn OsVx1B98MkN4EQq2Xn74gF9Si2eXM6gGI8/yDK5bM3BnY+ODPCljziqs4JF5q9QpkrMH e017fQSKGaH6dMbyKovKx1JcCllUdVI4PhpP8DgCfSmWPcFyUXsXVP/PGZYKAHRSnr38 QEzygAuo8m53O6tr6UtOYKCNAp4hPkoqACaXovl/eXfliq+DOQ3qXLrIY8G+1FeZsHf1 a/z/rWGsvLzsN2/uwW5SZFBayvOWfEtcPvCeEs2UoupMO9mgED0i3+mpm3ZFLLtBmEU3 x6wg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1787349571; x=1787954371; h=mime-version:user-agent:content-transfer-encoding:content-type :references:in-reply-to:date:cc:to:from:subject:message-id:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=Yu+hOZT2DZL8hLRcYSAFyvPiNjPMHm+BvocQ7hwJTWc=; b=qzZE1aetjflGKoHU87fTFK/ahk6SQ4N24qwEMAQSIDuO5wbBdc3/HwPLfqb7+SdtNB xLG0ICr/aEtw5wel+X+Dv5Cy2qfymM0eAAdrGbeGepCY8O75qUxXINjH+JT+Y0IfUBDd J9IppnDmbSRj0gP/K3v2LzIWh+JRXr7XwpjXuz3Q4gdiJpnnviqacigA2HBguzxIYpe0 IP2C8tePwxeA4WGveCdiZ0UhCaPHdq3xbewU4mbUlctrc6E/vQNUt0i7xxkP2B8VqSLC 8NhYzdz7oaTIzGEyLf0NadahKPJn3h//M35/2yTEOvA11qvcr8YeF38LMSscrfdRFKfn NpXg== X-Forwarded-Encrypted: i=1; AHgh+Rr/9vJ0G8/8qraBzRcQ/XgEdZaxn4ECm2gzHJGCXrLpHXLHrPWJqj6xuJpqU+1Sk7qFUQDWVfXD59Vd30o=@vger.kernel.org X-Gm-Message-State: AFuF++kNjMEPPSgrbrX8nxrTe4Y4FcpIpFbUNFd/ffATQ5TnH5n2vwEt h0x5ztyjRyHBdxbIM7i2c4QUvkcLy441U7B86WmBx+EAOxRQhFkCQBIYJMBBFGXBldTusDgzdgk rKYgLuCY+PlQaks8dCedLPH4wuOraTS/m1T3tXGz564/qJw8KiwDw2vfjIgacTNoOfQ== X-Gm-Gg: AR+sD13LHR1K2+HJn+plZ2PBbE1lN35k3CY/NP0k59TBMpp+/T+LwclZ+NkCzo/Jv2T AVRWatdgPLXw7kGC9TnJt0bJ0wbsEkeBgl5Ah+w/q+KJMbKSg1ePb541/jl3findkiUzApk529f fjSzT9G86nwQL85e6PfjU0alq86AV9zlNM4ph7x3j/vkrfMEjiwUNcGZ9ulNHhf17PP7MbOjudl 0sbJalV8rbrrLejm1vgFoq9jDAZjvdOuU0QoEek4wGYJLEe0nxbgmal3PDv6v4kjGSXz3NhkZ4s i8tFwCsdM+TBOAbFRhVwPMIbWVVB5CUM1nbjhDcF/+DDpEP8wZAhtB8kHKGCaoxHpeyXzy1v X-Received: by 2002:a05:620a:288b:b0:936:51af:1de0 with SMTP id af79cd13be357-937395f23d9mr843720285a.47.1787349570859; Fri, 21 Aug 2026 14:59:30 -0700 (PDT) X-Received: by 2002:a05:620a:288b:b0:936:51af:1de0 with SMTP id af79cd13be357-937395f23d9mr843716385a.47.1787349570425; Fri, 21 Aug 2026 14:59:30 -0700 (PDT) Received: from [192.168.8.4] ([100.0.180.93]) by smtp.gmail.com with ESMTPSA id af79cd13be357-93749adeee6sm7807585a.15.2026.08.21.14.59.29 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 21 Aug 2026 14:59:29 -0700 (PDT) Message-ID: <66d7cd7ee0a94e01ccb559a36178497ae2d806ad.camel@redhat.com> Subject: Re: [PATCH v2 05/10] drm/nouveau/disp: fix HDMI GCP AVMute register offsets on GB20x From: lyude@redhat.com To: Mohamed Ahmed , linux-kernel@vger.kernel.org Cc: dri-devel@lists.freedesktop.org, Danilo Krummrich , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter , Mary Guillemard , nouveau@lists.freedesktop.org Date: Fri, 21 Aug 2026 17:59:28 -0400 In-Reply-To: <20260820164929.17117-6-mohamedahmedegypt2001@gmail.com> References: <20260820164929.17117-1-mohamedahmedegypt2001@gmail.com> <20260820164929.17117-6-mohamedahmedegypt2001@gmail.com> Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable User-Agent: Evolution 3.58.3 (3.58.3-1.fc43) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Code-wise this looks totally fine, but I'm not actually getting any audio on my local GB206 setup. Is this expected, e.g. will we need more work to actually get it working? On Thu, 2026-08-20 at 20:49 +0400, Mohamed Ahmed wrote: > The GSP path brackets audio enablement with a General Control Packet > AVMute toggle. r535_sor_hdmi_audio() calls the gsp.hdmi_gcp hook, > which > every chip so far serves with tu102_sor_hdmi_gcp() and the legacy GCP > unit at 0x6f00c0/0x6f00cc. On GB20x the SF packet units were > compacted > and the old generic and VSI units are gone (ACR keeps slot 2) and the > GCP unit moved from slot 3 to slot 1 (control 0x6f0040 and subpack > 0x6f004c from NVIDIA's published clc971.h. The same offsets are also > used by OpenRM's hdmiWriteGeneralCtrlPacketC871() on these chips). > The > old addresses are reserved on GB20x, so the AVMute writes were silent > no-ops and mitigated only by the equivalent GCP r535_sor_hdmi_audio() > already sends through the SET_OD_PACKET RM control. >=20 > Add a GB20x GCP writer using the new offsets and hook it into > gb202_gsp_disp, keeping the direct MMIO path in sync with the > hardware > as on earlier chips. >=20 > Only SB0 (the AVMute bit) is written. On NVD5.0 the subpack register > also > carries SB1_CTRL (bit 24), which selects where the deep-color CD/PP > fields are generated (hardware or from the driver, with the default > being > HW). hdmiWriteGeneralCtrlPacketC871() likewise writes only SB0-SB2. >=20 > Signed-off-by: Mohamed Ahmed > --- > =C2=A0.../gpu/drm/nouveau/nvkm/engine/disp/gb202.c=C2=A0 | 20 > ++++++++++++++++++- > =C2=A01 file changed, 19 insertions(+), 1 deletion(-) >=20 > diff --git a/drivers/gpu/drm/nouveau/nvkm/engine/disp/gb202.c > b/drivers/gpu/drm/nouveau/nvkm/engine/disp/gb202.c > index fa83aee35ae7..4863b2b36db0 100644 > --- a/drivers/gpu/drm/nouveau/nvkm/engine/disp/gb202.c > +++ b/drivers/gpu/drm/nouveau/nvkm/engine/disp/gb202.c > @@ -65,6 +65,24 @@ gb202_sor_hdmi_infoframe_vsi(struct nvkm_ior *ior, > int head, void *data, u32 siz > =C2=A0 nvkm_wr32(device, 0x6f03f8 + hoff, 0x00000002); > =C2=A0} > =C2=A0 > +/* General Control Packet AVMute bracket. The GCP unit moved to slot > 1 on > + * NVD5.0. Only SB0 (the AVMute bit) is ours to write so we must not > do a > + * full write here: SB1 carries the deep-color CD/PP fields, and > SB1_CTRL > + * (bit 24, new with clc871.h) controls where their generation > happens (HW > + * or driver) on these chips, with the default being HW. > + */ > +static void > +gb202_sor_hdmi_gcp(struct nvkm_ior *sor, int head, bool enable) > +{ > + struct nvkm_device *device =3D sor->disp- > >engine.subdev.device; > + const u32 hdmi =3D head * 0x400; > + > + nvkm_mask(device, 0x6f0040 + hdmi, 0x00000001, 0x00000000); > + nvkm_mask(device, 0x6f004c + hdmi, 0x000000ff, !enable ? > 0x00000001 : > + =09 > 0x00000010); > + nvkm_mask(device, 0x6f0040 + hdmi, 0x00000001, 0x00000001); > +} > + > =C2=A0/* GB20x is GSP-only. This table supplies the register programming > the > =C2=A0 * GSP-RM display path needs from the chip. > =C2=A0 */ > @@ -77,7 +95,7 @@ gb202_gsp_disp =3D { > =C2=A0 .gsp.head_rgpos =3D gv100_head_rgpos, > =C2=A0 .gsp.vblank_get =3D tu102_head_vblank_get, > =C2=A0 .gsp.vblank_put =3D tu102_head_vblank_put, > - .gsp.hdmi_gcp =3D tu102_sor_hdmi_gcp, > + .gsp.hdmi_gcp =3D gb202_sor_hdmi_gcp, > =C2=A0 /* The legacy AVI unit is unchanged on GB20x. */ > =C2=A0 .gsp.hdmi_infoframe_avi =3D gv100_sor_hdmi_infoframe_avi, > =C2=A0 .gsp.hdmi_infoframe_vsi =3D gb202_sor_hdmi_infoframe_vsi,