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.133.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 3136F39E184 for ; Mon, 17 Aug 2026 21:49:10 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=170.10.133.124 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787003352; cv=none; b=rWa/pRvTjoiOygmcex1lKHulslaJlaXg+CxJzuDkzUU5NgWsCzhbFibElbvJ9z3SmNrpcbhGtALrJ4fs/nIjC3DrnqgPII+l1nWwftSLMGFAqfAgP3XCkhQJgFYzXRRP3BkyEdZnEJpGK6gqhT4mxUoc35uYMQhyuWssyIkYd7Y= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787003352; c=relaxed/simple; bh=EGyHoHEWSMv5miHUEG2W7ko+vUgUBqkCD//ma+pmNJE=; h=Message-ID:Subject:From:To:Cc:Date:In-Reply-To:References: Content-Type:MIME-Version; b=DXk0MUju7om8MN3qqUUJK2oruZU7So9PH4Z1pQQUQW6TAhAnLnmSHz+s0TL1G8YRKMsyebnifKdAe/vt5xgH69+DfHHjfBF4hyo9F0Td9tr+ypwCL1Wou/Fh9fykNTkFrLvxXR/d27MqBIogAEAUx82Yvh2DUdeYfsMYP24j9Ic= 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=SCTZnoGw; dkim=pass (2048-bit key) header.d=redhat.com header.i=@redhat.com header.b=amHzGNDx; arc=none smtp.client-ip=170.10.133.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="SCTZnoGw"; dkim=pass (2048-bit key) header.d=redhat.com header.i=@redhat.com header.b="amHzGNDx" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1787003349; 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=+NpT6IBbEDn6Pvgvg7L8CX+UbCOJ8acjU28kPL1GyDs=; b=SCTZnoGw5FG7vxieW1t9hY+d5ZiFhFNZSoF83gnjRwyjoq3fMh+Xl25dXHaCpFjdyVn3hI kGAmFeIOAf0GhNSaN31EVp25QtDIRKDQNgL2Q+ZfVahKADveKYQg3V11gF+dOqyBjOy45u 1MWuHPo6MIh6Szoyncf3UxxuGzTjO3s= Received: from mail-qk1-f197.google.com (mail-qk1-f197.google.com [209.85.222.197]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-298-7NKut18FNs-ZtF3wvtvXqQ-1; Mon, 17 Aug 2026 17:49:08 -0400 X-MC-Unique: 7NKut18FNs-ZtF3wvtvXqQ-1 X-Mimecast-MFC-AGG-ID: 7NKut18FNs-ZtF3wvtvXqQ_1787003348 Received: by mail-qk1-f197.google.com with SMTP id af79cd13be357-92e53b8a302so419124985a.1 for ; Mon, 17 Aug 2026 14:49:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=google; t=1787003348; x=1787608148; 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=+NpT6IBbEDn6Pvgvg7L8CX+UbCOJ8acjU28kPL1GyDs=; b=amHzGNDxao8EHRH8YL2vvudUO+xuOcZSaSqf4R0VdEO1Wqn7pmNIiYUD5brpp56Bhw 4RvHTbElWU8Ys2pEEeYIdooBYqbndIR13uyrKkKSS5nM0yAe1Mk+CrBxwzu843u0pEvy SSx/2Njfl0oAP08wTBV2HTVSSiIWCQJyD9u6soJxJI5+HwEzoACkeNPSmHMWTOZxla5a SU8/AcPDzBgSU8CoeDN2jcaTkeioP4Sm34HFUJ+ACLkXWYtGcQsCgdMDF+1ASiT7JUWn /kYDwtZwcMz6RgZdMWkDHPkjL8L9KzBujkRreFa8/BPdmRMmRdjqWI5w3bBdUYavRjAr 1NUg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1787003348; x=1787608148; 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=+NpT6IBbEDn6Pvgvg7L8CX+UbCOJ8acjU28kPL1GyDs=; b=Z8vuu6H33F8PU68rMafwVlwdqtZKQ55CThJVaxLls4f6B4xETeoHy30FZZ/P/6s/BW tcrM6ZACRj2YEKZfcTU9jHx+DNM+zmiU4iBVBSc9O6p5JuuDsOsxlYfEPeb4fylk2e6D mfcTq7lMBheM9rgmpHzlsGGJgBbwNNu6BYY/iOTexQ2jKhTYzrvrjUMA1a1LOsjV9HzK ncv5D2wdWpbemAkYLlLdjm9z9q6gmt9b2I+iBouwKsiZ5OnLUqj4AHnZQgtzAHCVVOmS G0apqOu4ZqhGSJ0hgw05OcZktHQKDJp9YRZfbDVqZjekcA3MrFcBrqT22JLzqkvSE5MO Zc+A== X-Forwarded-Encrypted: i=1; AHgh+RqITlOK1GnQwtCBJdVU/pkBLH78xlqYm8qk3cKaOWY70FF7tyTy03TUfGfqpG98MwkcQwR5WOinNU+lAvk=@vger.kernel.org X-Gm-Message-State: AOJu0YwhkEctewE0kmDkhFzl8blzYvHgAhpR1+e8giSXwY5oW3DsbXMI VqoBhmV36TKvNQXQAzEXvgQo/JoZt8tVBFQVG73hkPb3xdpxPOHn+d7NP0oFwY5u8O6xfnvBzpO F4Av5hw2AcDRnG/ShLoGsK1oPmNibskHe04zU1mISWZGOZWF38CCJmbdQGuM7IWX7Iw== X-Gm-Gg: AR+sD12B+KZrSINVMy8qZ9X2VbmwcBvjkxLpkz5kGsojAbkMGnStR2bGPDOpj3qCzsh nV98PfKiTjrvDDnqWbmJCoYu3FHxQGwAQ3PH0kEp/VlMtV2azHIc/oQdKANPOT/Zp4azNnx04DE 1EO1JHpjZOfNKW29t63/RNDhEmGDg+sLkREFSoVIBvMeoTv3AnBqIRBOepmT693Vm23Km1Ycn7j Is8aUVJE3cZ0GUEowfCnHyEdxQUzNYRrmG98TBVbQQZOqL1tImFnQ8ap7Amq6SOrDpCaVoKuNlg HCKRqRL+fFy0JizP1qPAR1ImBk7fCnpEjd6faZMn5x72aFQLWVTFTYO0xeZi7htBKDHK/QZz X-Received: by 2002:ac8:5ccf:0:b0:528:22:8c61 with SMTP id d75a77b69052e-52d854f3ce2mr312378161cf.38.1787003347739; Mon, 17 Aug 2026 14:49:07 -0700 (PDT) X-Received: by 2002:ac8:5ccf:0:b0:528:22:8c61 with SMTP id d75a77b69052e-52d854f3ce2mr312377741cf.38.1787003347331; Mon, 17 Aug 2026 14:49:07 -0700 (PDT) Received: from [192.168.8.4] ([100.0.180.93]) by smtp.gmail.com with ESMTPSA id d75a77b69052e-52db625c90csm24270971cf.27.2026.08.17.14.49.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 17 Aug 2026 14:49:06 -0700 (PDT) Message-ID: <2e606cab65a7c7134ade630b17c52aaa4017dca8.camel@redhat.com> Subject: Re: [PATCH 2/7] nouveau/gsp: fix HDMI vendor infoframes 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: Mon, 17 Aug 2026 17:49:05 -0400 In-Reply-To: <20260814235705.59132-3-mohamedahmedegypt2001@gmail.com> References: <20260814235705.59132-1-mohamedahmedegypt2001@gmail.com> <20260814235705.59132-3-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 On Sat, 2026-08-15 at 03:57 +0400, Mohamed Ahmed wrote: > The GSP path reuses the GV100 direct-MMIO infoframe writers on every > chip. On GB20x that is only half right as while the legacy SF AVI > unit is > unchanged, the legacy VSI unit at 0x6f0100 was removed, so > gv100_sor_hdmi_infoframe_vsi() writes into a reserved area and no > vendor > infoframe ever reaches the wire. This affects HDMI-VIC signalling > which > can impact some 4K modes for legacy HDMI 1.4 sinks. >=20 > Select the SOR functions per GPU family in r535_sor_new(), keyed on > the display root class from the RM GPU table and use the new > generic-infoframe VSI writer on GB20x. Everything else stays on the > r535 table. >=20 > Signed-off-by: Mohamed Ahmed > --- > =C2=A0.../nouveau/nvkm/subdev/gsp/rm/r535/disp.c=C2=A0=C2=A0=C2=A0 | 29 > ++++++++++++++++++- > =C2=A01 file changed, 28 insertions(+), 1 deletion(-) >=20 > diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/disp.c > b/drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/disp.c > index 1155f079b0c3..96febd01da78 100644 > --- a/drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/disp.c > +++ b/drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/disp.c > @@ -36,6 +36,8 @@ > =C2=A0 > =C2=A0#include > =C2=A0 > +#include > + > =C2=A0#include > =C2=A0 > =C2=A0#include "nvrm/disp.h" > @@ -587,6 +589,16 @@ r535_sor_hdmi =3D { > =C2=A0 .audio =3D r535_sor_hdmi_audio, > =C2=A0}; > =C2=A0 > +static const struct nvkm_ior_func_hdmi > +gb202_sor_hdmi =3D { > + .ctrl =3D r535_sor_hdmi_ctrl, > + /* The legacy AVI unit is unchanged on GB20x. */ > + .infoframe_avi =3D gv100_sor_hdmi_infoframe_avi, > + .infoframe_vsi =3D gb202_sor_hdmi_infoframe_vsi, > + .audio =3D r535_sor_hdmi_audio, > + .frl_train =3D r535_sor_frl_train, > +}; > + This is the right approach, but I think this might make more sense to move into drivers/gpu/drm/nouveau/nvkm/subdev/gsp/gb202.c and then reference it back here. > =C2=A0static const struct nvkm_ior_func > =C2=A0r535_sor =3D { > =C2=A0 .hdmi =3D &r535_sor_hdmi, > @@ -595,10 +607,25 @@ r535_sor =3D { > =C2=A0 .bl =3D &r535_sor_bl, > =C2=A0}; > =C2=A0 > +static const struct nvkm_ior_func > +gb202_sor =3D { > + .hdmi =3D &gb202_sor_hdmi, > + .dp =3D &r535_sor_dp, > + .hda =3D &r535_sor_hda, > + .bl =3D &r535_sor_bl, > +}; > + > =C2=A0static int > =C2=A0r535_sor_new(struct nvkm_disp *disp, int id) > =C2=A0{ > - return nvkm_ior_new_(&r535_sor, disp, SOR, id, true/*XXX: > hda cap*/); > + const struct nvkm_rm_gpu *gpu =3D disp->engine.subdev.device- > >gsp->rm->gpu; > + const struct nvkm_ior_func *func =3D &r535_sor; > + > + /* NVD5.0 (GB20x and later) reorganised the SF HDMI packet > units. */ > + if (gpu->disp.class.root >=3D GB202_DISP) > + func =3D &gb202_sor; > + > + return nvkm_ior_new_(func, disp, SOR, id, true/*XXX: hda > cap*/); > =C2=A0} > =C2=A0 > =C2=A0static int