掌機 - Pyra - 解決drivers/bus/omap_l3_noc.c:147 l3_interrupt_handler問題



問題如下:

[    4.833229] ------------[ cut here ]------------
[    4.833234] WARNING: CPU: 0 PID: 5 at drivers/bus/omap_l3_noc.c:147 l3_interrupt_handler+0x254/0x374
[    4.833242] 44000000.ocp:L3 Custom Error: MASTER MPU TARGET L4WAKEUP (Idle): Data Access in User mode during Functional access
[    4.833247] Modules linked in:
[    4.833260] CPU: 0 PID: 5 Comm: kworker/0:0 Not tainted 5.6.19-letux-lpae-pyra+ #3
[    4.833260] Hardware name: Generic OMAP5 (Flattened Device Tree)
[    4.833260] Workqueue: events deferred_probe_work_func
[    4.833288] [<c0212e60>] (unwind_backtrace) from [<c020d1a0>] (show_stack+0x10/0x14)
[    4.833290] [<c020d1a0>] (show_stack) from [<c0c651c4>] (dump_stack+0x94/0xa8)
[    4.833295] [<c0c651c4>] (dump_stack) from [<c023513c>] (__warn+0xd0/0xf8)
[    4.833310] [<c023513c>] (__warn) from [<c023552c>] (warn_slowpath_fmt+0x94/0xb8)
[    4.833321] [<c023552c>] (warn_slowpath_fmt) from [<c069615c>] (l3_interrupt_handler+0x254/0x374)
[    4.833321] [<c069615c>] (l3_interrupt_handler) from [<c02907b4>] (__handle_irq_event_percpu+0x58/0x29c)
[    4.833323] [<c02907b4>] (__handle_irq_event_percpu) from [<c0290a24>] (handle_irq_event_percpu+0x2c/0x80)
[    4.833333] [<c0290a24>] (handle_irq_event_percpu) from [<c0290ab0>] (handle_irq_event+0x38/0x5c)
[    4.833346] [<c0290ab0>] (handle_irq_event) from [<c0295044>] (handle_fasteoi_irq+0xb8/0x168)
[    4.833351] [<c0295044>] (handle_fasteoi_irq) from [<c028fa34>] (generic_handle_irq+0x24/0x34)
[    4.833351] [<c028fa34>] (generic_handle_irq) from [<c0290008>] (__handle_domain_irq+0x5c/0xb4)
[    4.833351] [<c0290008>] (__handle_domain_irq) from [<c0694490>] (gic_handle_irq+0x3c/0x78)
[    4.833360] [<c0694490>] (gic_handle_irq) from [<c0201ab8>] (__irq_svc+0x58/0x8c)
[    4.833367] Exception stack(0xed8f5830 to 0xed8f5878)
[    4.833375] 5820:                                     ede41090 00000113 fce10194 00000003
[    4.833382] 5840: edf7a840 00000001 c1203fc8 ec940c10 edf7a8c4 00000000 c0cf4b14 00000000
[    4.833382] 5860: 00000194 ed8f5880 c07c9144 c0c83604 20000113 ffffffff
[    4.833382] [<c0201ab8>] (__irq_svc) from [<c0c83604>] (_raw_spin_unlock_irqrestore+0x1c/0x4c)
[    4.833392] [<c0c83604>] (_raw_spin_unlock_irqrestore) from [<c07c9144>] (w677l_regulator+0x58/0x64)
[    4.833405] [<c07c9144>] (w677l_regulator) from [<c07c94c8>] (w677l_enable+0xf8/0x3dc)
[    4.833412] [<c07c94c8>] (w677l_enable) from [<c07ae688>] (omapdss_device_enable+0x20/0x34)
[    4.833412] [<c07ae688>] (omapdss_device_enable) from [<c07cc8c4>] (omap_encoder_enable+0x40/0x80)
[    4.833420] [<c07cc8c4>] (omap_encoder_enable) from [<c0774ae4>] (drm_atomic_helper_commit_modeset_enables+0x23c/0x268)
[    4.833434] [<c0774ae4>] (drm_atomic_helper_commit_modeset_enables) from [<c07c9f9c>] (omap_atomic_commit_tail+0x48/0xc0)
[    4.833443] [<c07c9f9c>] (omap_atomic_commit_tail) from [<c0775bfc>] (commit_tail+0x9c/0x1b0)
[    4.833443] [<c0775bfc>] (commit_tail) from [<c0776800>] (drm_atomic_helper_commit+0x134/0x158)
[    4.833444] [<c0776800>] (drm_atomic_helper_commit) from [<c07a3454>] (drm_client_modeset_commit_atomic+0x16c/0x210)
[    4.833459] [<c07a3454>] (drm_client_modeset_commit_atomic) from [<c07a3550>] (drm_client_modeset_commit_force+0x58/0x184)
[    4.833473] [<c07a3550>] (drm_client_modeset_commit_force) from [<c077af44>] (drm_fb_helper_restore_fbdev_mode_unlocked+0x54/0x98)
[    4.833473] [<c077af44>] (drm_fb_helper_restore_fbdev_mode_unlocked) from [<c077afb8>] (drm_fb_helper_set_par+0x30/0x5c)
[    4.833473] [<c077afb8>] (drm_fb_helper_set_par) from [<c06eeb6c>] (fbcon_init+0x3e0/0x578)
[    4.833487] [<c06eeb6c>] (fbcon_init) from [<c073bb2c>] (visual_init+0xbc/0x104)
[    4.833502] [<c073bb2c>] (visual_init) from [<c073d00c>] (do_bind_con_driver+0x1e0/0x3bc)
[    4.833504] [<c073d00c>] (do_bind_con_driver) from [<c073d538>] (do_take_over_console+0x138/0x1d4)
[    4.833504] [<c073d538>] (do_take_over_console) from [<c06eb254>] (do_fbcon_takeover+0x74/0xd4)
[    4.833511] [<c06eb254>] (do_fbcon_takeover) from [<c06e2ec4>] (register_framebuffer+0x204/0x2dc)
[    4.833524] [<c06e2ec4>] (register_framebuffer) from [<c077aa4c>] (__drm_fb_helper_initial_config_and_unlock+0x404/0x5ac)
[    4.833534] [<c077aa4c>] (__drm_fb_helper_initial_config_and_unlock) from [<c07d2b20>] (omap_fbdev_init+0x8c/0xc4)
[    4.833534] [<c07d2b20>] (omap_fbdev_init) from [<c07ca500>] (pdev_probe+0x4ec/0x788)
[    4.833534] [<c07ca500>] (pdev_probe) from [<c07df994>] (platform_drv_probe+0x48/0x98)
[    4.833548] [<c07df994>] (platform_drv_probe) from [<c07dd49c>] (really_probe+0x1c8/0x458)
[    4.833561] [<c07dd49c>] (really_probe) from [<c07dd9e0>] (driver_probe_device+0x158/0x1b0)
[    4.833565] [<c07dd9e0>] (driver_probe_device) from [<c07db6e8>] (bus_for_each_drv+0x80/0xc4)
[    4.833565] [<c07db6e8>] (bus_for_each_drv) from [<c07dd240>] (__device_attach+0xd0/0x15c)
[    4.833569] [<c07dd240>] (__device_attach) from [<c07dc454>] (bus_probe_device+0x84/0x8c)
[    4.833582] [<c07dc454>] (bus_probe_device) from [<c07d8e2c>] (device_add+0x65c/0x798)
[    4.833594] [<c07d8e2c>] (device_add) from [<c07df764>] (platform_device_add+0x130/0x23c)
[    4.833595] [<c07df764>] (platform_device_add) from [<c07e02d4>] (platform_device_register_full+0xd0/0x110)
[    4.833595] [<c07e02d4>] (platform_device_register_full) from [<c07af820>] (dss_bind+0x80/0xa8)
[    4.833603] [<c07af820>] (dss_bind) from [<c07d659c>] (try_to_bring_up_master+0x1ec/0x2a8)
[    4.833614] [<c07d659c>] (try_to_bring_up_master) from [<c07d66f4>] (__component_add+0x9c/0x168)
[    4.833625] [<c07d66f4>] (__component_add) from [<c07c6fd0>] (hdmi5_probe+0x1ec/0x244)
[    4.833626] [<c07c6fd0>] (hdmi5_probe) from [<c07df994>] (platform_drv_probe+0x48/0x98)
[    4.833626] [<c07df994>] (platform_drv_probe) from [<c07dd49c>] (really_probe+0x1c8/0x458)
[    4.833628] [<c07dd49c>] (really_probe) from [<c07dd9e0>] (driver_probe_device+0x158/0x1b0)
[    4.833639] [<c07dd9e0>] (driver_probe_device) from [<c07db6e8>] (bus_for_each_drv+0x80/0xc4)
[    4.833653] [<c07db6e8>] (bus_for_each_drv) from [<c07dd240>] (__device_attach+0xd0/0x15c)
[    4.833656] [<c07dd240>] (__device_attach) from [<c07dc454>] (bus_probe_device+0x84/0x8c)
[    4.833656] [<c07dc454>] (bus_probe_device) from [<c07dc980>] (deferred_probe_work_func+0x78/0xb8)
[    4.833664] [<c07dc980>] (deferred_probe_work_func) from [<c025102c>] (process_one_work+0x22c/0x5c8)
[    4.833676] [<c025102c>] (process_one_work) from [<c025165c>] (worker_thread+0x294/0x598)
[    4.833687] [<c025165c>] (worker_thread) from [<c0257950>] (kthread+0x150/0x154)
[    4.833687] [<c0257950>] (kthread) from [<c02010d8>] (ret_from_fork+0x14/0x3c)
[    4.833687] Exception stack(0xed8f5fb0 to 0xed8f5ff8)
[    4.833687] 5fa0:                                     00000000 00000000 00000000 00000000
[    4.833692] 5fc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[    4.833699] 5fe0: 00000000 00000000 00000000 00000000 00000013 00000000
[    4.833705] ---[ end trace 8d164100dde24847 ]---

解法如下: