Tomasz Figa
2018-11-27 09:11:23 UTC
Hi Johan,
Adding the dri-devel mailing lists and some maintainers.
vblank counter and the code that you refer to is designed for this
limitation in particular. I suspect the problem you're seeing is
unrelated.
https://elixir.bootlin.com/linux/latest/source/arch/arm/boot/dts/rk3066a-mk808.dts
Do you have any local changes in your kernel sources?
Best regards,
Tomasz
Adding the dri-devel mailing lists and some maintainers.
For a TV stick called MK808 with rk3066 processor I would like to enable
the VOP and HDMI.
With boot logo and console enabled I can see 2 pinguins and a cursor for
a second and then the display is black.
From a internet search I learned that the rk3066 doesn't support a
vblank counter.
Yet they have replaced the Rockchip custom wait_for_vblanks with a drm
helper.
All of the Rockchip SoCs supported by the upstream driver lack athe VOP and HDMI.
With boot logo and console enabled I can see 2 pinguins and a cursor for
a second and then the display is black.
From a internet search I learned that the rk3066 doesn't support a
vblank counter.
Yet they have replaced the Rockchip custom wait_for_vblanks with a drm
helper.
vblank counter and the code that you refer to is designed for this
limitation in particular. I suspect the problem you're seeing is
unrelated.
-Did anyone test this convert on a rk3066?
Not sure. I have tested internally on RK3399.-Can someone with more knowledge explane what happens in this crash
rapport below.
To me, it looks like the vblank interruptrapport below.
-Can this be fixed?
Very likely. :)Please contact if more info is needed.
I don't see display support enabled in the rk3066-mk808.dts in latest upstream:https://elixir.bootlin.com/linux/latest/source/arch/arm/boot/dts/rk3066a-mk808.dts
Do you have any local changes in your kernel sources?
Best regards,
Tomasz
Kind regards,
Johan Jonker
///////////////////////////////////////////
-drm/rockchip: Replace custom wait_for_vblanks with helper
https://patchwork.kernel.org/patch/9331351/
-drm/rockchip: don't wait for vblank if fb hasn't changed
https://patchwork.kernel.org/patch/8024741/
-explain why we can't wait_for_vblanks
https://lore.kernel.org/patchwork/patch/635586/
-drm/rockchip: Convert to support atomic API
https://patchwork.kernel.org/patch/7732341/
-drm/rockchip: Convert to support atomic API
https://patchwork.kernel.org/patch/7868601/
https://lkml.org/lkml/2017/9/4/251
//////////////////////////////////////////
[ 0.897682] [drm] Supports vblank timestamp caching Rev 2 (21.10.2013).
[ 0.904616] [drm] No driver support for vblank timestamp query.
htotal 1650, vtotal 750, vdisplay 720
[ 1.440212] [drm:drm_calc_timestamping_constants] crtc 30: clock
74250 kHz framedur 16666666 linedur 22222
[ 1.440307] [drm:drm_crtc_vblank_on] crtc 0, vblank enabled 0,
inmodeset 0
[ 1.451189] [drm:drm_vblank_enable] enabling vblank on crtc 0, ret: 0
[ 1.451202] [drm:drm_update_vblank_count] updating vblank count on
crtc 0: current=1, diff=0, hw=0 hw_last=0
.
.
.
.
[ 4.303883] [drm:drm_update_vblank_count] updating vblank count on
crtc 0: current=113, diff=1, hw=0 hw_last=0
[ 4.304140] Warning: unable to open an initial console.
[ 6.777825] ------------[ cut here ]------------
[ 6.786554] WARNING: CPU: 0 PID: 19 at
drivers/gpu/drm/drm_atomic_helper.c:1406
drm_atomic_helper_wait_for_vblanks.part.1+0x298/0x2a0
[ 6.800803] [CRTC:30:crtc-0] vblank wait timed out
[ 6.810317] CPU: 0 PID: 19 Comm: kworker/0:1 Not tainted
4.20.0-rc1-g0d694f0b3-dirty #19
[ 6.819938] Hardware name: Rockchip (Device Tree)
[ 6.825498] Workqueue: events output_poll_execute
[ 6.831062] [<c01104a0>] (unwind_backtrace) from [<c010c868>]
(show_stack+0x10/0x14)
[ 6.840191] [<c010c868>] (show_stack) from [<c069e538>]
(dump_stack+0x88/0x9c)
[ 6.848729] [<c069e538>] (dump_stack) from [<c0122784>]
(__warn+0xf8/0x110)
[ 6.856936] [<c0122784>] (__warn) from [<c01227e4>]
(warn_slowpath_fmt+0x48/0x6c)
[ 6.873544] [<c01227e4>] (warn_slowpath_fmt) from [<c0445b04>]
(drm_atomic_helper_wait_for_vblanks.part.1+0x298/0x2a0)
[ 6.886148] [<c0445b04>] (drm_atomic_helper_wait_for_vblanks.part.1)
from [<c0477fec>] (rockchip_atomic_helper_commit_tail_rpm+0x17c/0x194)
[ 6.900896] [<c0477fec>] (rockchip_atomic_helper_commit_tail_rpm)
from [<c0447418>] (commit_tail+0x40/0x6c)
[ 6.912370] [<c0447418>] (commit_tail) from [<c0447508>]
(drm_atomic_helper_commit+0xbc/0x128)
[ 6.922515] [<c0447508>] (drm_atomic_helper_commit) from [<c0449b38>]
(restore_fbdev_mode_atomic+0x1cc/0x1dc)
[ 6.934196] [<c0449b38>] (restore_fbdev_mode_atomic) from
[<c044d34c>] (drm_fb_helper_restore_fbdev_mode_unlocked+0x54/0xa0)
[ 6.947410] [<c044d34c>] (drm_fb_helper_restore_fbdev_mode_unlocked)
from [<c044d3c8>] (drm_fb_helper_set_par+0x30/0x54)
[ 6.960213] [<c044d3c8>] (drm_fb_helper_set_par) from [<c044d2b4>]
(drm_fb_helper_hotplug_event.part.9+0x90/0xa8)
[ 6.972305] [<c044d2b4>] (drm_fb_helper_hotplug_event.part.9) from
[<c043cd70>] (drm_kms_helper_hotplug_event+0x24/0x30)
[ 6.985108] [<c043cd70>] (drm_kms_helper_hotplug_event) from
[<c043cf30>] (output_poll_execute+0x188/0x1a0)
[ 6.996583] [<c043cf30>] (output_poll_execute) from [<c013bc68>]
(process_one_work+0x218/0x508)
[ 7.006829] [<c013bc68>] (process_one_work) from [<c013ca9c>]
(worker_thread+0x30/0x59c)
[ 7.016360] [<c013ca9c>] (worker_thread) from [<c01415b0>]
(kthread+0x124/0x154)
[ 7.025073] [<c01415b0>] (kthread) from [<c01010e8>]
(ret_from_fork+0x14/0x2c)
[ 7.033567] Exception stack(0xeea3dfb0 to 0xeea3dff8)
[ 7.039514] dfa0: 00000000
00000000 00000000 00000000
[ 7.049145] dfc0: 00000000 00000000 00000000 00000000 00000000
00000000 00000000 00000000
[ 7.058774] dfe0: 00000000 00000000 00000000 00000000 00000013 00000000
[ 7.066677] ---[ end trace aaf7d2040cebe21e ]---
Johan Jonker
///////////////////////////////////////////
-drm/rockchip: Replace custom wait_for_vblanks with helper
https://patchwork.kernel.org/patch/9331351/
-drm/rockchip: don't wait for vblank if fb hasn't changed
https://patchwork.kernel.org/patch/8024741/
-explain why we can't wait_for_vblanks
https://lore.kernel.org/patchwork/patch/635586/
-drm/rockchip: Convert to support atomic API
https://patchwork.kernel.org/patch/7732341/
-drm/rockchip: Convert to support atomic API
https://patchwork.kernel.org/patch/7868601/
https://lkml.org/lkml/2017/9/4/251
//////////////////////////////////////////
[ 0.897682] [drm] Supports vblank timestamp caching Rev 2 (21.10.2013).
[ 0.904616] [drm] No driver support for vblank timestamp query.
htotal 1650, vtotal 750, vdisplay 720
[ 1.440212] [drm:drm_calc_timestamping_constants] crtc 30: clock
74250 kHz framedur 16666666 linedur 22222
[ 1.440307] [drm:drm_crtc_vblank_on] crtc 0, vblank enabled 0,
inmodeset 0
[ 1.451189] [drm:drm_vblank_enable] enabling vblank on crtc 0, ret: 0
[ 1.451202] [drm:drm_update_vblank_count] updating vblank count on
crtc 0: current=1, diff=0, hw=0 hw_last=0
.
.
.
.
[ 4.303883] [drm:drm_update_vblank_count] updating vblank count on
crtc 0: current=113, diff=1, hw=0 hw_last=0
[ 4.304140] Warning: unable to open an initial console.
[ 6.777825] ------------[ cut here ]------------
[ 6.786554] WARNING: CPU: 0 PID: 19 at
drivers/gpu/drm/drm_atomic_helper.c:1406
drm_atomic_helper_wait_for_vblanks.part.1+0x298/0x2a0
[ 6.800803] [CRTC:30:crtc-0] vblank wait timed out
[ 6.810317] CPU: 0 PID: 19 Comm: kworker/0:1 Not tainted
4.20.0-rc1-g0d694f0b3-dirty #19
[ 6.819938] Hardware name: Rockchip (Device Tree)
[ 6.825498] Workqueue: events output_poll_execute
[ 6.831062] [<c01104a0>] (unwind_backtrace) from [<c010c868>]
(show_stack+0x10/0x14)
[ 6.840191] [<c010c868>] (show_stack) from [<c069e538>]
(dump_stack+0x88/0x9c)
[ 6.848729] [<c069e538>] (dump_stack) from [<c0122784>]
(__warn+0xf8/0x110)
[ 6.856936] [<c0122784>] (__warn) from [<c01227e4>]
(warn_slowpath_fmt+0x48/0x6c)
[ 6.873544] [<c01227e4>] (warn_slowpath_fmt) from [<c0445b04>]
(drm_atomic_helper_wait_for_vblanks.part.1+0x298/0x2a0)
[ 6.886148] [<c0445b04>] (drm_atomic_helper_wait_for_vblanks.part.1)
from [<c0477fec>] (rockchip_atomic_helper_commit_tail_rpm+0x17c/0x194)
[ 6.900896] [<c0477fec>] (rockchip_atomic_helper_commit_tail_rpm)
from [<c0447418>] (commit_tail+0x40/0x6c)
[ 6.912370] [<c0447418>] (commit_tail) from [<c0447508>]
(drm_atomic_helper_commit+0xbc/0x128)
[ 6.922515] [<c0447508>] (drm_atomic_helper_commit) from [<c0449b38>]
(restore_fbdev_mode_atomic+0x1cc/0x1dc)
[ 6.934196] [<c0449b38>] (restore_fbdev_mode_atomic) from
[<c044d34c>] (drm_fb_helper_restore_fbdev_mode_unlocked+0x54/0xa0)
[ 6.947410] [<c044d34c>] (drm_fb_helper_restore_fbdev_mode_unlocked)
from [<c044d3c8>] (drm_fb_helper_set_par+0x30/0x54)
[ 6.960213] [<c044d3c8>] (drm_fb_helper_set_par) from [<c044d2b4>]
(drm_fb_helper_hotplug_event.part.9+0x90/0xa8)
[ 6.972305] [<c044d2b4>] (drm_fb_helper_hotplug_event.part.9) from
[<c043cd70>] (drm_kms_helper_hotplug_event+0x24/0x30)
[ 6.985108] [<c043cd70>] (drm_kms_helper_hotplug_event) from
[<c043cf30>] (output_poll_execute+0x188/0x1a0)
[ 6.996583] [<c043cf30>] (output_poll_execute) from [<c013bc68>]
(process_one_work+0x218/0x508)
[ 7.006829] [<c013bc68>] (process_one_work) from [<c013ca9c>]
(worker_thread+0x30/0x59c)
[ 7.016360] [<c013ca9c>] (worker_thread) from [<c01415b0>]
(kthread+0x124/0x154)
[ 7.025073] [<c01415b0>] (kthread) from [<c01010e8>]
(ret_from_fork+0x14/0x2c)
[ 7.033567] Exception stack(0xeea3dfb0 to 0xeea3dff8)
[ 7.039514] dfa0: 00000000
00000000 00000000 00000000
[ 7.049145] dfc0: 00000000 00000000 00000000 00000000 00000000
00000000 00000000 00000000
[ 7.058774] dfe0: 00000000 00000000 00000000 00000000 00000013 00000000
[ 7.066677] ---[ end trace aaf7d2040cebe21e ]---