linux/drivers/gpu/drm/nouveau
Giuseppe Ranieri 1717fcc5be drm/nouveau/disp: don't reject HDMI config on cards without SCDC
nv50_hdmi_enable() passes the sink's SCDC capability from its EDID
straight through to nvif_outp_hdmi(). On pre-Maxwell-2 cards there is no
hdmi->scdc callback, so nvkm_uoutp_mthd_hdmi() rejects the whole
configuration with -EINVAL, and nv50_hdmi_enable() returns before
hdmi->ctrl() runs and before the AVI and VSI infoframes are sent.

The result on such a card driving an SCDC-capable HDMI 2.0 sink is that
HDMI audio silently stops working. Video is unaffected, and nothing is
logged, which makes the failure hard to attribute.

SCDC is optional, and the hdmi->scdc() call further down is already
guarded against a missing callback. Requesting it on a card that cannot
do it need not invalidate the rest of the HDMI configuration, so drop
that term from the condition and let the existing guard skip SCDC alone.

Fixes: 6c6abab20b ("drm/nouveau/disp: add output hdmi config method")
Signed-off-by: Giuseppe Ranieri <giuseppe@ranieri.dev>
Co-Authored-By: Tano Dzhinski <tano.dzhinski@gmail.com>
Signed-off-by: Tano Dzhinski <tano.dzhinski@gmail.com>
Tested-by: Tano Dzhinski <tano.dzhinski@gmail.com>
Reviewed-by: Lyude Paul <lyude@redhat.com>
Signed-off-by: Lyude Paul <lyude@redhat.com>
Link: https://patch.msgid.link/20260917215114.1136715-1-tano.dzhinski@gmail.com
2026-09-18 14:21:37 -04:00
..
dispnv04 Convert more 'alloc_obj' cases to default GFP_KERNEL arguments 2026-02-21 20:03:00 -08:00
dispnv50 drm/nouveau/kms/nv50-: Unconditionally create blend_mode prop for wndws 2026-07-27 12:40:20 -04:00
include drm/nouveau/gsp/r535: Add support for MEMSYS_GET_STATIC_CONFIG 2026-09-17 16:43:05 -04:00
nvif drm/nouveau/gsp/r570: Add support for INTERNAL_GCX_ENTRY_PREREQUISITE 2026-09-17 16:43:02 -04:00
nvkm drm/nouveau/disp: don't reject HDMI config on cards without SCDC 2026-09-18 14:21:37 -04:00
gv100_fence.c nouveau: Membar before between semaphore writes and the interrupt 2025-08-29 18:36:51 +02:00
Kbuild drm/nouveau/gv100-: switch to volta semaphore methods 2025-05-19 06:29:26 +10:00
Kconfig drm/nouveau: Support devfreq for Tegra 2025-09-15 14:18:08 -04:00
nouveau_abi16.c drm/nouveau: allow allocating NVDEC channels via abi16 2026-07-27 13:59:34 +10:00
nouveau_abi16.h drm/nouveau: Add DRM_IOCTL_NOUVEAU_GET_ZCULL_INFO 2026-02-24 15:04:55 +01:00
nouveau_acpi.c ACPI: video: Fix random crashes due to bad kfree() 2025-01-13 21:09:10 +01:00
nouveau_acpi.h
nouveau_backlight.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
nouveau_bios.c drm/nouveau: expose VBIOS via debugfs on GSP-RM systems 2026-04-29 23:54:47 +02:00
nouveau_bios.h drm/nouveau: move nvxx_* definitions to nouveau_drv.h 2024-07-27 03:05:38 +02:00
nouveau_bo.c drm/nouveau: don't bump pin count on failed re-pin in nouveau_bo_pin_locked() 2026-09-18 14:14:20 -04:00
nouveau_bo.h drm/ttm: rename ttm_bo_put to _fini v3 2025-09-17 14:03:21 +02:00
nouveau_bo0039.c drm/nouveau: remove push pointer from nouveau_channel 2024-07-27 03:05:49 +02:00
nouveau_bo74c1.c drm/nouveau: remove push pointer from nouveau_channel 2024-07-27 03:05:49 +02:00
nouveau_bo85b5.c drm/nouveau: remove push pointer from nouveau_channel 2024-07-27 03:05:49 +02:00
nouveau_bo90b5.c drm/nouveau: remove push pointer from nouveau_channel 2024-07-27 03:05:49 +02:00
nouveau_bo5039.c drm/nouveau: remove push pointer from nouveau_channel 2024-07-27 03:05:49 +02:00
nouveau_bo9039.c drm/nouveau: remove push pointer from nouveau_channel 2024-07-27 03:05:49 +02:00
nouveau_boa0b5.c drm/nouveau: remove push pointer from nouveau_channel 2024-07-27 03:05:49 +02:00
nouveau_chan.c drm/nouveau: unsubscribe the channel-kill event before the fence context 2026-08-20 17:33:43 -04:00
nouveau_chan.h drm/nouveau: Remove surplus struct member 2025-08-09 13:13:43 +02:00
nouveau_connector.c drm/nouveau: Fix runtime PM leak in nouveau_connector_detect() 2026-09-17 14:24:05 -04:00
nouveau_connector.h
nouveau_crtc.h
nouveau_debugfs.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
nouveau_debugfs.h drm/nouveau: Do not fail module init on debugfs errors 2025-07-03 23:56:33 +02:00
nouveau_display.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
nouveau_display.h drm: Rename struct drm_atomic_state to drm_atomic_commit 2026-05-04 14:05:04 +10:00
nouveau_dma.c drm/nouveau/nv50-: separate CHANNEL_GPFIFO handling out from CHANNEL_DMA 2025-05-19 07:14:44 +10:00
nouveau_dma.h drm/nouveau: Remove surplus struct member 2025-08-09 13:13:43 +02:00
nouveau_dmem.c drm/nouveau/dmem: pin VRAM for the whole registered range 2026-09-17 16:16:37 -04:00
nouveau_dmem.h
nouveau_dp.c drm/nouveau/dp: Use the generic helper to control LTTPR transparent mode 2025-02-25 18:33:48 +02:00
nouveau_drm.c drm/nouveau: fix autosuspend cleanup during teardown 2026-09-17 18:12:08 -04:00
nouveau_drv.h drm/nouveau: allow allocating NVDEC channels via abi16 2026-07-27 13:59:34 +10:00
nouveau_encoder.h drm: Rename struct drm_atomic_state to drm_atomic_commit 2026-05-04 14:05:04 +10:00
nouveau_exec.c drm/nouveau: fix reversed error cleanup order in ucopy functions 2026-06-21 15:15:23 +02:00
nouveau_exec.h
nouveau_fence.c dma-buf: inline spinlock for fence protection v5 2026-02-23 16:14:19 +01:00
nouveau_fence.h Revert "drm/nouveau: Remove waitque for sched teardown" 2025-09-03 23:16:59 +02:00
nouveau_gem.c drm/nouveau: Fix gem reference leak in validate_init() 2026-09-17 14:21:38 -04:00
nouveau_gem.h
nouveau_hwmon.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
nouveau_hwmon.h
nouveau_ioc32.c
nouveau_ioctl.h
nouveau_led.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
nouveau_led.h
nouveau_mem.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
nouveau_mem.h drm/nouveau: pass drm to nouveau_mem_new(), instead of cli 2024-07-27 03:05:41 +02:00
nouveau_nvif.c nouveau: add a third state to the fini handler. 2026-02-04 12:17:43 +10:00
nouveau_platform.c drm/nouveau: Support devfreq for Tegra 2025-09-15 14:18:08 -04:00
nouveau_platform.h
nouveau_prime.c nouveau: populate buffers before exporting them. 2025-09-11 10:04:55 +10:00
nouveau_reg.h
nouveau_sched.c drm/nouveau: RCU-free the scheduler-containing nouveau_sched 2026-09-17 17:54:49 -04:00
nouveau_sched.h drm/nouveau: RCU-free the scheduler-containing nouveau_sched 2026-09-17 17:54:49 -04:00
nouveau_sgdma.c drm/nouveau: Use write-combined maps for coherent 2026-09-01 22:05:10 +02:00
nouveau_svm.c drm/nouveau: use hmm_range_fault_unlocked_timeout() for SVM faults 2026-08-04 19:18:55 -07:00
nouveau_svm.h gpu/drm/nouveau: enable THP support for GPU memory migration 2025-11-24 15:08:49 -08:00
nouveau_ttm.c cgroup/dmem: Introduce struct dmem_cgroup_init for region initialization 2026-08-06 23:37:56 +02:00
nouveau_ttm.h
nouveau_uvmm.c drm/nouveau/uvmm: fix UAF in nouveau_uvmm_sm when BO is in TTM_PL_SYSTEM 2026-09-17 17:38:41 -04:00
nouveau_uvmm.h drm/nouveau/uvmm: Prepare for larger pages 2025-11-12 12:23:38 -05:00
nouveau_vga.c drm/client: Move client event handlers to drm_client_event.c 2024-10-18 09:23:03 +02:00
nouveau_vga.h drm/nouveau: Do not set struct drm_driver.lastclose 2024-08-13 16:21:09 +02:00
nouveau_vmm.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
nouveau_vmm.h
nv04_fence.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
nv10_fence.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
nv10_fence.h
nv17_fence.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
nv50_display.h
nv50_fence.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
nv84_fence.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
nvc0_fence.c drm/nouveau: remove push pointer from nouveau_channel 2024-07-27 03:05:49 +02:00