drm: Bogus WARN() in drm_atomic_helper_update_legacy_modeset_state() ?
Mark yao
mark.yao at rock-chips.com
Wed Nov 11 22:34:57 PST 2015
On 2015年11月12日 14:27, Mark yao wrote:
> On 2015年11月11日 00:56, Thierry Reding wrote:
>> On Tue, Nov 10, 2015 at 03:01:03PM +0000, Liviu Dudau wrote:
>>> Hello,
>>>
>>> When booting my Juno board with the HDLCD driver that I have converted to
>>> atomic operations I'm getting the following warning:
>> Perhaps you can provide pointers to the source code, that might make it
>> easier for people to spot what's going wrong.
>>
>> Thierry
>>
>>
>> _______________________________________________
>> dri-devel mailing list
>> dri-devel at lists.freedesktop.org
>> http://lists.freedesktop.org/mailman/listinfo/dri-devel
> Hi Thierry
> I encountered the same problem as Liviu.
> I'm coverting rockchip drm to atomic api, when booting with hdmi
> connected, get under warning:
>
> [ 1.300156] WARNING: CPU: 0 PID: 26 at
> drivers/gpu/drm/drm_atomic_helper.c:674
> drm_atomic_helper_update_legacy_modeset_state+0x3c/0x1f8()
> [ 1.300161] Modules linked in:
> [ 1.300171] CPU: 0 PID: 26 Comm: kworker/0:1 Not tainted 4.3.0-rc5+
> #160
> [ 1.300174] Hardware name: Rockchip (Device Tree)
> [ 1.300189] Workqueue: events output_poll_execute
> [ 1.300224] [<c0015e54>] (unwind_backtrace) from [<c00123cc>]
> (show_stack+0x10/0x14)
> [ 1.300241] [<c00123cc>] (show_stack) from [<c01a5980>]
> (dump_stack+0x6c/0x88)
> [ 1.300255] [<c01a5980>] (dump_stack) from [<c0024050>]
> (warn_slowpath_common+0x80/0xa8)
> [ 1.300265] [<c0024050>] (warn_slowpath_common) from [<c0024090>]
> (warn_slowpath_null+0x18/0x1c)
> [ 1.300277] [<c0024090>] (warn_slowpath_null) from [<c0221184>]
> (drm_atomic_helper_update_legacy_modeset_state+0x3c/0x1f8)
> [ 1.300293] [<c0221184>]
> (drm_atomic_helper_update_legacy_modeset_state) from [<c0221548>]
> (drm_atomic_helper_commit_modeset_disables+0x208/0x364)
> [ 1.300305] [<c0221548>]
> (drm_atomic_helper_commit_modeset_disables) from [<c0222248>]
> (drm_atomic_helper_commit+0xf8/0x140)
> [ 1.300320] [<c0222248>] (drm_atomic_helper_commit) from
> [<c02404cc>] (drm_atomic_commit+0x50/0x60)
> [ 1.300333] [<c02404cc>] (drm_atomic_commit) from [<c0223180>]
> (restore_fbdev_mode+0xf4/0x278)
> [ 1.300345] [<c0223180>] (restore_fbdev_mode) from [<c0224164>]
> (drm_fb_helper_restore_fbdev_mode_unlocked+0x30/0x68)
> [ 1.300357] [<c0224164>]
> (drm_fb_helper_restore_fbdev_mode_unlocked) from [<c02241d8>]
> (drm_fb_helper_set_par+0x3c/0x54)
> [ 1.300368] [<c02241d8>] (drm_fb_helper_set_par) from [<c022411c>]
> (drm_fb_helper_hotplug_event+0xe4/0xfc)
> [ 1.300382] [<c022411c>] (drm_fb_helper_hotplug_event) from
> [<c021ade8>] (drm_kms_helper_hotplug_event+0x24/0x28)
> [ 1.300396] [<c021ade8>] (drm_kms_helper_hotplug_event) from
> [<c021af20>] (output_poll_execute+0x134/0x18c)
> [ 1.300413] [<c021af20>] (output_poll_execute) from [<c00377c0>]
> (process_one_work+0x1e0/0x318)
> [ 1.300426] [<c00377c0>] (process_one_work) from [<c0037c70>]
> (worker_thread+0x378/0x4c4)
> [ 1.300438] [<c0037c70>] (worker_thread) from [<c003c69c>]
> (kthread+0xdc/0xf0)
> [ 1.300450] [<c003c69c>] (kthread) from [<c000f5d8>]
> (ret_from_fork+0x14/0x3c)
>
> I can't found who can set encoder->crtc value before atomic_commit,
> what's going wrong?
>
> --
> Mark Yao
Hi
here is the message before warning happen (filtering by "dmesg |
grep drm"), Hope this helps:
[ 1.245700] [drm:drm_minor_register]
[ 1.245925] [drm:drm_minor_register] new minor registered 64
[ 1.245934] [drm:drm_minor_register]
[ 1.245942] [drm:drm_minor_register]
[ 1.246099] [drm:drm_minor_register] new minor registered 0
[ 1.272968] rockchip-drm display-subsystem: bound ff940000.vop (ops
vop_component_ops)
[ 1.294790] rockchip-drm display-subsystem: bound ff930000.vop (ops
vop_component_ops)
[ 1.295086] rockchip-drm display-subsystem: bound ff980000.hdmi (ops
dw_hdmi_rockchip_ops)
[ 1.295218] [drm:drm_sysfs_connector_add] adding "HDMI-A-1" to sysfs
[ 1.295222] [drm:drm_sysfs_hotplug_event] generating hotplug event
[ 1.295268] [drm] Supports vblank timestamp caching Rev 2 (21.10.2013).
[ 1.295270] [drm] No driver support for vblank timestamp query.
[ 1.295290] [drm:drm_helper_probe_single_connector_modes_merge_bits]
[CONNECTOR:29:HDMI-A-1]
[ 1.295304] [drm:drm_helper_probe_single_connector_modes_merge_bits]
[CONNECTOR:29:HDMI-A-1] status updated from 3 to 1
[ 1.295470] [drm:drm_do_probe_ddc_edid] drm: skipping non-existent
adapter rk3x-i2c
[ 1.295513] [drm:drm_mode_debug_printmodeline] Modeline 30:"640x480"
0 25175 640 656 752 800 480 490 492 525 0x40 0xa
[ 1.295518] [drm:drm_mode_prune_invalid] Not using 640x480 mode: BAD
[ 1.295531] [drm:drm_mode_debug_printmodeline] Modeline 33:"848x480"
0 33750 848 864 976 1088 480 486 494 517 0x40 0x5
[ 1.295535] [drm:drm_mode_prune_invalid] Not using 848x480 mode: BAD
[ 1.295543] [drm:drm_helper_probe_single_connector_modes_merge_bits]
[CONNECTOR:29:HDMI-A-1] probed modes :
[ 1.295555] [drm:drm_mode_debug_printmodeline] Modeline 34:"1024x768"
60 65000 1024 1048 1184 1344 768 771 777 806 0x40 0xa
[ 1.295564] [drm:drm_mode_debug_printmodeline] Modeline 32:"800x600"
60 40000 800 840 968 1056 600 601 605 628 0x40 0x5
[ 1.295573] [drm:drm_mode_debug_printmodeline] Modeline 31:"800x600"
56 36000 800 824 896 1024 600 601 603 625 0x40 0x5
[ 1.295581] [drm:drm_setup_crtcs]
[ 1.295594] [drm:drm_enable_connectors] connector 29 enabled? yes
[ 1.295601] [drm:drm_target_preferred] looking for cmdline mode on
connector 29
[ 1.295606] [drm:drm_target_preferred] looking for preferred mode on
connector 29 0
[ 1.295609] [drm:drm_target_preferred] found mode 1024x768
[ 1.295614] [drm:drm_setup_crtcs] picking CRTCs for 4096x4096 config
[ 1.295623] [drm:drm_setup_crtcs] desired mode 1024x768 set on crtc
20 (0,0)
[ 1.299403] [drm:rockchip_drm_fbdev_create] FB [1024x768]-24
kvaddr=f0121000 offset=0 size=3145728
[ 1.299512] [drm:drm_sysfs_hotplug_event] generating hotplug event
[ 1.299540] [drm:drm_fb_helper_hotplug_event]
[ 1.299546] [drm:drm_helper_probe_single_connector_modes_merge_bits]
[CONNECTOR:29:HDMI-A-1]
[ 1.299712] [drm:drm_do_probe_ddc_edid] drm: skipping non-existent
adapter rk3x-i2c
[ 1.299750] [drm:drm_mode_debug_printmodeline] Modeline 35:"640x480"
0 25175 640 656 752 800 480 490 492 525 0x40 0xa
[ 1.299755] [drm:drm_mode_prune_invalid] Not using 640x480 mode: BAD
[ 1.299764] [drm:drm_mode_debug_printmodeline] Modeline 38:"848x480"
0 33750 848 864 976 1088 480 486 494 517 0x40 0x5
[ 1.299769] [drm:drm_mode_prune_invalid] Not using 848x480 mode: BAD
[ 1.299776] [drm:drm_helper_probe_single_connector_modes_merge_bits]
[CONNECTOR:29:HDMI-A-1] probed modes :
[ 1.299786] [drm:drm_mode_debug_printmodeline] Modeline 34:"1024x768"
60 65000 1024 1048 1184 1344 768 771 777 806 0x40 0xa
[ 1.299795] [drm:drm_mode_debug_printmodeline] Modeline 32:"800x600"
60 40000 800 840 968 1056 600 601 605 628 0x40 0x5
[ 1.299804] [drm:drm_mode_debug_printmodeline] Modeline 31:"800x600"
56 36000 800 824 896 1024 600 601 603 625 0x40 0x5
[ 1.299811] [drm:drm_setup_crtcs]
[ 1.299818] [drm:drm_enable_connectors] connector 29 enabled? yes
[ 1.299822] [drm:drm_target_preferred] looking for cmdline mode on
connector 29
[ 1.299827] [drm:drm_target_preferred] looking for preferred mode on
connector 29 0
[ 1.299831] [drm:drm_target_preferred] found mode 1024x768
[ 1.299836] [drm:drm_setup_crtcs] picking CRTCs for 4096x4096 config
[ 1.299842] [drm:drm_setup_crtcs] desired mode 1024x768 set on crtc
20 (0,0)
[ 1.299857] [drm:drm_atomic_state_init] Allocated atomic state ee38ebc0
[ 1.299868] [drm:drm_atomic_get_plane_state] Added [PLANE:18]
ee38eac0 state to ee38ebc0
[ 1.299875] [drm:drm_atomic_get_plane_state] Added [PLANE:19]
ee38ea80 state to ee38ebc0
[ 1.299880] [drm:drm_atomic_set_crtc_for_plane] Link plane state
ee38ea80 to [NOCRTC]
[ 1.299885] [drm:drm_atomic_set_fb_for_plane] Set [NOFB] for plane
state ee38ea80
[ 1.299892] [drm:drm_atomic_get_plane_state] Added [PLANE:21]
ee38ea40 state to ee38ebc0
[ 1.299897] [drm:drm_atomic_set_crtc_for_plane] Link plane state
ee38ea40 to [NOCRTC]
[ 1.299901] [drm:drm_atomic_set_fb_for_plane] Set [NOFB] for plane
state ee38ea40
[ 1.299907] [drm:drm_atomic_get_plane_state] Added [PLANE:22]
ee38ea00 state to ee38ebc0
[ 1.299911] [drm:drm_atomic_set_crtc_for_plane] Link plane state
ee38ea00 to [NOCRTC]
[ 1.299916] [drm:drm_atomic_set_fb_for_plane] Set [NOFB] for plane
state ee38ea00
[ 1.299922] [drm:drm_atomic_get_plane_state] Added [PLANE:23]
ee38e9c0 state to ee38ebc0
[ 1.299929] [drm:drm_atomic_get_plane_state] Added [PLANE:24]
ee38e980 state to ee38ebc0
[ 1.299933] [drm:drm_atomic_set_crtc_for_plane] Link plane state
ee38e980 to [NOCRTC]
[ 1.299937] [drm:drm_atomic_set_fb_for_plane] Set [NOFB] for plane
state ee38e980
[ 1.299943] [drm:drm_atomic_get_plane_state] Added [PLANE:26]
ee38e940 state to ee38ebc0
[ 1.299947] [drm:drm_atomic_set_crtc_for_plane] Link plane state
ee38e940 to [NOCRTC]
[ 1.299951] [drm:drm_atomic_set_fb_for_plane] Set [NOFB] for plane
state ee38e940
[ 1.299958] [drm:drm_atomic_get_plane_state] Added [PLANE:27]
ee38e900 state to ee38ebc0
[ 1.299962] [drm:drm_atomic_set_crtc_for_plane] Link plane state
ee38e900 to [NOCRTC]
[ 1.299966] [drm:drm_atomic_set_fb_for_plane] Set [NOFB] for plane
state ee38e900
[ 1.299975] [drm:drm_atomic_get_crtc_state] Added [CRTC:20] ee340000
state to ee38ebc0
[ 1.299985] [drm:drm_atomic_set_mode_for_crtc] Set [MODE:1024x768]
for CRTC state ee340000
[ 1.299990] [drm:drm_atomic_set_crtc_for_plane] Link plane state
ee38eac0 to [CRTC:20]
[ 1.299995] [drm:drm_framebuffer_reference] ee20f640: FB ID: 33 (1)
[ 1.300000] [drm:drm_atomic_set_fb_for_plane] Set [FB:33] for plane
state ee38eac0
[ 1.300008] [drm:drm_atomic_get_connector_state] Added [CONNECTOR:29]
ee38e8c0 state to ee38ebc0
[ 1.300015] [drm:drm_atomic_add_affected_connectors] Adding all
current connectors for [CRTC:20] to ee38ebc0
[ 1.300021] [drm:drm_atomic_set_crtc_for_connector] Link connector
state ee38e8c0 to [CRTC:20]
[ 1.300033] [drm:drm_atomic_get_crtc_state] Added [CRTC:25] ee393e00
state to ee38ebc0
[ 1.300038] [drm:drm_atomic_set_mode_for_crtc] Set [NOMODE] for CRTC
state ee393e00
[ 1.300043] [drm:drm_atomic_set_crtc_for_plane] Link plane state
ee38e9c0 to [NOCRTC]
[ 1.300047] [drm:drm_atomic_set_fb_for_plane] Set [NOFB] for plane
state ee38e9c0
[ 1.300053] [drm:drm_atomic_add_affected_connectors] Adding all
current connectors for [CRTC:20] to ee38ebc0
[ 1.300059] [drm:drm_atomic_add_affected_connectors] Adding all
current connectors for [CRTC:25] to ee38ebc0
[ 1.300067] [drm:drm_atomic_connectors_for_crtc] State ee38ebc0 has 1
connectors for [CRTC:20]
[ 1.300071] [drm:drm_atomic_check_only] checking ee38ebc0
[ 1.300079] [drm:drm_atomic_helper_check_modeset] [CRTC:20] mode changed
[ 1.300083] [drm:drm_atomic_helper_check_modeset] [CRTC:20] enable
changed
[ 1.300088] [drm:update_connector_routing] Updating routing for
[CONNECTOR:29:HDMI-A-1]
[ 1.300095] [drm:update_connector_routing] [CONNECTOR:29:HDMI-A-1]
using [ENCODER:28:TMDS-28] on [CRTC:20]
[ 1.300100] [drm:drm_atomic_helper_check_modeset] [CRTC:20] active
changed
[ 1.300105] [drm:drm_atomic_helper_check_modeset] [CRTC:20] needs all
connectors, enable: y, active: y
[ 1.300111] [drm:drm_atomic_add_affected_connectors] Adding all
current connectors for [CRTC:20] to ee38ebc0
[ 1.300117] [drm:drm_atomic_connectors_for_crtc] State ee38ebc0 has 1
connectors for [CRTC:20]
[ 1.300130] [drm:drm_atomic_commit] commiting ee38ebc0
[ 1.300156] WARNING: CPU: 0 PID: 26 at
drivers/gpu/drm/drm_atomic_helper.c:674
drm_atomic_helper_update_legacy_modeset_state+0x3c/0x1f8()
--
Mark Yao
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/dri-devel/attachments/20151112/3b3de8a1/attachment-0001.html>
More information about the dri-devel
mailing list