Nouveau causes garbled display on a MacBookAir3,2 with NVIDIA MCP89
Hello, I have a MacBook Air with the issues described above. The system boots in UEFI mode and all is fine and dandy until Nouveau loads, then I see garbled display on the laptop screen, external monitor is unaffected. The machine runs Fedora 38 and this is present in kernel 6.3.12-200.fc38.x86_64, however not present in kernel 6.2.9-300.fc38.x86_64. I've also had problems with the 2023.07.01 archlinux iso. Below is kernel log when Nouveau loads, reloading the module does not change anything.
[ 166.049919] ACPI: video: Video Device [IGPU] (multi-head: yes rom: no post: no)
[ 166.050119] input: Video Bus as /devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/device:2a/LNXVIDEO:00/input/input14
[ 166.836825] ACPI: \_SB_.PCI0.IXVE.IGPU: failed to evaluate _DSM
[ 166.837068] nouveau 0000:02:00.0: vgaarb: deactivate vga console
[ 166.837158] nouveau 0000:02:00.0: NVIDIA MCP89 (0af180a2)
[ 166.853505] nouveau 0000:02:00.0: bios: version 70.89.13.00.00
[ 166.900158] nouveau 0000:02:00.0: devinit: 0x00005ce8[0]: script needs OR link
[ 166.900277] nouveau 0000:02:00.0: fb: 256 MiB stolen system memory
[ 166.983360] nouveau 0000:02:00.0: bus: MMIO write of 0000807f FAULT at 100c18
[ 166.984319] nouveau 0000:02:00.0: bus: MMIO write of 0000807e FAULT at 100c1c
[ 167.749898] nouveau 0000:02:00.0: DRM: VRAM: 256 MiB
[ 167.749903] nouveau 0000:02:00.0: DRM: GART: 1048576 MiB
[ 167.749908] nouveau 0000:02:00.0: DRM: TMDS table version 2.0
[ 167.749911] nouveau 0000:02:00.0: DRM: DCB version 4.0
[ 167.749914] nouveau 0000:02:00.0: DRM: DCB outp 00: 040001b6 0f220010
[ 167.749917] nouveau 0000:02:00.0: DRM: DCB outp 01: 020112a6 0f220010
[ 167.749920] nouveau 0000:02:00.0: DRM: DCB outp 02: 02011262 00020010
[ 167.749923] nouveau 0000:02:00.0: DRM: DCB conn 00: 00002047
[ 167.749926] nouveau 0000:02:00.0: DRM: DCB conn 01: 00101146
[ 167.755313] nouveau 0000:02:00.0: DRM: MM: using M2MF for buffer copies
[ 168.076362] [drm] Initialized nouveau 1.3.1 20120801 for 0000:02:00.0 on minor 0
[ 168.128691] fbcon: Deferring console take-over
[ 168.128699] nouveau 0000:02:00.0: [drm] fb0: nouveaudrmfb frame buffer device
[ 168.171468] ------------[ cut here ]------------
[ 168.171473] WARNING: CPU: 0 PID: 11 at drivers/gpu/drm/nouveau/nvkm/engine/disp/dp.c:497 nvkm_dp_acquire+0x50d/0x750 [nouveau]
[ 168.171802] Modules linked in: nouveau mxm_wmi video i2c_algo_bit drm_ttm_helper drm_display_helper rfcomm snd_seq_dummy snd_hrtimer nf_conntrack_netbios_ns nf_conntrack_broadcast nft_fib_inet nft_fib_ipv4 nft_fib_ipv6 nft_fib nft_reject_inet nf_reject_ipv4 nf_reject_ipv6 nft_reject nft_ct nft_chain_nat nf_nat nf_conntrack nf_defrag_ipv6 nf_defrag_ipv4 ip_set nf_tables brcmsmac nfnetlink snd_hda_codec_hdmi brcmutil snd_hda_codec_cirrus snd_hda_codec_generic b43 ledtrig_audio bnep cordic snd_hda_intel snd_intel_dspcfg snd_intel_sdw_acpi snd_hda_codec mac80211 btusb coretemp btrtl kvm_intel snd_hda_core btbcm btintel qrtr libarc4 btmtk cfg80211 uvcvideo bluetooth snd_hwdep kvm uvc videobuf2_vmalloc videobuf2_memops videobuf2_v4l2 videobuf2_common snd_seq ssb snd_seq_device videodev mmc_core snd_pcm applesmc joydev mc rfkill snd_timer pcspkr irqbypass sunrpc snd bcma soundcore bcm5974 sbs binfmt_misc sbshc acpi_cpufreq apple_bl nls_utf8 hfsplus apple_mfi_fastcharge loop zram ttm uas cec usb_storage hid_apple sha512_ssse3
[ 168.171907] wmi ip6_tables ip_tables fuse [last unloaded: mxm_wmi]
[ 168.171915] CPU: 0 PID: 11 Comm: kworker/u4:1 Tainted: G W 6.3.12-200.fc38.x86_64 #1
[ 168.171919] Hardware name: Apple Inc. MacBookAir3,2/Mac-942C5DF58193131B, BIOS MBA31.88Z.0067.B00.1708080355 08/08/17
[ 168.171922] Workqueue: nvkm-disp nv50_disp_super [nouveau]
[ 168.172155] RIP: 0010:nvkm_dp_acquire+0x50d/0x750 [nouveau]
[ 168.172387] Code: 03 0f 85 0a 02 00 00 a8 04 0f 84 02 02 00 00 83 c2 01 39 fa 75 ca 41 8b 85 28 01 00 00 85 c0 0f 85 44 fc ff ff e9 df fb ff ff <0f> 0b c1 e8 03 45 88 66 62 44 89 fe 4c 89 ef 48 69 c0 cf 0d d6 26
[ 168.172391] RSP: 0018:ffffab4a8007fd60 EFLAGS: 00010246
[ 168.172394] RAX: 0000000000041eb0 RBX: 000000000005161a RCX: 0000000000041eb0
[ 168.172396] RDX: ffffffffc15d0890 RSI: 0000000000000002 RDI: ffffab4a8007fcf0
[ 168.172399] RBP: 00000000ffffffea R08: 0000000000000000 R09: 0000000000005a97
[ 168.172401] R10: 000000000000000b R11: ffffab4a8007fde0 R12: 0000000000000001
[ 168.172403] R13: ffff94a445146e00 R14: ffff94a4482f3180 R15: 0000000000000000
[ 168.172406] FS: 0000000000000000(0000) GS:ffff94a47be00000(0000) knlGS:0000000000000000
[ 168.172408] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[ 168.172411] CR2: 00005615e1918f40 CR3: 000000004f022000 CR4: 00000000000406f0
[ 168.172413] Call Trace:
[ 168.172418] <TASK>
[ 168.172420] ? nvkm_dp_acquire+0x50d/0x750 [nouveau]
[ 168.172658] ? __warn+0x81/0x130
[ 168.172666] ? nvkm_dp_acquire+0x50d/0x750 [nouveau]
[ 168.172899] ? report_bug+0x171/0x1a0
[ 168.172904] ? handle_bug+0x3c/0x80
[ 168.172908] ? exc_invalid_op+0x17/0x70
[ 168.172912] ? asm_exc_invalid_op+0x1a/0x20
[ 168.172919] ? __pfx_init_done+0x10/0x10 [nouveau]
[ 168.173111] ? nvkm_dp_acquire+0x50d/0x750 [nouveau]
[ 168.173344] nv50_disp_super_2_2+0x6d/0x430 [nouveau]
[ 168.173583] nv50_disp_super+0x117/0x230 [nouveau]
[ 168.173816] process_one_work+0x1c7/0x3d0
[ 168.173821] worker_thread+0x51/0x390
[ 168.173824] ? __pfx_worker_thread+0x10/0x10
[ 168.173827] kthread+0xde/0x110
[ 168.173831] ? __pfx_kthread+0x10/0x10
[ 168.173835] ret_from_fork+0x2c/0x50
[ 168.173842] </TASK>
[ 168.173843] ---[ end trace 0000000000000000 ]---```
Edited by wolfemium