[d-kernel] [PATCH 38/39] drm: baikal-vdu: disable backlight driver loading

Daniil Gnusarev gnusarevda на basealt.ru
Пн Окт 14 17:02:19 MSK 2024


When starting the driver with lvds an error occurs:
[   14.310460] BUG: scheduling while atomic: swapper/3/0/0x00000103
[   14.322780] Modules linked in: .....
[   14.395894] CPU: 3 PID: 0 Comm: swapper/3 Tainted: G W 6.6.41+ #87
[   14.411147] Hardware name: Edelweiss TF307-MB-S-D/BM1BM1-D, BIOS 5.3 01/10/2022
[   14.418471] Call trace:
[   14.420925]  dump_backtrace+0xa4/0x130
[   14.424693]  show_stack+0x20/0x38
[   14.428018]  dump_stack_lvl+0x48/0x60
[   14.431696]  dump_stack+0x18/0x28
[   14.435022]  __schedule_bug+0x58/0x78
[   14.438698]  __schedule+0x1094/0x17d0
[   14.442373]  schedule+0x64/0x108
[   14.445611]  schedule_preempt_disabled+0x2c/0x50
[   14.450241]  rwsem_down_read_slowpath+0x1e0/0x538
[   14.454958]  down_read+0xb8/0xc8
[   14.458198]  kernfs_find_and_get_ns+0x44/0x88
[   14.462570]  sysfs_notify+0xa4/0xc0
[   14.466068]  backlight_force_update+0xb4/0x118
[   14.470528]  baikal_vdu_input_event+0x7c/0x160 [baikal_vdu_drm]

Presumably the error occurs when calling sysfs_notify in the event handler.
The called function tries to sleep when executed, which is undesirable.
Disable the backlight driver until the problem is solved

Signed-off-by: Daniil Gnusarev <gnusarevda на basealt.ru>
---
 drivers/gpu/drm/baikal/baikal_vdu_drv.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/drivers/gpu/drm/baikal/baikal_vdu_drv.c b/drivers/gpu/drm/baikal/baikal_vdu_drv.c
index 63a4916b33e93..bb37939145c32 100644
--- a/drivers/gpu/drm/baikal/baikal_vdu_drv.c
+++ b/drivers/gpu/drm/baikal/baikal_vdu_drv.c
@@ -457,10 +457,12 @@ static int baikal_vdu_drm_probe(struct platform_device *pdev)
 		dev_info(dev, "No 'lvds-lanes' property found\n");
 	}
 	if (lvds->ready) {
+#if 0
 		ret = baikal_vdu_backlight_create(drm);
 		if (ret) {
 			dev_err(dev, "LVDS: failed to create backlight\n");
 		}
+#endif
 		if (bridge_is_baikal_lvds_bridge(lvds->bridge)) {
 			panel_bridge = bridge_to_baikal_lvds_bridge(lvds->bridge);
 			panel_bridge->vdu = lvds;
-- 
2.42.2



Подробная информация о списке рассылки devel-kernel