Re: nouveau bug in linux/6.1.38-2

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Dear all,

On Fri, 4 Aug 2023 at 14:15, Karol Herbst wrote:

62aecf23f3d1 drm/nouveau: add nv_encoder pointer check for NULL
fb725beca62d drm/nouveau/dp: check for NULL nv_connector->native_mode
90748be0f4f3 drm/nouveau: don't detect DSM for non-NVIDIA device
5a144bad3e75 nouveau: fix client work fence deletion race

mind retrying with only fb725beca62d and 62aecf23f3d1 reverted? Would be weird if the other two commits are causing it. If that's the case, it's a bit worrying that reverting either of the those causes issues, but maybe there is a good reason for it. Anyway, mind figuring out which of the two you need reverted to fix your issue? Thanks!

The result is:

Patch with commit fb725beca62d reverted: Graphics works. I attached the respective patch again to this mail.

Patch with commit 62aecf23f3d1 reverted: Screen remains black, error message:

# dmesg | grep -A 36 "cut here"
[    2.921358] ------------[ cut here ]------------
[    2.921361] WARNING: CPU: 1 PID: 176 at drivers/gpu/drm/nouveau/nvkm/engine/disp/dp.c:460 nvkm_dp_acquire+0x26a/0x490 [nouveau]
[    2.921627] Modules linked in: sd_mod(E) t10_pi(E) crc64_rocksoft(E) sr_mod(E) crc64(E) crc_t10dif(E) crct10dif_generic(E) cdrom(E) nouveau(E+) mxm_wmi(E) i2c_algo_bit(E) drm_display_helper(E) cec(E) ahci(E) rc_core(E) drm_ttm_helper(E) libahci(E) ttm(E) ehci_pci(E) crct10dif_pclmul(E) crct10dif_common(E) ehci_hcd(E) drm_kms_helper(E) crc32_pclmul(E) firewire_ohci(E) sdhci_pci(E) cqhci(E) libata(E) e1000e(E) sdhci(E) psmouse(E) crc32c_intel(E) lpc_ich(E) ptp(E) i2c_i801(E) scsi_mod(E) i2c_smbus(E) firewire_core(E) scsi_common(E) usbcore(E) crc_itu_t(E) mmc_core(E) drm(E) pps_core(E) usb_common(E) battery(E) video(E) wmi(E) button(E)
[    2.921695] CPU: 1 PID: 176 Comm: kworker/u16:5 Tainted: G            E      6.1.0-0.a.test-amd64 #1  Debian 6.1.38-2a~test
[    2.921701] Hardware name: Dell Inc. Latitude E6510/0N5KHN, BIOS A17 05/12/2017
[    2.921705] Workqueue: nvkm-disp nv50_disp_super [nouveau]
[    2.921948] RIP: 0010:nvkm_dp_acquire+0x26a/0x490 [nouveau]
[    2.922192] Code: 48 8b 44 24 58 65 48 2b 04 25 28 00 00 00 0f 85 37 02 00 00 48 83 c4 60 44 89 e0 5b 5d 41 5c 41 5d 41 5e 41 5f c3 cc cc cc cc <0f> 0b c1 e8 03 41 88 6d 62 44 89 fe 48 89 df 48 69 c0 cf 0d d6 26
[    2.922196] RSP: 0018:ffffc077c04dfd60 EFLAGS: 00010246
[    2.922201] RAX: 0000000000041eb0 RBX: ffff9a8482624c00 RCX: 0000000000041eb0
[    2.922204] RDX: ffffffffc0b47760 RSI: 0000000000000000 RDI: ffffc077c04dfcf0
[    2.922206] RBP: 0000000000000001 R08: ffffc077c04dfc64 R09: 0000000000005b76
[    2.922209] R10: 000000000000000d R11: ffffc077c04dfde0 R12: 00000000ffffffea
[    2.922212] R13: ffff9a8517541e00 R14: 0000000000044d45 R15: 0000000000000000
[    2.922215] FS:  0000000000000000(0000) GS:ffff9a85a3c40000(0000) knlGS:0000000000000000
[    2.922219] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[    2.922222] CR2: 000055f660bcb3a8 CR3: 0000000197610000 CR4: 00000000000006e0
[    2.922226] Call Trace:
[    2.922231]  <TASK>
[    2.922235]  ? __warn+0x7d/0xc0
[    2.922244]  ? nvkm_dp_acquire+0x26a/0x490 [nouveau]
[    2.922487]  ? report_bug+0xe6/0x170
[    2.922494]  ? handle_bug+0x41/0x70
[    2.922501]  ? exc_invalid_op+0x13/0x60
[    2.922505]  ? asm_exc_invalid_op+0x16/0x20
[    2.922512]  ? init_reset_begun+0x20/0x20 [nouveau]
[    2.922708]  ? nvkm_dp_acquire+0x26a/0x490 [nouveau]
[    2.922954]  nv50_disp_super_2_2+0x70/0x430 [nouveau]
[    2.923200]  nv50_disp_super+0x113/0x210 [nouveau]
[    2.923445]  process_one_work+0x1c7/0x380
[    2.923456]  worker_thread+0x4d/0x380
[    2.923463]  ? rescuer_thread+0x3a0/0x3a0
[    2.923469]  kthread+0xe9/0x110
[    2.923476]  ? kthread_complete_and_exit+0x20/0x20
[    2.923482]  ret_from_fork+0x22/0x30
[    2.923493]  </TASK>
[    2.923494] ---[ end trace 0000000000000000 ]---

(Maybe it's worth to mention that the LED back-light is on, while the screen appears black.)

Cheers,
Olaf

P.S.: By the way: as a linux user for more than 20 years, I am very pleased to have the opportunity to contribute at least a little bit to the improvement. I'd like to use the chance to thank you all very much for building and developing this great operating system.
From 47c0e938beef7335ffa179f1006754f9664c6c4d Mon Sep 17 00:00:00 2001
From: Diederik de Haas <didi.debian@xxxxxxxxx>
Date: Mon, 31 Jul 2023 19:55:54 +0200
Subject: [PATCH 2/4] Revert "drm/nouveau/dp: check for NULL
 nv_connector->native_mode"

This reverts commit fb725beca62d175c02ca619c27037c14f7ab8e7c.
---
 drivers/gpu/drm/nouveau/nouveau_connector.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/nouveau/nouveau_connector.c b/drivers/gpu/drm/nouveau/nouveau_connector.c
index fd984733b8e6..1991bbb1d05c 100644
--- a/drivers/gpu/drm/nouveau/nouveau_connector.c
+++ b/drivers/gpu/drm/nouveau/nouveau_connector.c
@@ -966,7 +966,7 @@ nouveau_connector_get_modes(struct drm_connector *connector)
 	/* Determine display colour depth for everything except LVDS now,
 	 * DP requires this before mode_valid() is called.
 	 */
-	if (connector->connector_type != DRM_MODE_CONNECTOR_LVDS && nv_connector->native_mode)
+	if (connector->connector_type != DRM_MODE_CONNECTOR_LVDS)
 		nouveau_connector_detect_depth(connector);
 
 	/* Find the native mode if this is a digital panel, if we didn't
@@ -987,7 +987,7 @@ nouveau_connector_get_modes(struct drm_connector *connector)
 	 * "native" mode as some VBIOS tables require us to use the
 	 * pixel clock as part of the lookup...
 	 */
-	if (connector->connector_type == DRM_MODE_CONNECTOR_LVDS && nv_connector->native_mode)
+	if (connector->connector_type == DRM_MODE_CONNECTOR_LVDS)
 		nouveau_connector_detect_depth(connector);
 
 	if (nv_encoder->dcb->type == DCB_OUTPUT_TV)
-- 
2.40.1


[Index of Archives]     [Linux Kernel]     [Kernel Development Newbies]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Hiking]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux