From: lyude@redhat.com
To: Mohamed Ahmed <mohamedahmedegypt2001@gmail.com>,
linux-kernel@vger.kernel.org
Cc: dri-devel@lists.freedesktop.org,
Danilo Krummrich <dakr@kernel.org>,
Maarten Lankhorst <maarten.lankhorst@linux.intel.com>,
Maxime Ripard <mripard@kernel.org>,
Thomas Zimmermann <tzimmermann@suse.de>,
David Airlie <airlied@gmail.com>,
Simona Vetter <simona@ffwll.ch>,
Mary Guillemard <mary@mary.zone>,
nouveau@lists.freedesktop.org
Subject: Re: [PATCH v2 00/10] nouveau: assorted display fixes (GB20x, r570 DP_CONFIG_STREAM, HF-EEODB EDIDs)
Date: Fri, 21 Aug 2026 18:09:11 -0400 [thread overview]
Message-ID: <2e733db917cf5a478fe65022f4708030acab384e.camel@redhat.com> (raw)
In-Reply-To: <20260820164929.17117-1-mohamedahmedegypt2001@gmail.com>
Thinking about it more - we should probably cc patches 1-8 to stable.
Mind doing that on the next respin?
(unsure if you have done this before or not, but
https://drm.pages.freedesktop.org/maintainer-tools/committer/getting-started.html
dim is a good tool for fixes, if you have the commit a patch fixes you
can just run `dim fixes $COMMIT` and it will spit out a tag + some CCs.
I usually drop all but the stable cc, which gets a nice little comment
added on the side indicating which kernel version to backport against.
On Thu, 2026-08-20 at 20:49 +0400, Mohamed Ahmed wrote:
> Several fixes for GSP-driven displays consisting of four independent
> groups. These were created as part of ongoing HDMI 2.1 bring up and
> display handling clean-up work, so some of them are not issues now
> (e.g., the 2.147GHz pixel clock cap) but fixing them is required to
> get
> advanced features such as FRL, DSC, VRR, etc working properly.
>
> The v1 review asked for the RM vs register programming split to be
> made
> explicit instead of growing more per-chip code inside the RM layer,
> so
> patches 1-3 do that first. No functional change, and then each GB20x
> fix
> (patches 4-8) supplies its hook from a new engine/disp/gb202.c.
>
> Changes in v2:
> - Rebased onto drm-misc-next.
>
> - New patches 1-3: move the GSP path's direct MMIO helpers to
> engine/disp/ and route them through a per-chip nvkm_disp_func.gsp
> hook
> table. GB20x now has its own gb202_disp_new() instead of display-
> class
> checks in rm/r535/disp.c.
>
> - Patch 4 (was 1+2): merged. Dropped a stray .frl_train reference
> that
> broke the build, no longer drops .scdc, and fixed an undefined
> shift
> when packing byte 3 of each infoframe data word.
>
> - Patch 5 (was 3): the GCP subpack write is now a masked write so
> SB1_CTRL keeps its hardware-controlled default.
>
> - Patch 6 (was 4): the vcpi hook returns its control status like the
> other RM API entries instead of WARN_ONs under the HAL.
>
> - New patch 7: the head-state readback fix is split out. The core
> channel
> state mirror uses a 0x800 per-head stride on GB20x, fixing scanout
> pos
> and timings readback for heads >= 1.
>
> - Patch 8 (was 5): reworked onto the new hook table. The low-latency
> vector is exposed as a second DISP interrupt instance by the r570
> engine index translation and re-armed after servicing.
>
> - Patch 9 (was 6): the two HI methods are pushed as one method pair,
> and
> the class-header defines stay offset-sorted.
>
> - Patch 10 (was 7): OF EDIDs now go through
> drm_edid_connector_update(),
> and all firmware provided EDIDs (OF, ACPI, VBIOS embedded) are
> validated with drm_edid_valid(). ACPI reads are bounded by the
> length
> _DDC actually returned. Fixed a runtime-PM reference leak when the
> RM
> EDID read fails. No raw struct edid is kept anymore and all the old
> raw struct edid consumers are converted to the new API (the SPWG
> dual-link byte is cached at EDID-set time as there is no new drm
> API
> alternative for it). get_modes() re-syncs the EDID property only
> when
> the probe helper cleared it.
>
> - Commit messages reworded throughout.
>
> Link to v1:
> https://lore.kernel.org/all/20260814235705.59132-1-mohamedahmedegypt2001@gmail.com/
>
>
> Mohamed Ahmed (10):
> drm/nouveau/disp: move GSP head-timing ISR and vblank helpers to
> tu102.c
> drm/nouveau/disp: move the GSP HDMI GCP AVMute write to engine/disp
> drm/nouveau/disp: route GSP-RM display MMIO through nvkm_disp_func
> hooks
> drm/nouveau/disp: fix HDMI vendor infoframes on GB20x
> drm/nouveau/disp: fix HDMI GCP AVMute register offsets on GB20x
> drm/nouveau/gsp: use per-version DP_CONFIG_STREAM params on r570
> firmware
> drm/nouveau/disp: fix head state readback on GB20x
> drm/nouveau/gsp: fix vblank interrupts on GB20x
> drm/nouveau/dispnv50: program pixel clocks above 2.147GHz on GB20x
> drm/nouveau: honor HF-EEODB EDIDs by converting to struct drm_edid
>
> drivers/gpu/drm/nouveau/dispnv04/dfp.c | 5 +-
> drivers/gpu/drm/nouveau/dispnv50/disp.c | 4 +-
> drivers/gpu/drm/nouveau/dispnv50/headca7d.c | 21 +-
> .../drm/nouveau/include/nvhw/class/clca7d.h | 4 +
> .../drm/nouveau/include/nvkm/engine/disp.h | 1 +
> drivers/gpu/drm/nouveau/nouveau_acpi.c | 21 +-
> drivers/gpu/drm/nouveau/nouveau_acpi.h | 10 +-
> drivers/gpu/drm/nouveau/nouveau_connector.c | 147 ++++++++++----
> drivers/gpu/drm/nouveau/nouveau_connector.h | 12 +-
> .../gpu/drm/nouveau/nvkm/engine/device/base.c | 10 +-
> .../gpu/drm/nouveau/nvkm/engine/disp/Kbuild | 1 +
> .../gpu/drm/nouveau/nvkm/engine/disp/ga102.c | 16 +-
> .../gpu/drm/nouveau/nvkm/engine/disp/gb202.c | 192
> ++++++++++++++++++
> .../gpu/drm/nouveau/nvkm/engine/disp/head.h | 3 +
> .../gpu/drm/nouveau/nvkm/engine/disp/ior.h | 1 +
> .../gpu/drm/nouveau/nvkm/engine/disp/priv.h | 20 ++
> .../gpu/drm/nouveau/nvkm/engine/disp/tu102.c | 81 +++++++-
> .../nouveau/nvkm/subdev/gsp/rm/r535/disp.c | 121 ++++++-----
> .../nouveau/nvkm/subdev/gsp/rm/r570/disp.c | 64 ++++++
> .../drm/nouveau/nvkm/subdev/gsp/rm/r570/gsp.c | 9 +
> .../nvkm/subdev/gsp/rm/r570/nvrm/disp.h | 2 +
> .../gpu/drm/nouveau/nvkm/subdev/gsp/rm/rm.h | 5 +
> 22 files changed, 637 insertions(+), 113 deletions(-)
> create mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/disp/gb202.c
prev parent reply other threads:[~2026-08-21 22:09 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-08-20 16:49 [PATCH v2 00/10] nouveau: assorted display fixes (GB20x, r570 DP_CONFIG_STREAM, HF-EEODB EDIDs) Mohamed Ahmed
2026-08-20 16:49 ` [PATCH v2 01/10] drm/nouveau/disp: move GSP head-timing ISR and vblank helpers to tu102.c Mohamed Ahmed
2026-08-21 19:21 ` lyude
2026-08-21 21:31 ` lyude
2026-08-20 16:49 ` [PATCH v2 02/10] drm/nouveau/disp: move the GSP HDMI GCP AVMute write to engine/disp Mohamed Ahmed
2026-08-21 19:25 ` lyude
2026-08-20 16:49 ` [PATCH v2 03/10] drm/nouveau/disp: route GSP-RM display MMIO through nvkm_disp_func hooks Mohamed Ahmed
2026-08-21 21:30 ` lyude
2026-08-20 16:49 ` [PATCH v2 04/10] drm/nouveau/disp: fix HDMI vendor infoframes on GB20x Mohamed Ahmed
2026-08-21 21:52 ` lyude
2026-08-20 16:49 ` [PATCH v2 05/10] drm/nouveau/disp: fix HDMI GCP AVMute register offsets " Mohamed Ahmed
2026-08-21 21:59 ` lyude
2026-08-20 16:49 ` [PATCH v2 06/10] drm/nouveau/gsp: use per-version DP_CONFIG_STREAM params on r570 firmware Mohamed Ahmed
2026-08-21 22:02 ` lyude
2026-08-20 16:49 ` [PATCH v2 07/10] drm/nouveau/disp: fix head state readback on GB20x Mohamed Ahmed
2026-08-21 22:06 ` lyude
2026-08-20 16:49 ` [PATCH v2 08/10] drm/nouveau/gsp: fix vblank interrupts " Mohamed Ahmed
2026-08-21 22:12 ` lyude
2026-08-21 22:36 ` Mohamed Ahmed
2026-08-20 16:49 ` [PATCH v2 09/10] drm/nouveau/dispnv50: program pixel clocks above 2.147GHz " Mohamed Ahmed
2026-08-21 22:16 ` lyude
2026-08-20 16:49 ` [PATCH v2 10/10] drm/nouveau: honor HF-EEODB EDIDs by converting to struct drm_edid Mohamed Ahmed
2026-08-21 22:19 ` lyude
2026-08-21 22:09 ` lyude [this message]
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=2e733db917cf5a478fe65022f4708030acab384e.camel@redhat.com \
--to=lyude@redhat.com \
--cc=airlied@gmail.com \
--cc=dakr@kernel.org \
--cc=dri-devel@lists.freedesktop.org \
--cc=linux-kernel@vger.kernel.org \
--cc=maarten.lankhorst@linux.intel.com \
--cc=mary@mary.zone \
--cc=mohamedahmedegypt2001@gmail.com \
--cc=mripard@kernel.org \
--cc=nouveau@lists.freedesktop.org \
--cc=simona@ffwll.ch \
--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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox