The Linux Kernel Mailing List
 help / color / mirror / Atom feed
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


      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