Re: [PATCH v3 0/8] drm/rockchip: covert to support atomic API
On Thu, Dec 17, 2015 at 01:03:53PM +0100, Heiko Stübner wrote: > Hi Mark, > > Am Donnerstag, 17. Dezember 2015, 18:32:31 schrieb Mark yao: > > On 2015年12月17日 18:00, Heiko Stübner wrote: > > > Am Donnerstag, 17. Dezember 2015, 11:01:07 schrieb Mark Yao: > > >> The series of patches coverting drm rockchip to atomic API, do some > > >> cleanup and some fixes on atomic side. > > [...] > > > > Plugging in HDMI after boot: > > > > > > [ 20.559534] [ cut here ] > > > [ 20.564412] WARNING: CPU: 3 PID: 74 at > > > drivers/gpu/drm/drm_atomic_helper.c:682 > > > drm_atomic_helper_update_legacy_modeset_state+0x6c/0x200() [ 20.576991] > > > Modules linked in: > > > [ 20.580175] CPU: 3 PID: 74 Comm: irq/51-ff98 Not tainted 4.4.0-rc5+ > > > #2787 [ 20.587502] Hardware name: Rockchip (Device Tree) > > > [ 20.592347] [] (unwind_backtrace) from [] > > > (show_stack+0x20/0x24) [ 20.600319] [] (show_stack) from > > > [] (dump_stack+0x84/0xb8) [ 20.607776] [] > > > (dump_stack) from [] (warn_slowpath_common+0x98/0xc4) [ > > > 20.616087] [] (warn_slowpath_common) from [] > > > (warn_slowpath_null+0x2c/0x34) [ 20.625106] [] > > > (warn_slowpath_null) from [] > > > (drm_atomic_helper_update_legacy_modeset_state+0x6c/0x200) [ 20.636382] > > > [] (drm_atomic_helper_update_legacy_modeset_state) from > > > [] (drm_atomic_helper_commit_modeset_disables+0x1e4/0x35c) [ > > > 20.649732] [] (drm_atomic_helper_commit_modeset_disables) from > > > [] (rockchip_atomic_commit_complete+0x34/0x108) [ 20.661789] > > > [] (rockchip_atomic_commit_complete) from [] > > > (rockchip_drm_atomic_commit+0x84/0xa0) [ 20.672442] [] > > > (rockchip_drm_atomic_commit) from [] > > > (drm_atomic_commit+0x60/0x70) [ 20.681711] [] > > > (drm_atomic_commit) from [] (restore_fbdev_mode+0x128/0x258) [ > > > 20.690418] [] (restore_fbdev_mode) from [] > > > (drm_fb_helper_restore_fbdev_mode_unlocked+0x3c/0x80) [ 20.701033] > > > [] (drm_fb_helper_restore_fbdev_mode_unlocked) from > > > [] (drm_fb_helper_set_par+0x50/0x60) [ 20.711907] > > > [] (drm_fb_helper_set_par) from [] > > > (drm_fb_helper_hotplug_event+0xc8/0xe0) [ 20.721569] [] > > > (drm_fb_helper_hotplug_event) from [] > > > (rockchip_drm_output_poll_changed+0x24/0x28) [ 20.732185] [] > > > (rockchip_drm_output_poll_changed) from [] > > > (drm_kms_helper_hotplug_event+0x34/0x38) [ 20.742891] [] > > > (drm_kms_helper_hotplug_event) from [] > > > (drm_helper_hpd_irq_event+0x120/0x150) [ 20.753078] [] > > > (drm_helper_hpd_irq_event) from [] (dw_hdmi_irq+0x14c/0x18c) [ > > > 20.761772] [] (dw_hdmi_irq) from [] > > > (irq_thread_fn+0x2c/0x44) [ 20.769350] [] (irq_thread_fn) > > > from [] (irq_thread+0x118/0x21c) [ 20.777019] [] > > > (irq_thread) from [] (kthread+0xf4/0x10c) [ 20.784083] > > > [] (kthread) from [] (ret_from_fork+0x14/0x24) [ > > > 20.791300] ---[ end trace 3deaa51d288067a0 ]--- > > > > Hi Heiko > > This issue can be explained from following thread: > > https://lkml.org/lkml/2015/11/16/498 > > > > You can fix it by following changes: > > > > @@ -1667,8 +1667,6 @@ static int dw_hdmi_register(struct drm_device > > *drm, struct dw_hdmi *hdmi) > > _hdmi_connector_funcs, > > DRM_MODE_CONNECTOR_HDMIA); > > > > - hdmi->connector.encoder = encoder; > > yep that fixes the warning. From the thread you mention, it looks like that > assignment should also be removed in the non-atomic case (i.MX)? > > Or if it is really necessary there could also wrap it in a conditional to > only > be set for the non-atomic case. It wont work with non-atomic, but it'll only break things from the 2nd modeset onwards. Someone needs to fix that bug, since afaiu the code it'd blow up for non-atomic if you remove it on even the first modeset. -Daniel -- Daniel Vetter Software Engineer, Intel Corporation http://blog.ffwll.ch -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH v3 0/8] drm/rockchip: covert to support atomic API
Hi Mark, Am Donnerstag, 17. Dezember 2015, 18:32:31 schrieb Mark yao: > On 2015年12月17日 18:00, Heiko Stübner wrote: > > Am Donnerstag, 17. Dezember 2015, 11:01:07 schrieb Mark Yao: > >> The series of patches coverting drm rockchip to atomic API, do some > >> cleanup and some fixes on atomic side. [...] > > Plugging in HDMI after boot: > > > > [ 20.559534] [ cut here ] > > [ 20.564412] WARNING: CPU: 3 PID: 74 at > > drivers/gpu/drm/drm_atomic_helper.c:682 > > drm_atomic_helper_update_legacy_modeset_state+0x6c/0x200() [ 20.576991] > > Modules linked in: > > [ 20.580175] CPU: 3 PID: 74 Comm: irq/51-ff98 Not tainted 4.4.0-rc5+ > > #2787 [ 20.587502] Hardware name: Rockchip (Device Tree) > > [ 20.592347] [] (unwind_backtrace) from [] > > (show_stack+0x20/0x24) [ 20.600319] [] (show_stack) from > > [] (dump_stack+0x84/0xb8) [ 20.607776] [] > > (dump_stack) from [] (warn_slowpath_common+0x98/0xc4) [ > > 20.616087] [] (warn_slowpath_common) from [] > > (warn_slowpath_null+0x2c/0x34) [ 20.625106] [] > > (warn_slowpath_null) from [] > > (drm_atomic_helper_update_legacy_modeset_state+0x6c/0x200) [ 20.636382] > > [] (drm_atomic_helper_update_legacy_modeset_state) from > > [] (drm_atomic_helper_commit_modeset_disables+0x1e4/0x35c) [ > > 20.649732] [] (drm_atomic_helper_commit_modeset_disables) from > > [] (rockchip_atomic_commit_complete+0x34/0x108) [ 20.661789] > > [] (rockchip_atomic_commit_complete) from [] > > (rockchip_drm_atomic_commit+0x84/0xa0) [ 20.672442] [] > > (rockchip_drm_atomic_commit) from [] > > (drm_atomic_commit+0x60/0x70) [ 20.681711] [] > > (drm_atomic_commit) from [] (restore_fbdev_mode+0x128/0x258) [ > > 20.690418] [] (restore_fbdev_mode) from [] > > (drm_fb_helper_restore_fbdev_mode_unlocked+0x3c/0x80) [ 20.701033] > > [] (drm_fb_helper_restore_fbdev_mode_unlocked) from > > [] (drm_fb_helper_set_par+0x50/0x60) [ 20.711907] > > [] (drm_fb_helper_set_par) from [] > > (drm_fb_helper_hotplug_event+0xc8/0xe0) [ 20.721569] [] > > (drm_fb_helper_hotplug_event) from [] > > (rockchip_drm_output_poll_changed+0x24/0x28) [ 20.732185] [] > > (rockchip_drm_output_poll_changed) from [] > > (drm_kms_helper_hotplug_event+0x34/0x38) [ 20.742891] [] > > (drm_kms_helper_hotplug_event) from [] > > (drm_helper_hpd_irq_event+0x120/0x150) [ 20.753078] [] > > (drm_helper_hpd_irq_event) from [] (dw_hdmi_irq+0x14c/0x18c) [ > > 20.761772] [] (dw_hdmi_irq) from [] > > (irq_thread_fn+0x2c/0x44) [ 20.769350] [] (irq_thread_fn) > > from [] (irq_thread+0x118/0x21c) [ 20.777019] [] > > (irq_thread) from [] (kthread+0xf4/0x10c) [ 20.784083] > > [] (kthread) from [] (ret_from_fork+0x14/0x24) [ > > 20.791300] ---[ end trace 3deaa51d288067a0 ]--- > > Hi Heiko > This issue can be explained from following thread: > https://lkml.org/lkml/2015/11/16/498 > > You can fix it by following changes: > > @@ -1667,8 +1667,6 @@ static int dw_hdmi_register(struct drm_device > *drm, struct dw_hdmi *hdmi) > _hdmi_connector_funcs, > DRM_MODE_CONNECTOR_HDMIA); > > - hdmi->connector.encoder = encoder; yep that fixes the warning. From the thread you mention, it looks like that assignment should also be removed in the non-atomic case (i.MX)? Or if it is really necessary there could also wrap it in a conditional to only be set for the non-atomic case. Heiko -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH v3 0/8] drm/rockchip: covert to support atomic API
On 2015年12月17日 18:00, Heiko Stübner wrote: Hi Mark, Am Donnerstag, 17. Dezember 2015, 11:01:07 schrieb Mark Yao: The series of patches coverting drm rockchip to atomic API, do some cleanup and some fixes on atomic side. TODO: fence is not support on current version. Tested on rk3288 popmetal board. In general this works nicely and hdmi is still working on my firefly, so Tested-by: Heiko Stuebner Thanks. I get one warning though, which seems to be related to fbcon grabbing the framebuffer it seems. HDMI plugged in on boot: [4.345329] [ cut here ] [4.345360] WARNING: CPU: 1 PID: 66 at drivers/gpu/drm/drm_atomic_helper.c:682 drm_atomic_helper_update_legacy_modeset_state+0x6c/0x200() [4.345373] Modules linked in: [4.345386] CPU: 1 PID: 66 Comm: kworker/u8:1 Not tainted 4.4.0-rc5+ #2787 [4.345392] Hardware name: Rockchip (Device Tree) [4.345411] Workqueue: deferwq deferred_probe_work_func [4.345438] [] (unwind_backtrace) from [] (show_stack+0x20/0x24) [4.345458] [] (show_stack) from [] (dump_stack+0x84/0xb8) [4.345479] [] (dump_stack) from [] (warn_slowpath_common+0x98/0xc4) [4.345496] [] (warn_slowpath_common) from [] (warn_slowpath_null+0x2c/0x34) [4.345514] [] (warn_slowpath_null) from [] (drm_atomic_helper_update_legacy_modeset_state+0x6c/0x200) [4.345534] [] (drm_atomic_helper_update_legacy_modeset_state) from [] (drm_atomic_helper_commit_modeset_disables+0x1e4/0x35c) [4.345557] [] (drm_atomic_helper_commit_modeset_disables) from [] (rockchip_atomic_commit_complete+0x34/0x108) [4.345576] [] (rockchip_atomic_commit_complete) from [] (rockchip_drm_atomic_commit+0x84/0xa0) [4.345594] [] (rockchip_drm_atomic_commit) from [] (drm_atomic_commit+0x60/0x70) [4.345609] [] (drm_atomic_commit) from [] (restore_fbdev_mode+0x128/0x258) [4.345625] [] (restore_fbdev_mode) from [] (drm_fb_helper_restore_fbdev_mode_unlocked+0x3c/0x80) [4.345640] [] (drm_fb_helper_restore_fbdev_mode_unlocked) from [] (drm_fb_helper_set_par+0x50/0x60) [4.345659] [] (drm_fb_helper_set_par) from [] (fbcon_init+0x328/0x458) [4.345676] [] (fbcon_init) from [] (visual_init+0xc4/0x114) [4.345692] [] (visual_init) from [] (do_bind_con_driver+0x1fc/0x330) [4.345707] [] (do_bind_con_driver) from [] (do_take_over_console+0x174/0x1b4) [4.345722] [] (do_take_over_console) from [] (do_fbcon_takeover+0x68/0xd0) [4.345738] [] (do_fbcon_takeover) from [] (fbcon_event_notify+0x3fc/0x7d8) [4.345756] [] (fbcon_event_notify) from [] (notifier_call_chain+0x58/0x80) [4.345771] [] (notifier_call_chain) from [] (__blocking_notifier_call_chain+0x54/0x6c) [4.345785] [] (__blocking_notifier_call_chain) from [] (blocking_notifier_call_chain+0x28/0x30) [4.345804] [] (blocking_notifier_call_chain) from [] (fb_notifier_call_chain+0x24/0x2c) [4.345822] [] (fb_notifier_call_chain) from [] (register_framebuffer+0x214/0x264) [4.345839] [] (register_framebuffer) from [] (drm_fb_helper_initial_config+0x2dc/0x34c) [4.345856] [] (drm_fb_helper_initial_config) from [] (rockchip_drm_fbdev_init+0x9c/0xe4) [4.345873] [] (rockchip_drm_fbdev_init) from [] (rockchip_drm_load+0x25c/0x2b0) [4.345892] [] (rockchip_drm_load) from [] (drm_dev_register+0x80/0xc4) [4.345910] [] (drm_dev_register) from [] (rockchip_drm_bind+0x58/0x84) [4.345932] [] (rockchip_drm_bind) from [] (try_to_bring_up_master.part.0+0xbc/0x114) [4.345950] [] (try_to_bring_up_master.part.0) from [] (component_add+0xb0/0x118) [4.345967] [] (component_add) from [] (vop_probe+0x40/0x4c) [4.345984] [] (vop_probe) from [] (platform_drv_probe+0x60/0xb0) [4.345999] [] (platform_drv_probe) from [] (driver_probe_device+0x1a0/0x418) [4.346014] [] (driver_probe_device) from [] (__device_attach_driver+0x94/0xa0) [4.346028] [] (__device_attach_driver) from [] (bus_for_each_drv+0x94/0xa4) [4.346042] [] (bus_for_each_drv) from [] (__device_attach+0xa4/0x144) [4.346055] [] (__device_attach) from [] (device_initial_probe+0x1c/0x20) [4.346068] [] (device_initial_probe) from [] (bus_probe_device+0x38/0x94) [4.346082] [] (bus_probe_device) from [] (deferred_probe_work_func+0x8c/0xbc) [4.346098] [] (deferred_probe_work_func) from [] (process_one_work+0x328/0x668) [4.346112] [] (process_one_work) from [] (worker_thread+0x2cc/0x41c) [4.346128] [] (worker_thread) from [] (kthread+0xf4/0x10c) [4.346146] [] (kthread) from [] (ret_from_fork+0x14/0x24) [4.346155] ---[ end trace 8cd78a9f6ee0a57e ]--- Plugging in HDMI after boot: [ 20.559534] [ cut here ] [ 20.564412] WARNING: CPU: 3 PID: 74 at drivers/gpu/drm/drm_atomic_helper.c:682 drm_atomic_helper_update_legacy_modeset_state+0x6c/0x200() [ 20.576991] Modules linked in: [ 20.580175] CPU: 3 PID: 74 Comm: irq/51-ff98 Not tainted 4.4.0-rc5+ #2787 [ 20.587502] Hardware name:
Re: [PATCH v3 0/8] drm/rockchip: covert to support atomic API
Hi Mark, Am Donnerstag, 17. Dezember 2015, 11:01:07 schrieb Mark Yao: > The series of patches coverting drm rockchip to atomic API, do some > cleanup and some fixes on atomic side. > > TODO: fence is not support on current version. > > Tested on rk3288 popmetal board. In general this works nicely and hdmi is still working on my firefly, so Tested-by: Heiko Stuebner I get one warning though, which seems to be related to fbcon grabbing the framebuffer it seems. HDMI plugged in on boot: [4.345329] [ cut here ] [4.345360] WARNING: CPU: 1 PID: 66 at drivers/gpu/drm/drm_atomic_helper.c:682 drm_atomic_helper_update_legacy_modeset_state+0x6c/0x200() [4.345373] Modules linked in: [4.345386] CPU: 1 PID: 66 Comm: kworker/u8:1 Not tainted 4.4.0-rc5+ #2787 [4.345392] Hardware name: Rockchip (Device Tree) [4.345411] Workqueue: deferwq deferred_probe_work_func [4.345438] [] (unwind_backtrace) from [] (show_stack+0x20/0x24) [4.345458] [] (show_stack) from [] (dump_stack+0x84/0xb8) [4.345479] [] (dump_stack) from [] (warn_slowpath_common+0x98/0xc4) [4.345496] [] (warn_slowpath_common) from [] (warn_slowpath_null+0x2c/0x34) [4.345514] [] (warn_slowpath_null) from [] (drm_atomic_helper_update_legacy_modeset_state+0x6c/0x200) [4.345534] [] (drm_atomic_helper_update_legacy_modeset_state) from [] (drm_atomic_helper_commit_modeset_disables+0x1e4/0x35c) [4.345557] [] (drm_atomic_helper_commit_modeset_disables) from [] (rockchip_atomic_commit_complete+0x34/0x108) [4.345576] [] (rockchip_atomic_commit_complete) from [] (rockchip_drm_atomic_commit+0x84/0xa0) [4.345594] [] (rockchip_drm_atomic_commit) from [] (drm_atomic_commit+0x60/0x70) [4.345609] [] (drm_atomic_commit) from [] (restore_fbdev_mode+0x128/0x258) [4.345625] [] (restore_fbdev_mode) from [] (drm_fb_helper_restore_fbdev_mode_unlocked+0x3c/0x80) [4.345640] [] (drm_fb_helper_restore_fbdev_mode_unlocked) from [] (drm_fb_helper_set_par+0x50/0x60) [4.345659] [] (drm_fb_helper_set_par) from [] (fbcon_init+0x328/0x458) [4.345676] [] (fbcon_init) from [] (visual_init+0xc4/0x114) [4.345692] [] (visual_init) from [] (do_bind_con_driver+0x1fc/0x330) [4.345707] [] (do_bind_con_driver) from [] (do_take_over_console+0x174/0x1b4) [4.345722] [] (do_take_over_console) from [] (do_fbcon_takeover+0x68/0xd0) [4.345738] [] (do_fbcon_takeover) from [] (fbcon_event_notify+0x3fc/0x7d8) [4.345756] [] (fbcon_event_notify) from [] (notifier_call_chain+0x58/0x80) [4.345771] [] (notifier_call_chain) from [] (__blocking_notifier_call_chain+0x54/0x6c) [4.345785] [] (__blocking_notifier_call_chain) from [] (blocking_notifier_call_chain+0x28/0x30) [4.345804] [] (blocking_notifier_call_chain) from [] (fb_notifier_call_chain+0x24/0x2c) [4.345822] [] (fb_notifier_call_chain) from [] (register_framebuffer+0x214/0x264) [4.345839] [] (register_framebuffer) from [] (drm_fb_helper_initial_config+0x2dc/0x34c) [4.345856] [] (drm_fb_helper_initial_config) from [] (rockchip_drm_fbdev_init+0x9c/0xe4) [4.345873] [] (rockchip_drm_fbdev_init) from [] (rockchip_drm_load+0x25c/0x2b0) [4.345892] [] (rockchip_drm_load) from [] (drm_dev_register+0x80/0xc4) [4.345910] [] (drm_dev_register) from [] (rockchip_drm_bind+0x58/0x84) [4.345932] [] (rockchip_drm_bind) from [] (try_to_bring_up_master.part.0+0xbc/0x114) [4.345950] [] (try_to_bring_up_master.part.0) from [] (component_add+0xb0/0x118) [4.345967] [] (component_add) from [] (vop_probe+0x40/0x4c) [4.345984] [] (vop_probe) from [] (platform_drv_probe+0x60/0xb0) [4.345999] [] (platform_drv_probe) from [] (driver_probe_device+0x1a0/0x418) [4.346014] [] (driver_probe_device) from [] (__device_attach_driver+0x94/0xa0) [4.346028] [] (__device_attach_driver) from [] (bus_for_each_drv+0x94/0xa4) [4.346042] [] (bus_for_each_drv) from [] (__device_attach+0xa4/0x144) [4.346055] [] (__device_attach) from [] (device_initial_probe+0x1c/0x20) [4.346068] [] (device_initial_probe) from [] (bus_probe_device+0x38/0x94) [4.346082] [] (bus_probe_device) from [] (deferred_probe_work_func+0x8c/0xbc) [4.346098] [] (deferred_probe_work_func) from [] (process_one_work+0x328/0x668) [4.346112] [] (process_one_work) from [] (worker_thread+0x2cc/0x41c) [4.346128] [] (worker_thread) from [] (kthread+0xf4/0x10c) [4.346146] [] (kthread) from [] (ret_from_fork+0x14/0x24) [4.346155] ---[ end trace 8cd78a9f6ee0a57e ]--- Plugging in HDMI after boot: [ 20.559534] [ cut here ] [ 20.564412] WARNING: CPU: 3 PID: 74 at drivers/gpu/drm/drm_atomic_helper.c:682 drm_atomic_helper_update_legacy_modeset_state+0x6c/0x200() [ 20.576991] Modules linked in: [ 20.580175] CPU: 3 PID: 74 Comm: irq/51-ff98 Not tainted 4.4.0-rc5+ #2787 [ 20.587502] Hardware name: Rockchip (Device Tree) [ 20.592347] []
Re: [PATCH v3 0/8] drm/rockchip: covert to support atomic API
Hi Mark, Am Donnerstag, 17. Dezember 2015, 11:01:07 schrieb Mark Yao: > The series of patches coverting drm rockchip to atomic API, do some > cleanup and some fixes on atomic side. > > TODO: fence is not support on current version. > > Tested on rk3288 popmetal board. In general this works nicely and hdmi is still working on my firefly, so Tested-by: Heiko StuebnerI get one warning though, which seems to be related to fbcon grabbing the framebuffer it seems. HDMI plugged in on boot: [4.345329] [ cut here ] [4.345360] WARNING: CPU: 1 PID: 66 at drivers/gpu/drm/drm_atomic_helper.c:682 drm_atomic_helper_update_legacy_modeset_state+0x6c/0x200() [4.345373] Modules linked in: [4.345386] CPU: 1 PID: 66 Comm: kworker/u8:1 Not tainted 4.4.0-rc5+ #2787 [4.345392] Hardware name: Rockchip (Device Tree) [4.345411] Workqueue: deferwq deferred_probe_work_func [4.345438] [] (unwind_backtrace) from [] (show_stack+0x20/0x24) [4.345458] [] (show_stack) from [] (dump_stack+0x84/0xb8) [4.345479] [] (dump_stack) from [] (warn_slowpath_common+0x98/0xc4) [4.345496] [] (warn_slowpath_common) from [] (warn_slowpath_null+0x2c/0x34) [4.345514] [] (warn_slowpath_null) from [] (drm_atomic_helper_update_legacy_modeset_state+0x6c/0x200) [4.345534] [] (drm_atomic_helper_update_legacy_modeset_state) from [] (drm_atomic_helper_commit_modeset_disables+0x1e4/0x35c) [4.345557] [] (drm_atomic_helper_commit_modeset_disables) from [] (rockchip_atomic_commit_complete+0x34/0x108) [4.345576] [] (rockchip_atomic_commit_complete) from [] (rockchip_drm_atomic_commit+0x84/0xa0) [4.345594] [] (rockchip_drm_atomic_commit) from [] (drm_atomic_commit+0x60/0x70) [4.345609] [] (drm_atomic_commit) from [] (restore_fbdev_mode+0x128/0x258) [4.345625] [] (restore_fbdev_mode) from [] (drm_fb_helper_restore_fbdev_mode_unlocked+0x3c/0x80) [4.345640] [] (drm_fb_helper_restore_fbdev_mode_unlocked) from [] (drm_fb_helper_set_par+0x50/0x60) [4.345659] [] (drm_fb_helper_set_par) from [] (fbcon_init+0x328/0x458) [4.345676] [] (fbcon_init) from [] (visual_init+0xc4/0x114) [4.345692] [] (visual_init) from [] (do_bind_con_driver+0x1fc/0x330) [4.345707] [] (do_bind_con_driver) from [] (do_take_over_console+0x174/0x1b4) [4.345722] [] (do_take_over_console) from [] (do_fbcon_takeover+0x68/0xd0) [4.345738] [] (do_fbcon_takeover) from [] (fbcon_event_notify+0x3fc/0x7d8) [4.345756] [] (fbcon_event_notify) from [] (notifier_call_chain+0x58/0x80) [4.345771] [] (notifier_call_chain) from [] (__blocking_notifier_call_chain+0x54/0x6c) [4.345785] [] (__blocking_notifier_call_chain) from [] (blocking_notifier_call_chain+0x28/0x30) [4.345804] [] (blocking_notifier_call_chain) from [] (fb_notifier_call_chain+0x24/0x2c) [4.345822] [] (fb_notifier_call_chain) from [] (register_framebuffer+0x214/0x264) [4.345839] [] (register_framebuffer) from [] (drm_fb_helper_initial_config+0x2dc/0x34c) [4.345856] [] (drm_fb_helper_initial_config) from [] (rockchip_drm_fbdev_init+0x9c/0xe4) [4.345873] [] (rockchip_drm_fbdev_init) from [] (rockchip_drm_load+0x25c/0x2b0) [4.345892] [] (rockchip_drm_load) from [] (drm_dev_register+0x80/0xc4) [4.345910] [] (drm_dev_register) from [] (rockchip_drm_bind+0x58/0x84) [4.345932] [] (rockchip_drm_bind) from [] (try_to_bring_up_master.part.0+0xbc/0x114) [4.345950] [] (try_to_bring_up_master.part.0) from [] (component_add+0xb0/0x118) [4.345967] [] (component_add) from [] (vop_probe+0x40/0x4c) [4.345984] [] (vop_probe) from [] (platform_drv_probe+0x60/0xb0) [4.345999] [] (platform_drv_probe) from [] (driver_probe_device+0x1a0/0x418) [4.346014] [] (driver_probe_device) from [] (__device_attach_driver+0x94/0xa0) [4.346028] [] (__device_attach_driver) from [] (bus_for_each_drv+0x94/0xa4) [4.346042] [] (bus_for_each_drv) from [] (__device_attach+0xa4/0x144) [4.346055] [] (__device_attach) from [] (device_initial_probe+0x1c/0x20) [4.346068] [] (device_initial_probe) from [] (bus_probe_device+0x38/0x94) [4.346082] [] (bus_probe_device) from [] (deferred_probe_work_func+0x8c/0xbc) [4.346098] [] (deferred_probe_work_func) from [] (process_one_work+0x328/0x668) [4.346112] [] (process_one_work) from [] (worker_thread+0x2cc/0x41c) [4.346128] [] (worker_thread) from [] (kthread+0xf4/0x10c) [4.346146] [] (kthread) from [] (ret_from_fork+0x14/0x24) [4.346155] ---[ end trace 8cd78a9f6ee0a57e ]--- Plugging in HDMI after boot: [ 20.559534] [ cut here ] [ 20.564412] WARNING: CPU: 3 PID: 74 at drivers/gpu/drm/drm_atomic_helper.c:682 drm_atomic_helper_update_legacy_modeset_state+0x6c/0x200() [ 20.576991] Modules linked in: [ 20.580175] CPU: 3 PID: 74 Comm: irq/51-ff98 Not tainted 4.4.0-rc5+ #2787 [ 20.587502] Hardware name: Rockchip (Device Tree) [
Re: [PATCH v3 0/8] drm/rockchip: covert to support atomic API
On 2015年12月17日 18:00, Heiko Stübner wrote: Hi Mark, Am Donnerstag, 17. Dezember 2015, 11:01:07 schrieb Mark Yao: The series of patches coverting drm rockchip to atomic API, do some cleanup and some fixes on atomic side. TODO: fence is not support on current version. Tested on rk3288 popmetal board. In general this works nicely and hdmi is still working on my firefly, so Tested-by: Heiko StuebnerThanks. I get one warning though, which seems to be related to fbcon grabbing the framebuffer it seems. HDMI plugged in on boot: [4.345329] [ cut here ] [4.345360] WARNING: CPU: 1 PID: 66 at drivers/gpu/drm/drm_atomic_helper.c:682 drm_atomic_helper_update_legacy_modeset_state+0x6c/0x200() [4.345373] Modules linked in: [4.345386] CPU: 1 PID: 66 Comm: kworker/u8:1 Not tainted 4.4.0-rc5+ #2787 [4.345392] Hardware name: Rockchip (Device Tree) [4.345411] Workqueue: deferwq deferred_probe_work_func [4.345438] [] (unwind_backtrace) from [] (show_stack+0x20/0x24) [4.345458] [] (show_stack) from [] (dump_stack+0x84/0xb8) [4.345479] [] (dump_stack) from [] (warn_slowpath_common+0x98/0xc4) [4.345496] [] (warn_slowpath_common) from [] (warn_slowpath_null+0x2c/0x34) [4.345514] [] (warn_slowpath_null) from [] (drm_atomic_helper_update_legacy_modeset_state+0x6c/0x200) [4.345534] [] (drm_atomic_helper_update_legacy_modeset_state) from [] (drm_atomic_helper_commit_modeset_disables+0x1e4/0x35c) [4.345557] [] (drm_atomic_helper_commit_modeset_disables) from [] (rockchip_atomic_commit_complete+0x34/0x108) [4.345576] [] (rockchip_atomic_commit_complete) from [] (rockchip_drm_atomic_commit+0x84/0xa0) [4.345594] [] (rockchip_drm_atomic_commit) from [] (drm_atomic_commit+0x60/0x70) [4.345609] [] (drm_atomic_commit) from [] (restore_fbdev_mode+0x128/0x258) [4.345625] [] (restore_fbdev_mode) from [] (drm_fb_helper_restore_fbdev_mode_unlocked+0x3c/0x80) [4.345640] [] (drm_fb_helper_restore_fbdev_mode_unlocked) from [] (drm_fb_helper_set_par+0x50/0x60) [4.345659] [] (drm_fb_helper_set_par) from [] (fbcon_init+0x328/0x458) [4.345676] [] (fbcon_init) from [] (visual_init+0xc4/0x114) [4.345692] [] (visual_init) from [] (do_bind_con_driver+0x1fc/0x330) [4.345707] [] (do_bind_con_driver) from [] (do_take_over_console+0x174/0x1b4) [4.345722] [] (do_take_over_console) from [] (do_fbcon_takeover+0x68/0xd0) [4.345738] [] (do_fbcon_takeover) from [] (fbcon_event_notify+0x3fc/0x7d8) [4.345756] [] (fbcon_event_notify) from [] (notifier_call_chain+0x58/0x80) [4.345771] [] (notifier_call_chain) from [] (__blocking_notifier_call_chain+0x54/0x6c) [4.345785] [] (__blocking_notifier_call_chain) from [] (blocking_notifier_call_chain+0x28/0x30) [4.345804] [] (blocking_notifier_call_chain) from [] (fb_notifier_call_chain+0x24/0x2c) [4.345822] [] (fb_notifier_call_chain) from [] (register_framebuffer+0x214/0x264) [4.345839] [] (register_framebuffer) from [] (drm_fb_helper_initial_config+0x2dc/0x34c) [4.345856] [] (drm_fb_helper_initial_config) from [] (rockchip_drm_fbdev_init+0x9c/0xe4) [4.345873] [] (rockchip_drm_fbdev_init) from [] (rockchip_drm_load+0x25c/0x2b0) [4.345892] [] (rockchip_drm_load) from [] (drm_dev_register+0x80/0xc4) [4.345910] [] (drm_dev_register) from [] (rockchip_drm_bind+0x58/0x84) [4.345932] [] (rockchip_drm_bind) from [] (try_to_bring_up_master.part.0+0xbc/0x114) [4.345950] [] (try_to_bring_up_master.part.0) from [] (component_add+0xb0/0x118) [4.345967] [] (component_add) from [] (vop_probe+0x40/0x4c) [4.345984] [] (vop_probe) from [] (platform_drv_probe+0x60/0xb0) [4.345999] [] (platform_drv_probe) from [] (driver_probe_device+0x1a0/0x418) [4.346014] [] (driver_probe_device) from [] (__device_attach_driver+0x94/0xa0) [4.346028] [] (__device_attach_driver) from [] (bus_for_each_drv+0x94/0xa4) [4.346042] [] (bus_for_each_drv) from [] (__device_attach+0xa4/0x144) [4.346055] [] (__device_attach) from [] (device_initial_probe+0x1c/0x20) [4.346068] [] (device_initial_probe) from [] (bus_probe_device+0x38/0x94) [4.346082] [] (bus_probe_device) from [] (deferred_probe_work_func+0x8c/0xbc) [4.346098] [] (deferred_probe_work_func) from [] (process_one_work+0x328/0x668) [4.346112] [] (process_one_work) from [] (worker_thread+0x2cc/0x41c) [4.346128] [] (worker_thread) from [] (kthread+0xf4/0x10c) [4.346146] [] (kthread) from [] (ret_from_fork+0x14/0x24) [4.346155] ---[ end trace 8cd78a9f6ee0a57e ]--- Plugging in HDMI after boot: [ 20.559534] [ cut here ] [ 20.564412] WARNING: CPU: 3 PID: 74 at drivers/gpu/drm/drm_atomic_helper.c:682 drm_atomic_helper_update_legacy_modeset_state+0x6c/0x200() [ 20.576991] Modules linked in: [ 20.580175] CPU: 3 PID: 74 Comm: irq/51-ff98 Not tainted 4.4.0-rc5+ #2787 [ 20.587502]
Re: [PATCH v3 0/8] drm/rockchip: covert to support atomic API
On Thu, Dec 17, 2015 at 01:03:53PM +0100, Heiko Stübner wrote: > Hi Mark, > > Am Donnerstag, 17. Dezember 2015, 18:32:31 schrieb Mark yao: > > On 2015年12月17日 18:00, Heiko Stübner wrote: > > > Am Donnerstag, 17. Dezember 2015, 11:01:07 schrieb Mark Yao: > > >> The series of patches coverting drm rockchip to atomic API, do some > > >> cleanup and some fixes on atomic side. > > [...] > > > > Plugging in HDMI after boot: > > > > > > [ 20.559534] [ cut here ] > > > [ 20.564412] WARNING: CPU: 3 PID: 74 at > > > drivers/gpu/drm/drm_atomic_helper.c:682 > > > drm_atomic_helper_update_legacy_modeset_state+0x6c/0x200() [ 20.576991] > > > Modules linked in: > > > [ 20.580175] CPU: 3 PID: 74 Comm: irq/51-ff98 Not tainted 4.4.0-rc5+ > > > #2787 [ 20.587502] Hardware name: Rockchip (Device Tree) > > > [ 20.592347] [] (unwind_backtrace) from [] > > > (show_stack+0x20/0x24) [ 20.600319] [] (show_stack) from > > > [] (dump_stack+0x84/0xb8) [ 20.607776] [] > > > (dump_stack) from [] (warn_slowpath_common+0x98/0xc4) [ > > > 20.616087] [] (warn_slowpath_common) from [] > > > (warn_slowpath_null+0x2c/0x34) [ 20.625106] [] > > > (warn_slowpath_null) from [] > > > (drm_atomic_helper_update_legacy_modeset_state+0x6c/0x200) [ 20.636382] > > > [] (drm_atomic_helper_update_legacy_modeset_state) from > > > [] (drm_atomic_helper_commit_modeset_disables+0x1e4/0x35c) [ > > > 20.649732] [] (drm_atomic_helper_commit_modeset_disables) from > > > [] (rockchip_atomic_commit_complete+0x34/0x108) [ 20.661789] > > > [] (rockchip_atomic_commit_complete) from [] > > > (rockchip_drm_atomic_commit+0x84/0xa0) [ 20.672442] [] > > > (rockchip_drm_atomic_commit) from [] > > > (drm_atomic_commit+0x60/0x70) [ 20.681711] [] > > > (drm_atomic_commit) from [] (restore_fbdev_mode+0x128/0x258) [ > > > 20.690418] [] (restore_fbdev_mode) from [] > > > (drm_fb_helper_restore_fbdev_mode_unlocked+0x3c/0x80) [ 20.701033] > > > [] (drm_fb_helper_restore_fbdev_mode_unlocked) from > > > [] (drm_fb_helper_set_par+0x50/0x60) [ 20.711907] > > > [] (drm_fb_helper_set_par) from [] > > > (drm_fb_helper_hotplug_event+0xc8/0xe0) [ 20.721569] [] > > > (drm_fb_helper_hotplug_event) from [] > > > (rockchip_drm_output_poll_changed+0x24/0x28) [ 20.732185] [] > > > (rockchip_drm_output_poll_changed) from [] > > > (drm_kms_helper_hotplug_event+0x34/0x38) [ 20.742891] [] > > > (drm_kms_helper_hotplug_event) from [] > > > (drm_helper_hpd_irq_event+0x120/0x150) [ 20.753078] [] > > > (drm_helper_hpd_irq_event) from [] (dw_hdmi_irq+0x14c/0x18c) [ > > > 20.761772] [] (dw_hdmi_irq) from [] > > > (irq_thread_fn+0x2c/0x44) [ 20.769350] [] (irq_thread_fn) > > > from [] (irq_thread+0x118/0x21c) [ 20.777019] [] > > > (irq_thread) from [] (kthread+0xf4/0x10c) [ 20.784083] > > > [] (kthread) from [] (ret_from_fork+0x14/0x24) [ > > > 20.791300] ---[ end trace 3deaa51d288067a0 ]--- > > > > Hi Heiko > > This issue can be explained from following thread: > > https://lkml.org/lkml/2015/11/16/498 > > > > You can fix it by following changes: > > > > @@ -1667,8 +1667,6 @@ static int dw_hdmi_register(struct drm_device > > *drm, struct dw_hdmi *hdmi) > > _hdmi_connector_funcs, > > DRM_MODE_CONNECTOR_HDMIA); > > > > - hdmi->connector.encoder = encoder; > > yep that fixes the warning. From the thread you mention, it looks like that > assignment should also be removed in the non-atomic case (i.MX)? > > Or if it is really necessary there could also wrap it in a conditional to > only > be set for the non-atomic case. It wont work with non-atomic, but it'll only break things from the 2nd modeset onwards. Someone needs to fix that bug, since afaiu the code it'd blow up for non-atomic if you remove it on even the first modeset. -Daniel -- Daniel Vetter Software Engineer, Intel Corporation http://blog.ffwll.ch -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH v3 0/8] drm/rockchip: covert to support atomic API
Hi Mark, Am Donnerstag, 17. Dezember 2015, 18:32:31 schrieb Mark yao: > On 2015年12月17日 18:00, Heiko Stübner wrote: > > Am Donnerstag, 17. Dezember 2015, 11:01:07 schrieb Mark Yao: > >> The series of patches coverting drm rockchip to atomic API, do some > >> cleanup and some fixes on atomic side. [...] > > Plugging in HDMI after boot: > > > > [ 20.559534] [ cut here ] > > [ 20.564412] WARNING: CPU: 3 PID: 74 at > > drivers/gpu/drm/drm_atomic_helper.c:682 > > drm_atomic_helper_update_legacy_modeset_state+0x6c/0x200() [ 20.576991] > > Modules linked in: > > [ 20.580175] CPU: 3 PID: 74 Comm: irq/51-ff98 Not tainted 4.4.0-rc5+ > > #2787 [ 20.587502] Hardware name: Rockchip (Device Tree) > > [ 20.592347] [] (unwind_backtrace) from [] > > (show_stack+0x20/0x24) [ 20.600319] [] (show_stack) from > > [] (dump_stack+0x84/0xb8) [ 20.607776] [] > > (dump_stack) from [] (warn_slowpath_common+0x98/0xc4) [ > > 20.616087] [] (warn_slowpath_common) from [] > > (warn_slowpath_null+0x2c/0x34) [ 20.625106] [] > > (warn_slowpath_null) from [] > > (drm_atomic_helper_update_legacy_modeset_state+0x6c/0x200) [ 20.636382] > > [] (drm_atomic_helper_update_legacy_modeset_state) from > > [] (drm_atomic_helper_commit_modeset_disables+0x1e4/0x35c) [ > > 20.649732] [] (drm_atomic_helper_commit_modeset_disables) from > > [] (rockchip_atomic_commit_complete+0x34/0x108) [ 20.661789] > > [] (rockchip_atomic_commit_complete) from [] > > (rockchip_drm_atomic_commit+0x84/0xa0) [ 20.672442] [] > > (rockchip_drm_atomic_commit) from [] > > (drm_atomic_commit+0x60/0x70) [ 20.681711] [] > > (drm_atomic_commit) from [] (restore_fbdev_mode+0x128/0x258) [ > > 20.690418] [] (restore_fbdev_mode) from [] > > (drm_fb_helper_restore_fbdev_mode_unlocked+0x3c/0x80) [ 20.701033] > > [] (drm_fb_helper_restore_fbdev_mode_unlocked) from > > [] (drm_fb_helper_set_par+0x50/0x60) [ 20.711907] > > [] (drm_fb_helper_set_par) from [] > > (drm_fb_helper_hotplug_event+0xc8/0xe0) [ 20.721569] [] > > (drm_fb_helper_hotplug_event) from [] > > (rockchip_drm_output_poll_changed+0x24/0x28) [ 20.732185] [] > > (rockchip_drm_output_poll_changed) from [] > > (drm_kms_helper_hotplug_event+0x34/0x38) [ 20.742891] [] > > (drm_kms_helper_hotplug_event) from [] > > (drm_helper_hpd_irq_event+0x120/0x150) [ 20.753078] [] > > (drm_helper_hpd_irq_event) from [] (dw_hdmi_irq+0x14c/0x18c) [ > > 20.761772] [] (dw_hdmi_irq) from [] > > (irq_thread_fn+0x2c/0x44) [ 20.769350] [] (irq_thread_fn) > > from [] (irq_thread+0x118/0x21c) [ 20.777019] [] > > (irq_thread) from [] (kthread+0xf4/0x10c) [ 20.784083] > > [] (kthread) from [] (ret_from_fork+0x14/0x24) [ > > 20.791300] ---[ end trace 3deaa51d288067a0 ]--- > > Hi Heiko > This issue can be explained from following thread: > https://lkml.org/lkml/2015/11/16/498 > > You can fix it by following changes: > > @@ -1667,8 +1667,6 @@ static int dw_hdmi_register(struct drm_device > *drm, struct dw_hdmi *hdmi) > _hdmi_connector_funcs, > DRM_MODE_CONNECTOR_HDMIA); > > - hdmi->connector.encoder = encoder; yep that fixes the warning. From the thread you mention, it looks like that assignment should also be removed in the non-atomic case (i.MX)? Or if it is really necessary there could also wrap it in a conditional to only be set for the non-atomic case. Heiko -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
[PATCH v3 0/8] drm/rockchip: covert to support atomic API
The series of patches coverting drm rockchip to atomic API, do some cleanup and some fixes on atomic side. TODO: fence is not support on current version. Tested on rk3288 popmetal board. All guys can test it with following url: test case: https://github.com/markyzq/libdrm.git atomictest kernel: https://github.com/markyzq/kernel-drm-rockchip.git drm-rockchip-next-12-17 Changes in v3: Reported by kbuild test robot - fix rockchip_crtc_wait_for_update undefined when build drm rockchip as modules. Changes in v2: - Optimization commit planes sequence. - Get vblank count on atomic_begin to protect vblank event. Advised by Daniel Stone - Direct return -EINVAL when yuv address is not support, instead of adjust it. - code formating and cleanup. Advised by Thierry Reding & Daniel Vetter - Hook mode_set into crtc enable instead of hack crtc enable on mode set. v2: http://www.spinics.net/lists/arm-kernel/msg468423.html v1: http://lists.freedesktop.org/archives/dri-devel/2015-November/095745.html Mark Yao (8): drm/rockchip: Use new vblank api drm_crtc_vblank_* drm/rockchip: vop: replace dpms with enable/disable drm/rockchip: Convert to support atomic API drm/rockchip: Optimization vop mode set drm/rockchip: support atomic asynchronous commit drm/rockchip: direct config connecter gate and out_mode drm: bridge/dw_hdmi: add atomic API support drm/rockchip: dw_hdmi: use encoder enable function drivers/gpu/drm/bridge/dw_hdmi.c| 23 +- drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c | 14 +- drivers/gpu/drm/rockchip/rockchip_drm_drv.c | 21 +- drivers/gpu/drm/rockchip/rockchip_drm_drv.h | 20 +- drivers/gpu/drm/rockchip/rockchip_drm_fb.c | 123 + drivers/gpu/drm/rockchip/rockchip_drm_vop.c | 782 +++ 6 files changed, 495 insertions(+), 488 deletions(-) -- 1.7.9.5 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
[PATCH v3 0/8] drm/rockchip: covert to support atomic API
The series of patches coverting drm rockchip to atomic API, do some cleanup and some fixes on atomic side. TODO: fence is not support on current version. Tested on rk3288 popmetal board. All guys can test it with following url: test case: https://github.com/markyzq/libdrm.git atomictest kernel: https://github.com/markyzq/kernel-drm-rockchip.git drm-rockchip-next-12-17 Changes in v3: Reported by kbuild test robot - fix rockchip_crtc_wait_for_update undefined when build drm rockchip as modules. Changes in v2: - Optimization commit planes sequence. - Get vblank count on atomic_begin to protect vblank event. Advised by Daniel Stone - Direct return -EINVAL when yuv address is not support, instead of adjust it. - code formating and cleanup. Advised by Thierry Reding & Daniel Vetter - Hook mode_set into crtc enable instead of hack crtc enable on mode set. v2: http://www.spinics.net/lists/arm-kernel/msg468423.html v1: http://lists.freedesktop.org/archives/dri-devel/2015-November/095745.html Mark Yao (8): drm/rockchip: Use new vblank api drm_crtc_vblank_* drm/rockchip: vop: replace dpms with enable/disable drm/rockchip: Convert to support atomic API drm/rockchip: Optimization vop mode set drm/rockchip: support atomic asynchronous commit drm/rockchip: direct config connecter gate and out_mode drm: bridge/dw_hdmi: add atomic API support drm/rockchip: dw_hdmi: use encoder enable function drivers/gpu/drm/bridge/dw_hdmi.c| 23 +- drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c | 14 +- drivers/gpu/drm/rockchip/rockchip_drm_drv.c | 21 +- drivers/gpu/drm/rockchip/rockchip_drm_drv.h | 20 +- drivers/gpu/drm/rockchip/rockchip_drm_fb.c | 123 + drivers/gpu/drm/rockchip/rockchip_drm_vop.c | 782 +++ 6 files changed, 495 insertions(+), 488 deletions(-) -- 1.7.9.5 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/