First patch looks fine, I sent a new patch series to address the issue
pointed out by patch 2, as it was a bit of a bandaid around a larger
issue.
Will push the first patch in just a moment
On Sun, 2026-08-16 at 15:09 +0200, Marek Czernohous wrote:
> From: Marek Czernohous <[email protected]>
>
> This is v4 of two NVAC (MCP79) stability fixes. v3 went out on 11
> June
> and has had no replies:
>
>
> https://lore.kernel.org/all/[email protected]/
>
> Nothing in either patch changed. Same diffs, same reasoning, same
> trailers. The reason this is a v4 and not a ping is that 2/2 no
> longer
> applies to mainline, so a ping would have pointed at a series nobody
> can
> test.
>
> What moved was somebody else's context, not this code.
> Commit 5164f7e7ff8e ("drm: Rename struct drm_atomic_state to
> drm_atomic_commit") changed the callback signature, so
> nv50_sor_atomic_disable() now takes a struct drm_atomic_commit
> *state.
> 2/2 is rebased onto that by hand. 1/2 applies unchanged and is
> byte-identical to v3.
>
> Both bugs are still live in c21bb4193868. dispnv50/disp.c:1568 still
> does nv50_head(nv_encoder->crtc) with no NULL check, and there is no
> guard anywhere in the function. Immediately below it, :1570 takes
> nv50_outp_get_old_connector() and :1572 dereferences the result
> without
> checking it.
>
> 1/2 drm/nouveau/pci: use config-space MSI rearm on MCP79/MCP7A (NVAC)
>
> NVAC re-arms MSI through the MMIO mirror of PCI config space,
> which
> is unreliable on this IGP. A missed re-arm leaves the interrupt
> line dead, submission times out and the GPU looks hung until
> reboot. Give NVAC its own pci func that re-arms through real
> config space, the way commit 5112abc6a433 ("drm/nouveau/pci/g92:
> Fix rearm") already did for g92. Only NVAC is switched, because
> that is the part this was validated on.
>
> 2/2 drm/nouveau/kms: guard NULL crtc in nv50_sor_atomic_disable()
>
> Restore the NULL check that
> commit f575f2bdb6c3 ("drm/nouveau/kms/nv50-: Remove
> (nv_encoder->crtc) checks in ->disable callbacks") removed, as a
> drm_WARN_ON_ONCE() rather than a silent return, since a NULL crtc
> here is a state-tracking inconsistency worth seeing. The guard
> is
> hoisted above the backlight teardown so the old connector is only
> used after it has been checked; without that the oops would just
> move a few lines down.
>
> Testing. The MSI change continues to run here on the Mac mini as a
> daily driver, and Fab Stz confirmed it independently on an iMac9,1.
> Both Tested-by tags are carried over unchanged from v3; the
> diffs they were given are the diffs sent here, apart from the
> mechanical
> rebase of 2/2. For v4 I rebuilt 2/2 with
> CONFIG_DRM_NOUVEAU_BACKLIGHT
> set to y and to n, because the patch splits the #ifdef block in two
> and
> that is where a change of this shape tends to break.
>
> If something about the shape of the series is what is holding it up,
> I
> would rather hear that than keep rebasing it.
>
> Marek Czernohous (2):
> drm/nouveau/pci: use config-space MSI rearm on MCP79/MCP7A (NVAC)
> drm/nouveau/kms: guard NULL crtc in nv50_sor_atomic_disable()
>
> drivers/gpu/drm/nouveau/dispnv50/disp.c | 30 +++++++++++++---
> .../gpu/drm/nouveau/include/nvkm/subdev/pci.h | 1 +
> .../gpu/drm/nouveau/nvkm/engine/device/base.c | 2 +-
> .../gpu/drm/nouveau/nvkm/subdev/pci/Kbuild | 1 +
> .../gpu/drm/nouveau/nvkm/subdev/pci/mcp79.c | 35
> +++++++++++++++++++
> 5 files changed, 63 insertions(+), 6 deletions(-)
> create mode 100644 drivers/gpu/drm/nouveau/nvkm/subdev/pci/mcp79.c
>
>
> base-commit: c21bb4193868a8de71fc4693fa741e195fdf5d86
lmpx.com only provides a reader for public news (NNTP) servers. It is not
affiliated with the servers or forums shown here and is not responsible for
the content of articles, which is written by their respective authors.