Hi Laurent,
On 23/08/2020 19:26, Aaro Koskinen wrote:
Hi,
On Tue, Aug 04, 2020 at 03:39:37PM +0300, Tomi Valkeinen wrote:
On 04/08/2020 15:13, Tomi Valkeinen wrote:
Can you try to pinpoint a bit where the hang happens? Maybe add DRM/omapdrm debug prints, or perhaps sysrq works and it shows a lock that's in deadlock.
Also, one data point would be to disable venc, e.g. set venc status to "disabled" in dts.
Disabling venc makes no difference.
The hang happens in drm_fb_helper_initial_config(). I followed the "HANG DEBUGGING" tips in the function comment text and enabled fb.lockless_register_fb=1 to get more (serial) console output.
Now I get this:
[ 6.514739] omapdss_dss 48050000.dss: supply vdda_video not found, using dummy regulator [ 6.566375] DSS: OMAP DSS rev 2.0 [ 6.571807] omapdss_dss 48050000.dss: bound 48050400.dispc (ops dispc_component_ops) [ 6.580749] omapdrm omapdrm.0: DMM not available, disable DMM support [ 6.587982] [drm] Supports vblank timestamp caching Rev 2 (21.10.2013). [ 6.626617] ------------[ cut here ]------------ [ 6.631774] WARNING: CPU: 0 PID: 18 at drivers/gpu/drm/drm_bridge.c:708 drm_atomic_helper_commit_modeset_enables+0x134/0x268 [ 6.643768] Modules linked in: [ 6.647033] CPU: 0 PID: 18 Comm: kworker/0:1 Tainted: G U 5.8.0-omap3-los_16068+-00004-g2e7d4a7efefd-dirty #2 [ 6.658966] Hardware name: Nokia RX-51 board [ 6.663635] Workqueue: events deferred_probe_work_func [ 6.669097] [<c010bf18>] (unwind_backtrace) from [<c010a0f4>] (show_stack+0x10/0x14) [ 6.677429] [<c010a0f4>] (show_stack) from [<c0124f18>] (__warn+0xbc/0xd4) [ 6.684844] [<c0124f18>] (__warn) from [<c0124f90>] (warn_slowpath_fmt+0x60/0xb8) [ 6.692901] [<c0124f90>] (warn_slowpath_fmt) from [<c040c0e8>] (drm_atomic_helper_commit_modeset_enables+0x134/0x268) [ 6.704254] [<c040c0e8>] (drm_atomic_helper_commit_modeset_enables) from [<c045442c>] (omap_atomic_commit_tail+0xb4/0xc0) [ 6.715972] [<c045442c>] (omap_atomic_commit_tail) from [<c040d1b4>] (commit_tail+0x9c/0x1a8) [ 6.725128] [<c040d1b4>] (commit_tail) from [<c040de70>] (drm_atomic_helper_commit+0x134/0x158) [ 6.734466] [<c040de70>] (drm_atomic_helper_commit) from [<c043b204>] (drm_client_modeset_commit_atomic+0x16c/0x208) [ 6.745727] [<c043b204>] (drm_client_modeset_commit_atomic) from [<c043b2f8>] (drm_client_modeset_commit_locked+0x58/0x184) [ 6.757629] [<c043b2f8>] (drm_client_modeset_commit_locked) from [<c043b448>] (drm_client_modeset_commit+0x24/0x40) [ 6.768798] [<c043b448>] (drm_client_modeset_commit) from [<c0412778>] (__drm_fb_helper_restore_fbdev_mode_unlocked+0xa0/0xc8) [ 6.780975] [<c0412778>] (__drm_fb_helper_restore_fbdev_mode_unlocked) from [<c0412808>] (drm_fb_helper_set_par+0x38/0x64) [ 6.792785] [<c0412808>] (drm_fb_helper_set_par) from [<c03a9b24>] (fbcon_init+0x3d4/0x568) [ 6.801757] [<c03a9b24>] (fbcon_init) from [<c03eaab0>] (visual_init+0xb8/0xfc) [ 6.809631] [<c03eaab0>] (visual_init) from [<c03ec070>] (do_bind_con_driver+0x1e0/0x3bc) [ 6.818267] [<c03ec070>] (do_bind_con_driver) from [<c03ec59c>] (do_take_over_console+0x138/0x1d8) [ 6.827880] [<c03ec59c>] (do_take_over_console) from [<c03a856c>] (do_fbcon_takeover+0x74/0xd4) [ 6.837219] [<c03a856c>] (do_fbcon_takeover) from [<c03a22e0>] (register_framebuffer+0x204/0x2d8) [ 6.846740] [<c03a22e0>] (register_framebuffer) from [<c0412228>] (__drm_fb_helper_initial_config_and_unlock+0x3a4/0x554) [ 6.858459] [<c0412228>] (__drm_fb_helper_initial_config_and_unlock) from [<c045c230>] (omap_fbdev_init+0x84/0xbc) [ 6.869537] [<c045c230>] (omap_fbdev_init) from [<c04549b8>] (pdev_probe+0x580/0x7d8) [ 6.877807] [<c04549b8>] (pdev_probe) from [<c04669b4>] (platform_drv_probe+0x48/0x98)
Laurent, does this ring any bells? The WARN comes in drm_atomic_bridge_chain_enable() when drm_atomic_get_old_bridge_state() returns null for (presumably) sdi bridge.
I'm not sure why the bridge state would not be there.
Aaro, you can probably debug easier if you disable CONFIG_FRAMEBUFFER_CONSOLE, or even CONFIG_DRM_FBDEV_EMULATION.
Tomi
Hi,
On 25.08.20 г. 16:16 ч., Tomi Valkeinen wrote:
Hi Laurent,
On 23/08/2020 19:26, Aaro Koskinen wrote:
Hi,
On Tue, Aug 04, 2020 at 03:39:37PM +0300, Tomi Valkeinen wrote:
On 04/08/2020 15:13, Tomi Valkeinen wrote:
Can you try to pinpoint a bit where the hang happens? Maybe add DRM/omapdrm debug prints, or perhaps sysrq works and it shows a lock that's in deadlock.
Also, one data point would be to disable venc, e.g. set venc status to "disabled" in dts.
Disabling venc makes no difference.
The hang happens in drm_fb_helper_initial_config(). I followed the "HANG DEBUGGING" tips in the function comment text and enabled fb.lockless_register_fb=1 to get more (serial) console output.
Now I get this:
[ 6.514739] omapdss_dss 48050000.dss: supply vdda_video not found, using dummy regulator [ 6.566375] DSS: OMAP DSS rev 2.0 [ 6.571807] omapdss_dss 48050000.dss: bound 48050400.dispc (ops dispc_component_ops) [ 6.580749] omapdrm omapdrm.0: DMM not available, disable DMM support [ 6.587982] [drm] Supports vblank timestamp caching Rev 2 (21.10.2013). [ 6.626617] ------------[ cut here ]------------ [ 6.631774] WARNING: CPU: 0 PID: 18 at drivers/gpu/drm/drm_bridge.c:708 drm_atomic_helper_commit_modeset_enables+0x134/0x268 [ 6.643768] Modules linked in: [ 6.647033] CPU: 0 PID: 18 Comm: kworker/0:1 Tainted: G U 5.8.0-omap3-los_16068+-00004-g2e7d4a7efefd-dirty #2 [ 6.658966] Hardware name: Nokia RX-51 board [ 6.663635] Workqueue: events deferred_probe_work_func [ 6.669097] [<c010bf18>] (unwind_backtrace) from [<c010a0f4>] (show_stack+0x10/0x14) [ 6.677429] [<c010a0f4>] (show_stack) from [<c0124f18>] (__warn+0xbc/0xd4) [ 6.684844] [<c0124f18>] (__warn) from [<c0124f90>] (warn_slowpath_fmt+0x60/0xb8) [ 6.692901] [<c0124f90>] (warn_slowpath_fmt) from [<c040c0e8>] (drm_atomic_helper_commit_modeset_enables+0x134/0x268) [ 6.704254] [<c040c0e8>] (drm_atomic_helper_commit_modeset_enables) from [<c045442c>] (omap_atomic_commit_tail+0xb4/0xc0) [ 6.715972] [<c045442c>] (omap_atomic_commit_tail) from [<c040d1b4>] (commit_tail+0x9c/0x1a8) [ 6.725128] [<c040d1b4>] (commit_tail) from [<c040de70>] (drm_atomic_helper_commit+0x134/0x158) [ 6.734466] [<c040de70>] (drm_atomic_helper_commit) from [<c043b204>] (drm_client_modeset_commit_atomic+0x16c/0x208) [ 6.745727] [<c043b204>] (drm_client_modeset_commit_atomic) from [<c043b2f8>] (drm_client_modeset_commit_locked+0x58/0x184) [ 6.757629] [<c043b2f8>] (drm_client_modeset_commit_locked) from [<c043b448>] (drm_client_modeset_commit+0x24/0x40) [ 6.768798] [<c043b448>] (drm_client_modeset_commit) from [<c0412778>] (__drm_fb_helper_restore_fbdev_mode_unlocked+0xa0/0xc8) [ 6.780975] [<c0412778>] (__drm_fb_helper_restore_fbdev_mode_unlocked) from [<c0412808>] (drm_fb_helper_set_par+0x38/0x64) [ 6.792785] [<c0412808>] (drm_fb_helper_set_par) from [<c03a9b24>] (fbcon_init+0x3d4/0x568) [ 6.801757] [<c03a9b24>] (fbcon_init) from [<c03eaab0>] (visual_init+0xb8/0xfc) [ 6.809631] [<c03eaab0>] (visual_init) from [<c03ec070>] (do_bind_con_driver+0x1e0/0x3bc) [ 6.818267] [<c03ec070>] (do_bind_con_driver) from [<c03ec59c>] (do_take_over_console+0x138/0x1d8) [ 6.827880] [<c03ec59c>] (do_take_over_console) from [<c03a856c>] (do_fbcon_takeover+0x74/0xd4) [ 6.837219] [<c03a856c>] (do_fbcon_takeover) from [<c03a22e0>] (register_framebuffer+0x204/0x2d8) [ 6.846740] [<c03a22e0>] (register_framebuffer) from [<c0412228>] (__drm_fb_helper_initial_config_and_unlock+0x3a4/0x554) [ 6.858459] [<c0412228>] (__drm_fb_helper_initial_config_and_unlock) from [<c045c230>] (omap_fbdev_init+0x84/0xbc) [ 6.869537] [<c045c230>] (omap_fbdev_init) from [<c04549b8>] (pdev_probe+0x580/0x7d8) [ 6.877807] [<c04549b8>] (pdev_probe) from [<c04669b4>] (platform_drv_probe+0x48/0x98)
Laurent, does this ring any bells? The WARN comes in drm_atomic_bridge_chain_enable() when drm_atomic_get_old_bridge_state() returns null for (presumably) sdi bridge.
I'm not sure why the bridge state would not be there.
Aaro, you can probably debug easier if you disable CONFIG_FRAMEBUFFER_CONSOLE, or even CONFIG_DRM_FBDEV_EMULATION.
Tomi
Is there any progress on the issue? I tried 5.9.1 and still nothing displayed.
Regards, Ivo
Hi Aaro, Ivaylo,
On 24/11/2020 23:03, Ivaylo Dimitrov wrote:
Is there any progress on the issue? I tried 5.9.1 and still nothing displayed.
Can you test the attached patch?
Tomi
Hi Tomi,
On 26.11.20 г. 16:11 ч., Tomi Valkeinen wrote:
Hi Aaro, Ivaylo,
On 24/11/2020 23:03, Ivaylo Dimitrov wrote:
Is there any progress on the issue? I tried 5.9.1 and still nothing displayed.
Can you test the attached patch?
With this patch I don't see oops that Aaro reported, so:
Tested-by: Ivaylo Dimitrov ivo.g.dimitrov.75@gmail.com
Seems to fix the particular issue, however, now we get another oops. As this is not upstream kernel but one with PVR related patches, I will try again with vanilla 5.9.
Just in case oops rings any bells (the line in question is https://github.com/maemo-leste/droid4-linux/blob/maemo-5.9/drivers/gpu/drm/o...)
[ 17.494506] Unable to handle kernel NULL pointer dereference at virtual address 00000000 [ 17.502807] pgd = c59ec13e [ 17.505523] [00000000] *pgd=00000000 [ 17.509277] Internal error: Oops: 5 [#1] THUMB2 [ 17.513824] Modules linked in: joydev hsi_char wl1251_spi wl1251 omap3_rom_rng rng_core ir_rx51 leds_gpio led_class rc_core snd_soc_rx51(+) isp1704_charger pwm_omap_dmtimer gpio_keys mac80211 cpufreq_dt snd_soc_omap_mcbsp snd_soc_ti_sdma cfg80211 omap3_isp videobuf2_dma_contig videobuf2_memops libarc4 videobuf2_v4l2 omap_sham videobuf2_common omap2430 tsc2005 panel_sony_acx565akm tsc200x_core snd_soc_tlv320aic3x snd_soc_tpa6130a2 omap_mailbox snd_soc_core hci_nokia snd_pcm_dmaengine si4713 bq2415x_charger phy_twl4030_usb snd_pcm snd_timer bq27xxx_battery_i2c bq27xxx_battery snd tsl2563 musb_hdrc soundcore udc_core hci_uart btbcm ohci_platform ohci_hcd ehci_hcd twl4030_pwrbutton st_accel_i2c st_sensors_i2c st_accel pwm_twl st_sensors twl4030_madc pwm_twl_led industrialio_triggered_buffer kfifo_buf evdev twl4030_vibra ff_memless bluetooth et8ek8 industrialio ad5820 v4l2_fwnode ecdh_generic usbcore ecc libaes usb_common videodev lis3lv02d_i2c omap_ssi lis3lv02d hsi mc [ 17.599914] CPU: 0 PID: 10 Comm: kworker/0:1 Tainted: G U 5.9.0-02838-g91f16872ecee #5 [ 17.609161] Hardware name: Nokia RX-51 board [ 17.613464] Workqueue: events deferred_probe_work_func [ 17.618652] PC is at omap_gem_dma_sync_buffer (/home/user/git/linux-omap/drivers/gpu/drm/omapdrm/omap_gem.c:801) [ 17.623901] LR is at omap_framebuffer_pin (/home/user/git/linux-omap/drivers/gpu/drm/omapdrm/omap_fb.c:237 (discriminator 2)) [ 17.628814] pc : lr : psr: 800b0033 [ 17.635101] sp : ce1cf978 ip : cbad5040 fp : 00000000 [ 17.640350] r10: 00000001 r9 : 00000000 r8 : ccbe5000 [ 17.645599] r7 : 00000177 r6 : 00000000 r5 : 00000000 r4 : cba8b000 [ 17.652160] r3 : 00000000 r2 : 00000000 r1 : 00000001 r0 : cba8b000 [ 17.658721] Flags: Nzcv IRQs on FIQs on Mode SVC_32 ISA Thumb Segment none [ 17.666046] Control: 50c5387d Table: 8cb3c019 DAC: 00000051 [ 17.671813] Process kworker/0:1 (pid: 10, stack limit = 0x4150a91a) [ 17.678131] Stack: (0xce1cf978 to 0xce1d0000) [ 17.682495] f960: 8e900000 cba8b000 [ 17.690734] f980: 00000000 c04410e7 cba8b000 cbc75000 00000000 cbc75080 00000000 cbc750a0 [ 17.698944] f9a0: 00000001 cbc7507c cbbb5538 c0440ad9 ccc3ffc0 00000002 00000000 00000000 [ 17.707183] f9c0: 00000001 00000000 ccbe5160 c0411be9 c0413509 ccc3ffc0 00000000 ccbe5000 [ 17.715393] f9e0: 00000000 c041355b c041350d ccc3ffc0 ce1cfa0c ccbe5000 cbdfa100 c042e9c9 [ 17.723602] fa00: 00000000 c0a04048 00000001 ce0bba80 00000004 00000007 00000000 00000000 [ 17.731842] fa20: cb816858 ccc15a20 00000000 be70958a 00000000 ccbe5000 cbdfa118 cd742600 [ 17.740051] fa40: cbdfa100 c0aed344 00000064 0000001e 00000001 c042ea7b cbc750c0 c0aef518 [ 17.748291] fa60: cbdfa1a8 ccbe5054 ccbe5054 cbdfa100 ccbe5000 cd742600 cbdfa1a8 c0aed344 [ 17.756500] fa80: 00000064 c042eb31 cbdfa1a8 cbdfa100 00000000 c0416199 ccba8400 00000000 [ 17.764739] faa0: ccba8400 cd742600 00000000 c04161f1 ce08e000 c03cad8f c0a04048 c01c92bd [ 17.772949] fac0: 00000064 0000001e 00200000 00000000 00000000 ce08e000 c0aefc30 00000000 [ 17.781188] fae0: 00000000 c0641e80 00000000 c0aefb34 ce08e000 c03f627b 00000000 00000000 [ 17.789398] fb00: 00000000 00000001 00000000 c03f7875 c0a04048 c0a6de84 c0768eab 0000003e [ 17.797637] fb20: 00000001 c0aef63c c0a6de84 00000000 c0aef634 c0641e80 00000000 0000003e [ 17.805847] fb40: 00000000 00000001 c0aefc34 c03f7b09 c0a6de84 c076ebc5 00000001 ce1cfba4 [ 17.814056] fb60: ccba8618 c0aed21c c0a69bf4 c0aed220 c0a04850 c0a04048 ccba8410 ccba8618 [ 17.822296] fb80: 000001e0 c03c9239 ccba8400 00000000 c0aed214 c03c4cc9 c0768b17 00000000 [ 17.830505] fba0: 00000000 00000000 00000000 00000320 000001e0 00000000 00000000 00000000 [ 17.838745] fbc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000020 be70958a [ 17.846954] fbe0: cbdfa100 c0a7208c ccba8400 00000000 ccbe5000 00000000 cbdfa1a8 c0415ec7 [ 17.855194] fc00: cbdfa118 00000001 ccfc598c 00000000 00000000 00000320 000001e0 00000320 [ 17.863403] fc20: 000001e0 00000020 00000018 be70958a c0a7208c cbdfa100 ccbe5000 ce365000 [ 17.871612] fc40: ce365000 00000002 cbbb5080 ce3650e8 ce365044 c0443ce7 00000000 ccbe5000 [ 17.879852] fc60: ce365000 c043f113 00000000 00000000 00000002 00000000 c0a72fe4 00000000 [ 17.888061] fc80: cd49a210 c0a72fe4 c0af3c20 00000000 c0a72fe4 00000045 c0a731c0 c044990b [ 17.896301] fca0: cd49a210 00000000 c0af3c28 c04487bf cd49a210 c0a72fe4 ce1cfd0c c0448a31 [ 17.904510] fcc0: 00000001 00000000 00000000 c04489c3 00000000 c0a04048 00000000 c044766f [ 17.912750] fce0: cd49a254 ce09f1dc ce576ab4 be70958a c0a731c0 cd49a210 c0a73678 c0a04048 [ 17.920959] fd00: cd49a254 c04488fd cd49a210 cd49a210 00000001 be70958a cd49a210 c0a73678 [ 17.929199] fd20: cd49a210 c0a04048 c0a734c8 c0447e2f cd49a210 00000000 c0a731c0 c0446753 [ 17.937408] fd40: ce21be10 00000018 00000000 c03a66b3 c0a04048 be70958a 00000000 cd49a200 [ 17.945617] fd60: 00000000 00000000 ccbe2400 c0a12190 c0a121b0 00000000 c0a731a4 c04497c3 [ 17.953857] fd80: be70958a cd49a200 ce1cfdb0 00000000 ccbe2400 ce21be10 00000018 c0449d9b [ 17.962066] fda0: 00000000 c0a04048 cbb24018 c04325d7 00000000 00000000 00000000 c077a4af [ 17.970306] fdc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 [ 17.978515] fde0: 00000000 00000000 00000018 be70958a cbb24540 cbb24180 cbb24018 00000002 [ 17.986755] fe00: cbbeadc0 c0444251 c0a731b8 cbb24180 c0a731a4 ce21be10 c06632fc ce21be00 [ 17.994964] fe20: c0a04048 ce21be00 cfcac160 c0444589 c0666cb0 c06632fc cbbeadc0 00000000 [ 18.003204] fe40: ccbe2400 ce21be10 00000002 c0432c39 cbbeadc0 ce21be10 ce1cfe50 be70958a [ 18.011413] fe60: c0a726dc 00000000 ce21be10 c0a726dc c0af3c20 00000000 c0a726dc 00000043 [ 18.019653] fe80: c0a91e94 c044990b ce21be10 00000000 c0af3c28 c04487bf ce21be10 c0a726dc [ 18.027862] fea0: ce1cfef4 c0448a31 00000001 00000000 c0a73430 c04489c3 00000000 c0a04048 [ 18.036071] fec0: 00000000 c044766f ce21be54 ce09f1dc ce3ba4b4 be70958a c0a91e94 ce21be10 [ 18.044311] fee0: c0a73678 c0a04048 ce21be54 c04488fd ce21be10 ce21be10 00000001 be70958a [ 18.052520] ff00: c0a73400 c0a73678 ce21be10 cfc74200 00000000 c0447e2f c0a73400 ce21be10 [ 18.060760] ff20: c0a73444 c04482f7 ce1ae400 c0a7342c c0a13e5c c01271e5 ce1ae400 c0a7342c [ 18.068969] ff40: ffff2126 ce1ae400 ce1ae414 c0a13e5c c0a91878 c0a1c4a0 c0a13e70 c0a970e8 [ 18.077209] ff60: 00000000 c012758b 00000000 ce1b8a40 ce1b8a00 ce1ce000 c012743d ce1ae400 [ 18.085418] ff80: ce0c5ec0 ce1b8a60 00000000 c012ae47 ce1b8a00 c012ad89 00000000 00000000 [ 18.093658] ffa0: 00000000 00000000 00000000 c0100159 00000000 00000000 00000000 00000000 [ 18.101867] ffc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 [ 18.110076] ffe0: 00000000 00000000 00000000 00000000 00000013 00000000 00000000 00000000 [ 18.118316] (omap_gem_dma_sync_buffer) from omap_framebuffer_pin (/home/user/git/linux-omap/drivers/gpu/drm/omapdrm/omap_fb.c:237 (discriminator 2)) [ 18.127685] (omap_framebuffer_pin) from drm_atomic_helper_prepare_planes (/home/user/git/linux-omap/drivers/gpu/drm/drm_atomic_helper.c:2401 /home/user/git/linux-omap/drivers/gpu/drm/drm_atomic_helper.c:2376) [ 18.137756] (drm_atomic_helper_prepare_planes) from drm_atomic_helper_commit (/home/user/git/linux-omap/drivers/gpu/drm/drm_atomic_helper.c:1820 /home/user/git/linux-omap/drivers/gpu/drm/drm_atomic_helper.c:1796) [ 18.148162] (drm_atomic_helper_commit) from drm_client_modeset_commit_atomic (/home/user/git/linux-omap/./arch/arm/include/asm/atomic.h:224 /home/user/git/linux-omap/./include/linux/atomic-fallback.h:276 /home/user/git/linux-omap/./include/linux/refcount.h:266 /home/user/git/linux-omap/./include/linux/refcount.h:294 /home/user/git/linux-omap/./include/linux/kref.h:64 /home/user/git/linux-omap/./include/drm/drm_atomic.h:437 /home/user/git/linux-omap/drivers/gpu/drm/drm_client_modeset.c:1048) [ 18.158660] (drm_client_modeset_commit_atomic) from drm_client_modeset_commit_locked (/home/user/git/linux-omap/drivers/gpu/drm/drm_client_modeset.c:1148) [ 18.169769] (drm_client_modeset_commit_locked) from drm_client_modeset_commit (/home/user/git/linux-omap/drivers/gpu/drm/drm_client_modeset.c:1173) [ 18.180267] (drm_client_modeset_commit) from __drm_fb_helper_restore_fbdev_mode_unlocked (/home/user/git/linux-omap/drivers/gpu/drm/drm_fb_helper.c:238) [ 18.191741] (__drm_fb_helper_restore_fbdev_mode_unlocked) from drm_fb_helper_set_par (/home/user/git/linux-omap/drivers/gpu/drm/drm_fb_helper.c:1344) [ 18.202819] (drm_fb_helper_set_par) from fbcon_init (/home/user/git/linux-omap/drivers/video/fbdev/core/fbcon.c:1141) [ 18.211242] (fbcon_init) from visual_init (/home/user/git/linux-omap/drivers/tty/vt/vt.c:1075) [ 18.218597] (visual_init) from do_bind_con_driver (/home/user/git/linux-omap/drivers/tty/vt/vt.c:3659) [ 18.226837] (do_bind_con_driver) from do_take_over_console (/home/user/git/linux-omap/drivers/tty/vt/vt.c:4241) [ 18.235748] (do_take_over_console) from do_fbcon_takeover (/home/user/git/linux-omap/drivers/video/fbdev/core/fbcon.c:566) [ 18.244506] (do_fbcon_takeover) from register_framebuffer (/home/user/git/linux-omap/./include/linux/fb.h:641 /home/user/git/linux-omap/drivers/video/fbdev/core/fbmem.c:1661 /home/user/git/linux-omap/drivers/video/fbdev/core/fbmem.c:1828) [ 18.253417] (register_framebuffer) from __drm_fb_helper_initial_config_and_unlock (/home/user/git/linux-omap/drivers/gpu/drm/drm_fb_helper.c:1823) [ 18.264434] (__drm_fb_helper_initial_config_and_unlock) from omap_fbdev_init (/home/user/git/linux-omap/drivers/gpu/drm/omapdrm/omap_fbdev.c:258) [ 18.274841] (omap_fbdev_init) from pdev_probe (/home/user/git/linux-omap/drivers/gpu/drm/omapdrm/omap_drv.c:826 /home/user/git/linux-omap/drivers/gpu/drm/omapdrm/omap_drv.c:902) [ 18.282745] (pdev_probe) from platform_drv_probe (/home/user/git/linux-omap/drivers/base/platform.c:748) [ 18.290710] (platform_drv_probe) from really_probe (/home/user/git/linux-omap/drivers/base/dd.c:562) [ 18.299011] (really_probe) from driver_probe_device (/home/user/git/linux-omap/drivers/base/dd.c:738) [ 18.307250] (driver_probe_device) from bus_for_each_drv (/home/user/git/linux-omap/drivers/base/bus.c:431) [ 18.315826] (bus_for_each_drv) from __device_attach (/home/user/git/linux-omap/drivers/base/dd.c:914) [ 18.324035] (__device_attach) from bus_probe_device (/home/user/git/linux-omap/drivers/base/bus.c:493) [ 18.332275] (bus_probe_device) from device_add (/home/user/git/linux-omap/drivers/base/core.c:2927) [ 18.340240] (device_add) from platform_device_add (/home/user/git/linux-omap/drivers/base/platform.c:598 (discriminator 3)) [ 18.348358] (platform_device_add) from platform_device_register_full (/home/user/git/linux-omap/drivers/base/platform.c:721) [ 18.358093] (platform_device_register_full) from dss_bind (/home/user/git/linux-omap/drivers/gpu/drm/omapdrm/dss/dss.c:1319) [ 18.366821] (dss_bind) from try_to_bring_up_master (/home/user/git/linux-omap/drivers/base/component.c:257 /home/user/git/linux-omap/drivers/base/component.c:234) [ 18.374969] (try_to_bring_up_master) from component_master_add_with_match (/home/user/git/linux-omap/drivers/base/component.c:494 /home/user/git/linux-omap/drivers/base/component.c:467) [ 18.385101] (component_master_add_with_match) from dss_probe (/home/user/git/linux-omap/drivers/gpu/drm/omapdrm/dss/dss.c:1506) [ 18.394287] (dss_probe) from platform_drv_probe (/home/user/git/linux-omap/drivers/base/platform.c:748) [ 18.402160] (platform_drv_probe) from really_probe (/home/user/git/linux-omap/drivers/base/dd.c:562) [ 18.410491] (really_probe) from driver_probe_device (/home/user/git/linux-omap/drivers/base/dd.c:738) [ 18.418701] (driver_probe_device) from bus_for_each_drv (/home/user/git/linux-omap/drivers/base/bus.c:431) [ 18.427276] (bus_for_each_drv) from __device_attach (/home/user/git/linux-omap/drivers/base/dd.c:914) [ 18.435516] (__device_attach) from bus_probe_device (/home/user/git/linux-omap/drivers/base/bus.c:493) [ 18.443725] (bus_probe_device) from deferred_probe_work_func (/home/user/git/linux-omap/drivers/base/dd.c:116) [ 18.452758] (deferred_probe_work_func) from process_one_work (/home/user/git/linux-omap/./include/linux/jump_label.h:254 /home/user/git/linux-omap/./include/linux/jump_label.h:264 /home/user/git/linux-omap/./include/trace/events/workqueue.h:108 /home/user/git/linux-omap/kernel/workqueue.c:2274) [ 18.461853] (process_one_work) from worker_thread (/home/user/git/linux-omap/kernel/workqueue.c:2416) [ 18.470092] (worker_thread) from kthread (/home/user/git/linux-omap/kernel/kthread.c:292) [ 18.477355] (kthread) from ret_from_fork (/home/user/git/linux-omap/arch/arm/kernel/entry-common.S:156) [ 18.484588] Exception stack(0xce1cffb0 to 0xce1cfff8) [ 18.489685] ffa0: 00000000 00000000 00000000 00000000 [ 18.497894] ffc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 [ 18.506103] ffe0: 00000000 00000000 00000000 00000000 00000013 00000000 [ 18.512786] Code: f8d4 30f4 ea4f 0b86 (f853) 2026 All code ======== 0: d4 (bad) 1: f8 clc 2: f4 hlt 3: 30 4f ea xor %cl,-0x16(%rdi) 6: 86 0b xchg %cl,(%rbx) 8:* 53 push %rbx <-- trapping instruction 9: f8 clc a: 26 es b: 20 .byte 0x20
Code starting with the faulting instruction =========================================== 0: 53 push %rbx 1: f8 clc 2: 26 es 3: 20 .byte 0x20
Ivo
On 27/11/2020 01:17, Ivaylo Dimitrov wrote:
Hi Tomi,
On 26.11.20 г. 16:11 ч., Tomi Valkeinen wrote:
Hi Aaro, Ivaylo,
On 24/11/2020 23:03, Ivaylo Dimitrov wrote:
Is there any progress on the issue? I tried 5.9.1 and still nothing displayed.
Can you test the attached patch?
With this patch I don't see oops that Aaro reported, so:
Tested-by: Ivaylo Dimitrov ivo.g.dimitrov.75@gmail.com
Seems to fix the particular issue, however, now we get another oops. As this is not upstream kernel but one with PVR related patches, I will try again with vanilla 5.9.
Just in case oops rings any bells (the line in question is https://github.com/maemo-leste/droid4-linux/blob/maemo-5.9/drivers/gpu/drm/o...)
Do the PVR patches touch omapdrm? The call stack looks like normal boot time probing stuff, not something happening later (possibly from PVR).
Tomi
On 27.11.20 г. 13:45 ч., Tomi Valkeinen wrote:
On 27/11/2020 01:17, Ivaylo Dimitrov wrote:
Hi Tomi,
On 26.11.20 г. 16:11 ч., Tomi Valkeinen wrote:
Hi Aaro, Ivaylo,
On 24/11/2020 23:03, Ivaylo Dimitrov wrote:
Is there any progress on the issue? I tried 5.9.1 and still nothing displayed.
Can you test the attached patch?
With this patch I don't see oops that Aaro reported, so:
Tested-by: Ivaylo Dimitrov ivo.g.dimitrov.75@gmail.com
Seems to fix the particular issue, however, now we get another oops. As this is not upstream kernel but one with PVR related patches, I will try again with vanilla 5.9.
Just in case oops rings any bells (the line in question is https://github.com/maemo-leste/droid4-linux/blob/maemo-5.9/drivers/gpu/drm/o...)
Do the PVR patches touch omapdrm? The call stack looks like normal boot time probing stuff, not something happening later (possibly from PVR).
pvr driver is not even enabled in that particular config, however, I see "HACK: drm/omap: Add omapdrm plugin API" patch in the tree that touches omap-gem.c, I don't really want to just create some noise for problems that are created by out-of-tree patches. And yeah, it looks like a normal boot time probing stuff. As soon as I have some spare time (hopefully later today) I will try vanilla 5.9.x with omap2plus_defconfig and will report.
Ivo
Hi,
On 27.11.20 г. 15:10 ч., Ivaylo Dimitrov wrote:
On 27.11.20 г. 13:45 ч., Tomi Valkeinen wrote:
On 27/11/2020 01:17, Ivaylo Dimitrov wrote:
Hi Tomi,
On 26.11.20 г. 16:11 ч., Tomi Valkeinen wrote:
Hi Aaro, Ivaylo,
On 24/11/2020 23:03, Ivaylo Dimitrov wrote:
Is there any progress on the issue? I tried 5.9.1 and still nothing displayed.
Can you test the attached patch?
With this patch I don't see oops that Aaro reported, so:
Tested-by: Ivaylo Dimitrov ivo.g.dimitrov.75@gmail.com
Seems to fix the particular issue, however, now we get another oops. As this is not upstream kernel but one with PVR related patches, I will try again with vanilla 5.9.
Just in case oops rings any bells (the line in question is https://github.com/maemo-leste/droid4-linux/blob/maemo-5.9/drivers/gpu/drm/o...)
Do the PVR patches touch omapdrm? The call stack looks like normal boot time probing stuff, not something happening later (possibly from PVR).
pvr driver is not even enabled in that particular config, however, I see "HACK: drm/omap: Add omapdrm plugin API" patch in the tree that touches omap-gem.c, I don't really want to just create some noise for problems that are created by out-of-tree patches. And yeah, it looks like a normal boot time probing stuff. As soon as I have some spare time (hopefully later today) I will try vanilla 5.9.x with omap2plus_defconfig and will report.
With 5.9.11 and the patch on top, n900 boots fine, albeit display remains blank, could be related to brightness, we're still investigating.
Thanks and regards, Ivo
On 27/11/2020 17:37, Ivaylo Dimitrov wrote:
With 5.9.11 and the patch on top, n900 boots fine, albeit display remains blank, could be related to brightness, we're still investigating.
Ok. A DSS regdump for a working version and the latest one would be good too. There's a omapdss debugfs dir, with dss, dispc and clk files which are of interest here.
Tomi
Hi,
On 27.11.20 г. 19:30 ч., Tomi Valkeinen wrote:
On 27/11/2020 17:37, Ivaylo Dimitrov wrote:
With 5.9.11 and the patch on top, n900 boots fine, albeit display remains blank, could be related to brightness, we're still investigating.
Ok. A DSS regdump for a working version and the latest one would be good too. There's a omapdss debugfs dir, with dss, dispc and clk files which are of interest here.
It turned out to be a long standing bug in the panel driver, with the bellow fix it works fine:
diff --git a/drivers/gpu/drm/panel/panel-sony-acx565akm.c b/drivers/gpu/drm/panel/panel-sony-acx565akm.c index fc6a7e451abe..304267f7849a --- a/drivers/gpu/drm/panel/panel-sony-acx565akm.c +++ b/drivers/gpu/drm/panel/panel-sony-acx565akm.c @@ -629,7 +629,7 @@ static int acx565akm_probe(struct spi_device *spi) lcd->spi = spi; mutex_init(&lcd->mutex);
- lcd->reset_gpio = devm_gpiod_get(&spi->dev, "reset", GPIOD_OUT_LOW); + lcd->reset_gpio = devm_gpiod_get(&spi->dev, "reset", GPIOD_OUT_HIGH); if (IS_ERR(lcd->reset_gpio)) { dev_err(&spi->dev, "failed to get reset GPIO\n"); return PTR_ERR(lcd->reset_gpio);
Proper patch will follow.
Thanks, Ivo
Hi Ivaylo,
Am 27.11.2020 um 19:44 schrieb Ivaylo Dimitrov ivo.g.dimitrov.75@gmail.com:
Hi,
On 27.11.20 г. 19:30 ч., Tomi Valkeinen wrote:
On 27/11/2020 17:37, Ivaylo Dimitrov wrote:
With 5.9.11 and the patch on top, n900 boots fine, albeit display remains blank, could be related to brightness, we're still investigating.
Ok. A DSS regdump for a working version and the latest one would be good too. There's a omapdss debugfs dir, with dss, dispc and clk files which are of interest here.
It turned out to be a long standing bug in the panel driver, with the bellow fix it works fine:
diff --git a/drivers/gpu/drm/panel/panel-sony-acx565akm.c b/drivers/gpu/drm/panel/panel-sony-acx565akm.c index fc6a7e451abe..304267f7849a --- a/drivers/gpu/drm/panel/panel-sony-acx565akm.c +++ b/drivers/gpu/drm/panel/panel-sony-acx565akm.c @@ -629,7 +629,7 @@ static int acx565akm_probe(struct spi_device *spi) lcd->spi = spi; mutex_init(&lcd->mutex);
lcd->reset_gpio = devm_gpiod_get(&spi->dev, "reset", GPIOD_OUT_LOW);
lcd->reset_gpio = devm_gpiod_get(&spi->dev, "reset", GPIOD_OUT_HIGH); if (IS_ERR(lcd->reset_gpio)) { dev_err(&spi->dev, "failed to get reset GPIO\n"); return PTR_ERR(lcd->reset_gpio);
Proper patch will follow.
I just found another issue which seems to hit a handful of SPI based panel drivers, for example the panel-tpo-td028ttec1.
It is commit
766c6b63aa04 ("spi: fix client driver breakages when using GPIO descriptors")
which breaks our DM3730 based GTA04 panel drivers/gpu/drm/panel/panel-tpo-td028ttec1.c. It may also affect other SPI based drivers if they are operated though spi-gpio (I would have to look up the N900 hardware setup).
BR, Nikolaus
On Tue, Aug 25, 2020 at 3:16 PM Tomi Valkeinen tomi.valkeinen@ti.com wrote:
Hi Laurent,
On 23/08/2020 19:26, Aaro Koskinen wrote:
Hi,
On Tue, Aug 04, 2020 at 03:39:37PM +0300, Tomi Valkeinen wrote:
On 04/08/2020 15:13, Tomi Valkeinen wrote:
Can you try to pinpoint a bit where the hang happens? Maybe add DRM/omapdrm debug prints, or perhaps sysrq works and it shows a lock that's in deadlock.
Also, one data point would be to disable venc, e.g. set venc status to "disabled" in dts.
Disabling venc makes no difference.
The hang happens in drm_fb_helper_initial_config(). I followed the "HANG DEBUGGING" tips in the function comment text and enabled fb.lockless_register_fb=1 to get more (serial) console output.
Now I get this:
[ 6.514739] omapdss_dss 48050000.dss: supply vdda_video not found, using dummy regulator [ 6.566375] DSS: OMAP DSS rev 2.0 [ 6.571807] omapdss_dss 48050000.dss: bound 48050400.dispc (ops dispc_component_ops) [ 6.580749] omapdrm omapdrm.0: DMM not available, disable DMM support [ 6.587982] [drm] Supports vblank timestamp caching Rev 2 (21.10.2013). [ 6.626617] ------------[ cut here ]------------ [ 6.631774] WARNING: CPU: 0 PID: 18 at drivers/gpu/drm/drm_bridge.c:708 drm_atomic_helper_commit_modeset_enables+0x134/0x268 [ 6.643768] Modules linked in: [ 6.647033] CPU: 0 PID: 18 Comm: kworker/0:1 Tainted: G U 5.8.0-omap3-los_16068+-00004-g2e7d4a7efefd-dirty #2 [ 6.658966] Hardware name: Nokia RX-51 board [ 6.663635] Workqueue: events deferred_probe_work_func [ 6.669097] [<c010bf18>] (unwind_backtrace) from [<c010a0f4>] (show_stack+0x10/0x14) [ 6.677429] [<c010a0f4>] (show_stack) from [<c0124f18>] (__warn+0xbc/0xd4) [ 6.684844] [<c0124f18>] (__warn) from [<c0124f90>] (warn_slowpath_fmt+0x60/0xb8) [ 6.692901] [<c0124f90>] (warn_slowpath_fmt) from [<c040c0e8>] (drm_atomic_helper_commit_modeset_enables+0x134/0x268) [ 6.704254] [<c040c0e8>] (drm_atomic_helper_commit_modeset_enables) from [<c045442c>] (omap_atomic_commit_tail+0xb4/0xc0) [ 6.715972] [<c045442c>] (omap_atomic_commit_tail) from [<c040d1b4>] (commit_tail+0x9c/0x1a8) [ 6.725128] [<c040d1b4>] (commit_tail) from [<c040de70>] (drm_atomic_helper_commit+0x134/0x158) [ 6.734466] [<c040de70>] (drm_atomic_helper_commit) from [<c043b204>] (drm_client_modeset_commit_atomic+0x16c/0x208) [ 6.745727] [<c043b204>] (drm_client_modeset_commit_atomic) from [<c043b2f8>] (drm_client_modeset_commit_locked+0x58/0x184) [ 6.757629] [<c043b2f8>] (drm_client_modeset_commit_locked) from [<c043b448>] (drm_client_modeset_commit+0x24/0x40) [ 6.768798] [<c043b448>] (drm_client_modeset_commit) from [<c0412778>] (__drm_fb_helper_restore_fbdev_mode_unlocked+0xa0/0xc8) [ 6.780975] [<c0412778>] (__drm_fb_helper_restore_fbdev_mode_unlocked) from [<c0412808>] (drm_fb_helper_set_par+0x38/0x64) [ 6.792785] [<c0412808>] (drm_fb_helper_set_par) from [<c03a9b24>] (fbcon_init+0x3d4/0x568) [ 6.801757] [<c03a9b24>] (fbcon_init) from [<c03eaab0>] (visual_init+0xb8/0xfc) [ 6.809631] [<c03eaab0>] (visual_init) from [<c03ec070>] (do_bind_con_driver+0x1e0/0x3bc) [ 6.818267] [<c03ec070>] (do_bind_con_driver) from [<c03ec59c>] (do_take_over_console+0x138/0x1d8) [ 6.827880] [<c03ec59c>] (do_take_over_console) from [<c03a856c>] (do_fbcon_takeover+0x74/0xd4) [ 6.837219] [<c03a856c>] (do_fbcon_takeover) from [<c03a22e0>] (register_framebuffer+0x204/0x2d8) [ 6.846740] [<c03a22e0>] (register_framebuffer) from [<c0412228>] (__drm_fb_helper_initial_config_and_unlock+0x3a4/0x554) [ 6.858459] [<c0412228>] (__drm_fb_helper_initial_config_and_unlock) from [<c045c230>] (omap_fbdev_init+0x84/0xbc) [ 6.869537] [<c045c230>] (omap_fbdev_init) from [<c04549b8>] (pdev_probe+0x580/0x7d8) [ 6.877807] [<c04549b8>] (pdev_probe) from [<c04669b4>] (platform_drv_probe+0x48/0x98)
Laurent, does this ring any bells? The WARN comes in drm_atomic_bridge_chain_enable() when drm_atomic_get_old_bridge_state() returns null for (presumably) sdi bridge.
I'm not sure why the bridge state would not be there.
Lack of state on first modeset usually means your drm_mode_config_reset didn't create one. Or whatever it is you're using. I didn't look whether you're wiring this up correctly or not. We might even want to add a ->reset function to drm_private_state_funcs to make this work for everyone. -Daniel
Aaro, you can probably debug easier if you disable CONFIG_FRAMEBUFFER_CONSOLE, or even CONFIG_DRM_FBDEV_EMULATION.
Tomi
-- Texas Instruments Finland Oy, Porkkalankatu 22, 00180 Helsinki. Y-tunnus/Business ID: 0615521-4. Kotipaikka/Domicile: Helsinki _______________________________________________ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel
On 25/11/2020 11:07, Daniel Vetter wrote:
Laurent, does this ring any bells? The WARN comes in drm_atomic_bridge_chain_enable() when drm_atomic_get_old_bridge_state() returns null for (presumably) sdi bridge.
I'm not sure why the bridge state would not be there.
Lack of state on first modeset usually means your drm_mode_config_reset didn't create one. Or whatever it is you're using. I didn't look whether you're wiring this up correctly or not. We might even want to add a ->reset function to drm_private_state_funcs to make this work for everyone.
The bridge driver set atomic_enable and atomic_disable, but no other atomic funcs. It was supposed to set the legacy enable & disable.
Tomi
dri-devel@lists.freedesktop.org