Package: src:linux
Version: 6.12.96-1
Severity: normal
Tags: patch
X-Debbugs-Cc: [email protected]
User: [email protected]
Usertags: amd64

Dear Maintainer,

   * What led up to the situation?
     When starting X on NVIDIA Quadro 600 DisplayPort, X does not start 
correctly
     and does not show screen. I am using nouveau. This also happen with
       Quadro 600 / 2000 / 4000
       Quadro FX 1800
     The issue does not happen if DVI output is used.

   * What exactly did you do (or not do) that was effective (or
     ineffective)?
     Using another mother board does not help.
     After some effort, I found that the attached patch resolves the issue.
     This essentially reverts a5a7379f6d9d ("drm/nouveau/kms/nv50-: split DP
     disable+enable into two modesets") and adds a workaround for Quadro FX
     1800.

   * What was the outcome of this action?
     Without the patch, X does not start correctly, while it starts correctly
     with the patch.

   * What outcome did you expect instead?
     X starts correctly and the screen is shown up.

-- Package-specific info:
** Version:
Linux version 6.12.96+deb13-amd64 ([email protected]) 
(x86_64-linux-gnu-gcc-14 (Debian 14.2.0-19) 14.2.0, GNU ld (GNU Binutils for 
Debian) 2.44) #1 SMP PREEMPT_DYNAMIC Debian 6.12.96-1 (2026-07-20)

** Command line:
BOOT_IMAGE=/boot/vmlinuz-6.12.96+deb13-amd64 
root=UUID=896bb234-340d-4aeb-ac35-4ab240861dd6 ro quiet

** Not tainted

** Kernel log:
[   43.131447] nouveau 0000:01:00.0: disp:      0804: 00841190              
[   43.131452] nouveau 0000:01:00.0: disp:      0808: 00000000              
[   43.131458] nouveau 0000:01:00.0: disp:      080c: 00000000              
[   43.131464] nouveau 0000:01:00.0: disp:      0810: 00000000              
[   43.131470] nouveau 0000:01:00.0: disp:      0814: 08ae0fa0              
[   43.131476] nouveau 0000:01:00.0: disp:      0818: 0004008f              
[   43.131482] nouveau 0000:01:00.0: disp:      081c: 00070097              
[   43.131488] nouveau 0000:01:00.0: disp:      0820: 08770f97              
[   43.131494] nouveau 0000:01:00.0: disp:      0824: 00000001              
[   43.131500] nouveau 0000:01:00.0: disp:      0828: 00000384              
[   43.131507] nouveau 0000:01:00.0: disp:      082c: 00000000              
[   43.131512] nouveau 0000:01:00.0: disp:      0830: 00000000              
[   43.131517] nouveau 0000:01:00.0: disp:      0838: 00000000              
[   43.131523] nouveau 0000:01:00.0: disp:      0840: 00000000              
[   43.131529] nouveau 0000:01:00.0: disp:      0844: 00000430              
[   43.131534] nouveau 0000:01:00.0: disp:      0848: 00000000              
[   43.131540] nouveau 0000:01:00.0: disp:      084c: 00000000              
[   43.131546] nouveau 0000:01:00.0: disp:      085c: 00000000 -> f0000001
[   43.131552] nouveau 0000:01:00.0: disp:      0860: 00000000              
[   43.131558] nouveau 0000:01:00.0: disp:      0864: 00000000              
[   43.131563] nouveau 0000:01:00.0: disp:      0868: 08700f00              
[   43.131570] nouveau 0000:01:00.0: disp:      086c: 00103c00              
[   43.131575] nouveau 0000:01:00.0: disp:      0870: 0000cf00              
[   43.131580] nouveau 0000:01:00.0: disp:      0874: 00000000              
[   43.131586] nouveau 0000:01:00.0: disp:      0878: 00000000              
[   43.131592] nouveau 0000:01:00.0: disp:      0880: 20000000 -> 85000000
[   43.131598] nouveau 0000:01:00.0: disp:      0884: 00000000 -> 00000460
[   43.131604] nouveau 0000:01:00.0: disp:      089c: 00000000 -> f0000001
[   43.131610] nouveau 0000:01:00.0: disp:      08a0: 00000002              
[   43.131616] nouveau 0000:01:00.0: disp:      08a4: 00000000              
[   43.131622] nouveau 0000:01:00.0: disp:      08a8: 00040000              
[   43.131628] nouveau 0000:01:00.0: disp:      08c0: 00000000              
[   43.131634] nouveau 0000:01:00.0: disp:      08c4: 00000000              
[   43.131640] nouveau 0000:01:00.0: disp:      08c8: 08700f00              
[   43.131646] nouveau 0000:01:00.0: disp:      08d4: 00000000              
[   43.131652] nouveau 0000:01:00.0: disp:      08d8: 08700f00              
[   43.131658] nouveau 0000:01:00.0: disp:      08dc: 08700f00              
[   43.131664] nouveau 0000:01:00.0: disp:      0900: 00000301              
[   43.131670] nouveau 0000:01:00.0: disp:      0904: 00000100              
[   43.131676] nouveau 0000:01:00.0: disp:      0910: 00000000              
[   43.131682] nouveau 0000:01:00.0: disp:      0914: 00000000              
[   43.131684] nouveau 0000:01:00.0: disp: Core - HEAD 1:
[   43.131690] nouveau 0000:01:00.0: disp:      0c00: 00000000              
[   43.131695] nouveau 0000:01:00.0: disp:      0c04: 00000000              
[   43.131700] nouveau 0000:01:00.0: disp:      0c08: 00000000              
[   43.131705] nouveau 0000:01:00.0: disp:      0c0c: 00000000              
[   43.131710] nouveau 0000:01:00.0: disp:      0c10: 00000000              
[   43.131715] nouveau 0000:01:00.0: disp:      0c14: 00050008              
[   43.131719] nouveau 0000:01:00.0: disp:      0c18: 00000001              
[   43.131724] nouveau 0000:01:00.0: disp:      0c1c: 00010003              
[   43.131729] nouveau 0000:01:00.0: disp:      0c20: 00030004              
[   43.131734] nouveau 0000:01:00.0: disp:      0c24: 00000001              
[   43.131739] nouveau 0000:01:00.0: disp:      0c28: 00000000              
[   43.131743] nouveau 0000:01:00.0: disp:      0c2c: 00000000              
[   43.131748] nouveau 0000:01:00.0: disp:      0c30: 00000000              
[   43.131753] nouveau 0000:01:00.0: disp:      0c38: 00000000              
[   43.131758] nouveau 0000:01:00.0: disp:      0c40: 00000000              
[   43.131763] nouveau 0000:01:00.0: disp:      0c44: 00000000              
[   43.131767] nouveau 0000:01:00.0: disp:      0c48: 00000000              
[   43.131772] nouveau 0000:01:00.0: disp:      0c4c: 00000000              
[   43.131777] nouveau 0000:01:00.0: disp:      0c5c: 00000000              
[   43.131782] nouveau 0000:01:00.0: disp:      0c60: 00000000              
[   43.131787] nouveau 0000:01:00.0: disp:      0c64: 00000000              
[   43.131792] nouveau 0000:01:00.0: disp:      0c68: 00000000              
[   43.131796] nouveau 0000:01:00.0: disp:      0c6c: 00000000              
[   43.131801] nouveau 0000:01:00.0: disp:      0c70: 0000e900              
[   43.131806] nouveau 0000:01:00.0: disp:      0c74: 00000000              
[   43.131811] nouveau 0000:01:00.0: disp:      0c78: 00000000              
[   43.131816] nouveau 0000:01:00.0: disp:      0c80: 20000000              
[   43.131820] nouveau 0000:01:00.0: disp:      0c84: 00000000              
[   43.131825] nouveau 0000:01:00.0: disp:      0c9c: 00000000              
[   43.131830] nouveau 0000:01:00.0: disp:      0ca0: 00000000              
[   43.131835] nouveau 0000:01:00.0: disp:      0ca4: 00000000              
[   43.131840] nouveau 0000:01:00.0: disp:      0ca8: 00040000              
[   43.131844] nouveau 0000:01:00.0: disp:      0cc0: 00000000              
[   43.131849] nouveau 0000:01:00.0: disp:      0cc4: 00000000              
[   43.131854] nouveau 0000:01:00.0: disp:      0cc8: 00000000              
[   43.131859] nouveau 0000:01:00.0: disp:      0cd4: 00000000              
[   43.131864] nouveau 0000:01:00.0: disp:      0cd8: 00000000              
[   43.131868] nouveau 0000:01:00.0: disp:      0cdc: 00000000              
[   43.131873] nouveau 0000:01:00.0: disp:      0d00: 00000300              
[   43.131878] nouveau 0000:01:00.0: disp:      0d04: 00000100              
[   43.131883] nouveau 0000:01:00.0: disp:      0d10: 00000000              
[   43.131888] nouveau 0000:01:00.0: disp:      0d14: 00000000              
[   45.275603] nouveau 0000:01:00.0: drm: base-0: timeout
[   47.295207] nouveau 0000:01:00.0: drm: base-0: timeout
[   49.332717] nouveau 0000:01:00.0: drm: base-0: timeout
[   51.468374] nouveau 0000:01:00.0: drm: base-0: timeout
[   53.478009] nouveau 0000:01:00.0: drm: base-0: timeout
[   71.945952] nouveau 0000:01:00.0: drm: base-0: timeout
[  132.347533] nouveau 0000:01:00.0: drm: base-0: timeout
[  192.392525] nouveau 0000:01:00.0: drm: base-0: timeout
[  252.378905] nouveau 0000:01:00.0: drm: base-0: timeout
[  254.381116] nouveau 0000:01:00.0: drm: base-0: timeout
[  312.399467] nouveau 0000:01:00.0: drm: base-0: timeout
[  372.393470] nouveau 0000:01:00.0: drm: base-0: timeout
[  432.394605] nouveau 0000:01:00.0: drm: base-0: timeout
[  492.394034] nouveau 0000:01:00.0: drm: base-0: timeout
[  494.396255] nouveau 0000:01:00.0: drm: base-0: timeout
[  552.400593] nouveau 0000:01:00.0: drm: base-0: timeout

** Model information
sys_vendor: THIRDWAVE Diginnos CORPORATION
product_name: Diginnos PC
product_version: System Version
chassis_vendor: Chassis Manufacture
chassis_version: Chassis Version
bios_vendor: American Megatrends Inc.
bios_version: 2305
board_vendor: ASUSTeK COMPUTER INC.
board_name: B85M-E
board_version: Rev X.0x

** Configuration for modprobe:
blacklist b43
blacklist b43legacy
blacklist b44
blacklist bcma
blacklist brcm80211
blacklist brcmsmac
blacklist ssb
blacklist arkfb
blacklist aty128fb
blacklist atyfb
blacklist radeonfb
blacklist cirrusfb
blacklist cyber2000fb
blacklist kyrofb
blacklist matroxfb_base
blacklist mb862xxfb
blacklist neofb
blacklist pm2fb
blacklist pm3fb
blacklist s3fb
blacklist savagefb
blacklist sisfb
blacklist tdfxfb
blacklist tridentfb
blacklist vt8623fb
blacklist microcode
options snd_pcsp index=-2
options cx88_alsa index=-2
options snd_atiixp_modem index=-2
options snd_intel8x0m index=-2
options snd_via82xx_modem index=-2
options bonding max_bonds=0
options dummy numdummies=0
options ifb numifbs=0

** Loaded modules:
qrtr
binfmt_misc
intel_rapl_msr
intel_rapl_common
x86_pkg_temp_thermal
intel_powerclamp
coretemp
kvm_intel
snd_hda_codec_realtek
kvm
snd_hda_codec_generic
snd_hda_codec_hdmi
snd_hda_scodec_component
sg
snd_hda_intel
joydev
snd_intel_dspcfg
snd_intel_sdw_acpi
irqbypass
snd_hda_codec
crct10dif_pclmul
snd_hda_core
ghash_clmulni_intel
sha512_ssse3
snd_hwdep
sha256_ssse3
snd_pcm
sha1_ssse3
mei_wdt
snd_timer
aesni_intel
mei_hdcp
snd
gf128mul
crypto_simd
mei_pxp
soundcore
eeepc_wmi
asus_wmi
mei_me
cryptd
at24
mei
ppdev
sparse_keymap
platform_profile
battery
rapl
rfkill
wmi_bmof
intel_cstate
intel_uncore
parport_pc
pcspkr
parport
evdev
efi_pstore
configfs
nfnetlink
ip_tables
x_tables
autofs4
ext4
crc16
mbcache
jbd2
crc32c_generic
sd_mod
hid_logitech_hidpp
uas
usb_storage
scsi_mod
hid_logitech_dj
scsi_common
hid_generic
usbhid
hid
nouveau
mxm_wmi
drm_gpuvm
drm_exec
gpu_sched
i2c_algo_bit
drm_display_helper
cec
rc_core
drm_ttm_helper
r8169
ttm
iTCO_wdt
intel_pmc_bxt
drm_kms_helper
realtek
iTCO_vendor_support
xhci_pci
mdio_devres
ehci_pci
xhci_hcd
watchdog
libphy
ehci_hcd
drm
i2c_i801
usbcore
crc32_pclmul
crc32c_intel
i2c_smbus
lpc_ich
usb_common
fan
video
wmi
button

** Network interface configuration:
*** /etc/network/interfaces:

source /etc/network/interfaces.d/*

auto lo
iface lo inet loopback

allow-hotplug enp2s0
iface enp2s0 inet dhcp

allow-hotplug enx02644d4e335c
iface enx02644d4e335c inet dhcp

iface enp2s0 inet6 auto

** Network status:
*** IP interfaces and addresses:
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group 
default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host noprefixroute 
       valid_lft forever preferred_lft forever
2: enp3s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP 
group default qlen 1000
    link/ether f8:32:e4:a2:0c:3a brd ff:ff:ff:ff:ff:ff
    altname enxf832e4a20c3a
    inet 192.168.0.169/24 brd 192.168.0.255 scope global dynamic noprefixroute 
enp3s0
       valid_lft 85852sec preferred_lft 85852sec
    inet6 2405:6582:2ea0:803:24e8:4d05:4434:e1a5/64 scope global dynamic 
noprefixroute 
       valid_lft 10112sec preferred_lft 8312sec
    inet6 fe80::9e45:7a97:8b17:4901/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever

*** Device statistics:
Inter-|   Receive                                                |  Transmit
 face |bytes    packets errs drop fifo frame compressed multicast|bytes    
packets errs drop fifo colls carrier compressed
    lo:       0       0    0    0    0     0          0         0        0      
 0    0    0    0     0       0          0
enp3s0:  931499    8635    0  402    0     0          0      1320   928405    
7461    0    0    0     0       0          0


** PCI devices:
00:00.0 Host bridge [0600]: Intel Corporation 4th Gen Core Processor DRAM 
Controller [8086:0c00] (rev 06)
        Subsystem: ASUSTeK Computer Inc. Device [1043:8534]
        Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- 
Stepping- SERR- FastB2B- DisINTx-
        Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort- <TAbort- 
<MAbort+ >SERR- <PERR- INTx-
        Latency: 0
        Capabilities: <access denied>
        Kernel driver in use: hsw_uncore

00:01.0 PCI bridge [0604]: Intel Corporation Xeon E3-1200 v3/4th Gen Core 
Processor PCI Express x16 Controller [8086:0c01] (rev 06) (prog-if 00 [Normal 
decode])
        Subsystem: ASUSTeK Computer Inc. Device [1043:8534]
        Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- 
Stepping- SERR- FastB2B- DisINTx+
        Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- 
<MAbort- >SERR- <PERR- INTx-
        Latency: 0, Cache Line Size: 64 bytes
        Interrupt: pin A routed to IRQ 24
        Bus: primary=00, secondary=01, subordinate=01, sec-latency=0
        I/O behind bridge: e000-efff [size=4K] [16-bit]
        Memory behind bridge: f6000000-f70fffff [size=17M] [32-bit]
        Prefetchable memory behind bridge: e8000000-f1ffffff [size=160M] 
[32-bit]
        Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- 
<MAbort- <SERR- <PERR-
        BridgeCtl: Parity- SERR+ NoISA- VGA+ VGA16+ MAbort- >Reset- FastB2B-
                PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
        Capabilities: <access denied>
        Kernel driver in use: pcieport

00:14.0 USB controller [0c03]: Intel Corporation 8 Series/C220 Series Chipset 
Family USB xHCI [8086:8c31] (rev 05) (prog-if 30 [XHCI])
        Subsystem: ASUSTeK Computer Inc. Device [1043:8534]
        Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- 
Stepping- SERR- FastB2B- DisINTx+
        Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- 
<TAbort- <MAbort- >SERR- <PERR- INTx-
        Latency: 0
        Interrupt: pin A routed to IRQ 27
        Region 0: Memory at f7100000 (64-bit, non-prefetchable) [size=64K]
        Capabilities: <access denied>
        Kernel driver in use: xhci_hcd
        Kernel modules: xhci_pci

00:16.0 Communication controller [0780]: Intel Corporation 8 Series/C220 Series 
Chipset Family MEI Controller #1 [8086:8c3a] (rev 04)
        Subsystem: ASUSTeK Computer Inc. Device [1043:8534]
        Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- 
Stepping- SERR- FastB2B- DisINTx+
        Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- 
<MAbort- >SERR- <PERR- INTx-
        Latency: 0
        Interrupt: pin A routed to IRQ 30
        Region 0: Memory at f711a000 (64-bit, non-prefetchable) [size=16]
        Capabilities: <access denied>
        Kernel driver in use: mei_me
        Kernel modules: mei_me

00:1a.0 USB controller [0c03]: Intel Corporation 8 Series/C220 Series Chipset 
Family USB EHCI #2 [8086:8c2d] (rev 05) (prog-if 20 [EHCI])
        Subsystem: ASUSTeK Computer Inc. Device [1043:8534]
        Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- 
Stepping- SERR- FastB2B- DisINTx-
        Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- 
<TAbort- <MAbort- >SERR- <PERR- INTx-
        Latency: 0
        Interrupt: pin A routed to IRQ 20
        Region 0: Memory at f7117000 (32-bit, non-prefetchable) [size=1K]
        Capabilities: <access denied>
        Kernel driver in use: ehci-pci
        Kernel modules: ehci_pci

00:1b.0 Audio device [0403]: Intel Corporation 8 Series/C220 Series Chipset 
High Definition Audio Controller [8086:8c20] (rev 05) (prog-if 00 [HDA 
compatible])
        Subsystem: ASUSTeK Computer Inc. Device [1043:8576]
        Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- 
Stepping- SERR- FastB2B- DisINTx+
        Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- 
<MAbort- >SERR- <PERR- INTx-
        Latency: 0, Cache Line Size: 64 bytes
        Interrupt: pin A routed to IRQ 31
        Region 0: Memory at f7110000 (64-bit, non-prefetchable) [size=16K]
        Capabilities: <access denied>
        Kernel driver in use: snd_hda_intel
        Kernel modules: snd_hda_intel

00:1c.0 PCI bridge [0604]: Intel Corporation 8 Series/C220 Series Chipset 
Family PCI Express Root Port #1 [8086:8c10] (rev d5) (prog-if 00 [Normal 
decode])
        Subsystem: ASUSTeK Computer Inc. ASUS H81I-PLUS [1043:8534]
        Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- 
Stepping- SERR- FastB2B- DisINTx+
        Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- 
<MAbort- >SERR- <PERR- INTx-
        Latency: 0, Cache Line Size: 64 bytes
        Interrupt: pin A routed to IRQ 25
        Bus: primary=00, secondary=02, subordinate=02, sec-latency=0
        I/O behind bridge: 2000-2fff [size=4K] [16-bit]
        Memory behind bridge: e0000000-e01fffff [size=2M] [32-bit]
        Prefetchable memory behind bridge: e0200000-e03fffff [size=2M] [32-bit]
        Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- 
<MAbort- <SERR- <PERR-
        BridgeCtl: Parity- SERR+ NoISA- VGA- VGA16+ MAbort- >Reset- FastB2B-
                PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
        Capabilities: <access denied>
        Kernel driver in use: pcieport

00:1c.2 PCI bridge [0604]: Intel Corporation 8 Series/C220 Series Chipset 
Family PCI Express Root Port #3 [8086:8c14] (rev d5) (prog-if 00 [Normal 
decode])
        Subsystem: ASUSTeK Computer Inc. Device [1043:8534]
        Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- 
Stepping- SERR- FastB2B- DisINTx+
        Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- 
<MAbort- >SERR- <PERR- INTx-
        Latency: 0, Cache Line Size: 64 bytes
        Interrupt: pin C routed to IRQ 26
        Bus: primary=00, secondary=03, subordinate=03, sec-latency=0
        I/O behind bridge: d000-dfff [size=4K] [16-bit]
        Memory behind bridge: [disabled] [32-bit]
        Prefetchable memory behind bridge: f2100000-f21fffff [size=1M] [32-bit]
        Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- 
<MAbort- <SERR- <PERR-
        BridgeCtl: Parity- SERR+ NoISA- VGA- VGA16+ MAbort- >Reset- FastB2B-
                PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
        Capabilities: <access denied>
        Kernel driver in use: pcieport

00:1d.0 USB controller [0c03]: Intel Corporation 8 Series/C220 Series Chipset 
Family USB EHCI #1 [8086:8c26] (rev 05) (prog-if 20 [EHCI])
        Subsystem: ASUSTeK Computer Inc. Device [1043:8534]
        Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- 
Stepping- SERR- FastB2B- DisINTx-
        Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- 
<TAbort- <MAbort- >SERR- <PERR- INTx-
        Latency: 0
        Interrupt: pin A routed to IRQ 23
        Region 0: Memory at f7116000 (32-bit, non-prefetchable) [size=1K]
        Capabilities: <access denied>
        Kernel driver in use: ehci-pci
        Kernel modules: ehci_pci

00:1f.0 ISA bridge [0601]: Intel Corporation B85 Express LPC Controller 
[8086:8c50] (rev 05)
        Subsystem: ASUSTeK Computer Inc. Device [1043:8534]
        Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- 
Stepping- SERR- FastB2B- DisINTx-
        Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- 
<TAbort- <MAbort- >SERR- <PERR- INTx-
        Latency: 0
        Capabilities: <access denied>
        Kernel driver in use: lpc_ich
        Kernel modules: lpc_ich

00:1f.3 SMBus [0c05]: Intel Corporation 8 Series/C220 Series Chipset Family 
SMBus Controller [8086:8c22] (rev 05)
        Subsystem: ASUSTeK Computer Inc. Device [1043:8534]
        Control: I/O+ Mem+ BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- 
Stepping- SERR- FastB2B- DisINTx-
        Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- 
<TAbort- <MAbort- >SERR- <PERR- INTx-
        Interrupt: pin C routed to IRQ 18
        Region 0: Memory at f7115000 (64-bit, non-prefetchable) [size=256]
        Region 4: I/O ports at f000 [size=32]
        Kernel driver in use: i801_smbus
        Kernel modules: i2c_i801

01:00.0 VGA compatible controller [0300]: NVIDIA Corporation GF108GL [Quadro 
600] [10de:0df8] (rev a1) (prog-if 00 [VGA controller])
        Subsystem: NVIDIA Corporation Device [10de:0835]
        Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- 
Stepping- SERR- FastB2B- DisINTx+
        Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- 
<MAbort- >SERR- <PERR- INTx-
        Latency: 0, Cache Line Size: 64 bytes
        Interrupt: pin A routed to IRQ 29
        Region 0: Memory at f6000000 (32-bit, non-prefetchable) [size=16M]
        Region 1: Memory at e8000000 (64-bit, prefetchable) [size=128M]
        Region 3: Memory at f0000000 (64-bit, prefetchable) [size=32M]
        Region 5: I/O ports at e000 [size=128]
        Expansion ROM at 000c0000 [disabled] [size=128K]
        Capabilities: <access denied>
        Kernel driver in use: nouveau
        Kernel modules: nouveau

01:00.1 Audio device [0403]: NVIDIA Corporation GF108 High Definition Audio 
Controller [10de:0bea] (rev a1) (prog-if 00 [HDA compatible])
        Subsystem: NVIDIA Corporation Device [10de:0835]
        Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- 
Stepping- SERR- FastB2B- DisINTx-
        Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- 
<MAbort- >SERR- <PERR- INTx-
        Latency: 0, Cache Line Size: 64 bytes
        Interrupt: pin B routed to IRQ 17
        Region 0: Memory at f7080000 (32-bit, non-prefetchable) [size=16K]
        Capabilities: <access denied>
        Kernel driver in use: snd_hda_intel
        Kernel modules: snd_hda_intel

03:00.0 Ethernet controller [0200]: Realtek Semiconductor Co., Ltd. 
RTL8111/8168/8211/8411 PCI Express Gigabit Ethernet Controller [10ec:8168] (rev 
09)
        Subsystem: ASUSTeK Computer Inc. P8 series motherboard [1043:8505]
        Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- 
Stepping- SERR- FastB2B- DisINTx+
        Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- 
<MAbort- >SERR- <PERR- INTx-
        Latency: 0, Cache Line Size: 64 bytes
        Interrupt: pin A routed to IRQ 18
        Region 0: I/O ports at d000 [size=256]
        Region 2: Memory at f2104000 (64-bit, prefetchable) [size=4K]
        Region 4: Memory at f2100000 (64-bit, prefetchable) [size=16K]
        Capabilities: <access denied>
        Kernel driver in use: r8169
        Kernel modules: r8169


** USB devices:
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 003: ID 346d:5678 USB Disk 20
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 002: ID 8087:8008 Intel Corp. Integrated Rate Matching Hub
Bus 003 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 004 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 002: ID 8087:8000 Intel Corp. Integrated Rate Matching Hub


-- System Information:
Debian Release: 13.6
  APT prefers stable-updates
  APT policy: (500, 'stable-updates'), (500, 'stable-security'), (500, 'stable')
Architecture: amd64 (x86_64)

Kernel: Linux 6.12.96+deb13-amd64 (SMP w/4 CPU threads; PREEMPT)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8), 
LANGUAGE=en_US:en
Shell: /bin/sh linked to /usr/bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled

Versions of packages linux-image-6.12.96+deb13-amd64 depends on:
ii  initramfs-tools [linux-initramfs-tool]  0.148.4
ii  kmod                                    34.2-2
ii  linux-base                              4.12.1

Versions of packages linux-image-6.12.96+deb13-amd64 recommends:
ii  apparmor  4.1.0-1

Versions of packages linux-image-6.12.96+deb13-amd64 suggests:
pn  debian-kernel-handbook  <none>
ii  firmware-linux-free     20241210-2
ii  grub-efi-amd64          2.12-9+deb13u2
pn  linux-doc-6.12          <none>

Versions of packages linux-image-6.12.96+deb13-amd64 is related to:
pn  firmware-amd-graphics      <none>
pn  firmware-atheros           <none>
pn  firmware-bnx2              <none>
pn  firmware-bnx2x             <none>
ii  firmware-brcm80211         20250410-2
pn  firmware-cavium            <none>
pn  firmware-cirrus            <none>
ii  firmware-intel-graphics    20250410-2
ii  firmware-intel-misc        20250410-2
pn  firmware-intel-sound       <none>
pn  firmware-ipw2x00           <none>
pn  firmware-ivtv              <none>
ii  firmware-iwlwifi           20250410-2
pn  firmware-libertas          <none>
pn  firmware-marvell-prestera  <none>
ii  firmware-mediatek          20250410-2
ii  firmware-misc-nonfree      20250410-2
pn  firmware-myricom           <none>
pn  firmware-netronome         <none>
pn  firmware-netxen            <none>
ii  firmware-nvidia-graphics   20250410-2
pn  firmware-qcom-soc          <none>
pn  firmware-qlogic            <none>
ii  firmware-realtek           20250410-2
pn  firmware-samsung           <none>
pn  firmware-siano             <none>
pn  firmware-ti-connectivity   <none>
pn  xen-hypervisor             <none>

-- no debconf information


-- The patch for this issue --

>From 28bcd74f209e3de7a3908864758861b756f41bf2 Mon Sep 17 00:00:00 2001
From: root <root@debian2>
Date: Fri, 31 Jul 2026 14:08:45 +0900
Subject: [PATCH] drm/nouveau/nv50: Fix DP SST regression on Fermi and restore
 NV50/Tesla DP bring-up

A regression was introduced in commit a5a7379f6d9d ("nv50-: split DP
disable+enable into two modesets"), causing Quadro 600 (GF108, Fermi) to
fail X startup.  Kernel 6.1.0-51 works correctly, so this is a regression.

Reverting a5a7379f6d9d restores correct behaviour on Quadro 600, but
breaks NV50/Tesla boards such as Quadro FX 1800 (G94).  On NV50/Tesla,
the DP SOR/MMIO block requires a core update during DP SST enable; without
it, the first modeset faults the MMIO block and even text mode fails to
appear.

This patch reverts the DP-SST portion of a5a7379f6d9d, and adds a one-time
core update when a DP output is first used.  This preserves the correct
behaviour on NV50/Tesla while restoring the original DP SST sequence
required by Fermi and later generations.

Tested on:
  - NV50/Tesla: Quadro FX 1800 (G94)
  - Fermi:      Quadro 600 / 2000 / 4000
  - Kepler:     Quadro K420 / K600
  - Maxwell:    Quadro K620

All tested boards now perform DP SST modeset correctly, without MMIO FAULT
or INVALID_STATE, and Quadro 600 regression is resolved.

Fixes: a5a7379f6d9d ("drm/nouveau/kms/nv50-: split DP disable+enable into two 
modesets")
Signed-off-by: Takashi Yano <[email protected]>
---
 drivers/gpu/drm/nouveau/dispnv50/atom.h |  1 +
 drivers/gpu/drm/nouveau/dispnv50/core.h |  1 +
 drivers/gpu/drm/nouveau/dispnv50/disp.c | 18 ++++++++++++++++--
 3 files changed, 18 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/nouveau/dispnv50/atom.h 
b/drivers/gpu/drm/nouveau/dispnv50/atom.h
index b43c4f9bbcdf..1bcfb2f16053 100644
--- a/drivers/gpu/drm/nouveau/dispnv50/atom.h
+++ b/drivers/gpu/drm/nouveau/dispnv50/atom.h
@@ -12,6 +12,7 @@ struct nv50_atom {
        struct list_head outp;
        bool lock_core;
        bool flush_disable;
+       bool need_update_core;
 };
 
 #define nv50_head_atom(p) container_of((p), struct nv50_head_atom, state)
diff --git a/drivers/gpu/drm/nouveau/dispnv50/core.h 
b/drivers/gpu/drm/nouveau/dispnv50/core.h
index f75088186fba..0dd8a50d262e 100644
--- a/drivers/gpu/drm/nouveau/dispnv50/core.h
+++ b/drivers/gpu/drm/nouveau/dispnv50/core.h
@@ -9,6 +9,7 @@ struct nv50_core {
        const struct nv50_core_func *func;
        struct nv50_dmac chan;
        bool assign_windows;
+       bool updated_for_dp;
 };
 
 int nv50_core_new(struct nouveau_drm *, struct nv50_core **);
diff --git a/drivers/gpu/drm/nouveau/dispnv50/disp.c 
b/drivers/gpu/drm/nouveau/dispnv50/disp.c
index eed579a6c858..c6fbbf4b146f 100644
--- a/drivers/gpu/drm/nouveau/dispnv50/disp.c
+++ b/drivers/gpu/drm/nouveau/dispnv50/disp.c
@@ -2244,6 +2244,17 @@ nv50_disp_atomic_commit_tail(struct drm_atomic_state 
*state)
                        memset(interlock, 0x00, sizeof(interlock));
 
                        flushed = true;
+               } else if (atom->need_update_core) {
+                       /* Workaround for MMIO FAULT on Quadro FX 1800 */
+                       /* A part of nv50_disp_atomic_commit_core() */
+                       struct nv50_disp *disp = nv50_disp(drm->dev);
+                       struct nv50_core *core = disp->core;
+                       core->func->ntfy_init(disp->sync, NV50_DISP_CORE_NTFY);
+                       core->func->update(core, interlock, true);
+                       if (core->func->ntfy_wait_done(disp->sync, 
NV50_DISP_CORE_NTFY,
+                                               disp->core->chan.base.device))
+                               NV_ERROR(drm, "core notifier timeout\n");
+                       core->updated_for_dp = true;
                }
        }
 
@@ -2517,9 +2528,12 @@ nv50_disp_outp_atomic_check_clr(struct nv50_atom *atom,
                if (IS_ERR(outp))
                        return PTR_ERR(outp);
 
-               if (outp->encoder->encoder_type == DRM_MODE_ENCODER_DPMST ||
-                   nouveau_encoder(outp->encoder)->dcb->type == DCB_OUTPUT_DP)
+               if (outp->encoder->encoder_type == DRM_MODE_ENCODER_DPMST)
                        atom->flush_disable = true;
+               struct nv50_disp *disp = nv50_disp(outp->encoder->dev);
+               if (nouveau_encoder(outp->encoder)->dcb->type == DCB_OUTPUT_DP 
&&
+                   !disp->core->updated_for_dp)
+                       atom->need_update_core = true;
                outp->clr.ctrl = true;
                atom->lock_core = true;
        }
-- 
2.47.3

Attachment: 0001-drm-nouveau-nv50-Fix-DP-SST-regression-on-Fermi-and-.patch
Description: application/mbox

Reply via email to