Hello Marek, I have a very similar device iMac9.1, also with MCP79
03:00.0 VGA compatible controller [0300]: NVIDIA Corporation C79 [GeForce 9400] [10de:0867] (rev b1) I'm facing various issues, including the bug below https://lore.freedesktop.org/nouveau/[email protected]/T/#u Do you think your patch would fix this? Would it apply also to kernel 6.12 or does it depend on some new changes in 6.18. Regards Fab Le 09/04/2026 à 17:09, Marek Czernohous a écrit :
Hi, this is my first patch series for the kernel. I'm running an Apple Mac Mini with an NVAC (MCP79) chipset and DisplayPort output, and hit three separate stability issues with the nouveau driver on kernel 6.18. The patches are independent but together they bring the NVAC from "needs NvMSI=0 workaround and can't run Wayland" to fully stable operation with MSI enabled, working DPMS, and functional Wayland (tested with Weston). Patch 1: The MSI re-arm function for G94 uses memory-mapped register access (nv40), which is unreliable on NVAC — the sister chipset NVAA already has MSI disabled entirely for this reason. Switching to the PCI config space method (nv46) fixes sporadic FIFO errors and hangs. Patch 2: nv50_sor_atomic_disable() dereferences nv_encoder->crtc unconditionally via container_of(). Under Wayland atomic modesetting, the CRTC can become NULL between check and commit, causing a kernel crash. Adding a NULL guard fixes Wayland session teardown. Patch 3: Transient DisplayPort link glitches on NVAC cause unnecessary disconnect/reconnect cycles. A single 100ms retry in the HPD IRQ handler catches these without affecting real unplug detection. All three patches were tested on the same machine (NVAC 0xac080b1, DP output) over multiple days with DPMS cycling, VT switching, and Wayland sessions. Thanks, Marek Marek Czernohous (3): drm/nouveau/pci: use nv46 MSI rearm for G94 (NVAC/MCP79) drm/nouveau/kms: add NULL check for CRTC in nv50_sor_atomic_disable drm/nouveau/dp: retry link check once on HPD IRQ before disconnect drivers/gpu/drm/nouveau/dispnv50/disp.c | 8 +++++++- drivers/gpu/drm/nouveau/nouveau_display.c | 4 ++++ drivers/gpu/drm/nouveau/nvkm/subdev/pci/g94.c | 2 +- 3 files changed, 12 insertions(+), 2 deletions(-)
