Message ID | 1447678222-6858-1-git-send-email-daniels@collabora.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Mon, 2015-11-16 at 12:50 +0000, Daniel Stone wrote: > Passing -1 as the pipe for vblank events now triggers a WARN_ON, but > had > previously made multi-screen unusable anyway. Pass the correct pipe > to > the event-send function, and use the new API to make this a bit > easier > for us. Tested on a Radxa Rock 2 square board. Tested-By: Sjoerd Simons <sjoerd.simons@collabora.co.uk> > Fixes WARN present since cc1ef118fc for every pageflip event sent: > [ 209.549969] ------------[ cut here ]------------ > [ 209.554592] WARNING: CPU: 3 PID: 238 at > drivers/gpu/drm/drm_irq.c:924 drm_vblank_count_and_time+0x80/0x88 > [drm]() > [ 209.564832] Modules linked in: [...] > [ 209.612401] CPU: 3 PID: 238 Comm: irq/41-ff940000 Tainted: > G W 4.3.0-rc6+ #71 > [ 209.620647] Hardware name: Rockchip (Device Tree) > [ 209.625348] [<c001bb80>] (unwind_backtrace) from [<c001615c>] > (show_stack+0x20/0x24) > [ 209.633079] [<c001615c>] (show_stack) from [<c02b2c50>] > (dump_stack+0x8c/0x9c) > [ 209.640289] [<c02b2c50>] (dump_stack) from [<c0052e88>] > (warn_slowpath_common+0x94/0xc4) > [ 209.648364] [<c0052e88>] (warn_slowpath_common) from [<c0052f74>] > (warn_slowpath_null+0x2c/0x34) > [ 209.657139] [<c0052f74>] (warn_slowpath_null) from [<bf17dc30>] > (drm_vblank_count_and_time+0x80/0x88 [drm]) > [ 209.666875] [<bf17dc30>] (drm_vblank_count_and_time [drm]) from > [<bf17e484>] (drm_send_vblank_event+0x74/0x7c [drm]) > [ 209.677385] [<bf17e484>] (drm_send_vblank_event [drm]) from > [<bf4c1144>] (vop_win_state_complete+0x4c/0x70 [rockchip_drm_vop]) > [ 209.688757] [<bf4c1144>] (vop_win_state_complete > [rockchip_drm_vop]) from [<bf4c3bdc>] (vop_isr_thread+0x170/0x1d4 > [rockchip_drm_vop]) > [ 209.700822] [<bf4c3bdc>] (vop_isr_thread [rockchip_drm_vop]) from > [<c00ab93c>] (irq_thread_fn+0x2c/0x50) > [ 209.710284] [<c00ab93c>] (irq_thread_fn) from [<c00abcac>] > (irq_thread+0x13c/0x188) > [ 209.717927] [<c00abcac>] (irq_thread) from [<c00723c8>] > (kthread+0xec/0x104) > [ 209.724965] [<c00723c8>] (kthread) from [<c0011638>] > (ret_from_fork+0x14/0x3c) > [ 209.732171] ---[ end trace 0690bc604f5d535d ]--- > > Signed-off-by: Daniel Stone <daniels@collabora.com> > Cc: Sjoerd Simons <sjoerd.simons@collabora.co.uk> > Cc: Thierry Reding <treding@nvidia.com> > Cc: Heiko Stuebner <heiko@sntech.de> > --- > drivers/gpu/drm/rockchip/rockchip_drm_vop.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_vop.c > b/drivers/gpu/drm/rockchip/rockchip_drm_vop.c > index 5d8ae5e..ddf6dc2 100644 > --- a/drivers/gpu/drm/rockchip/rockchip_drm_vop.c > +++ b/drivers/gpu/drm/rockchip/rockchip_drm_vop.c > @@ -1289,7 +1289,7 @@ static void vop_win_state_complete(struct > vop_win *vop_win, > > if (state->event) { > spin_lock_irqsave(&drm->event_lock, flags); > - drm_send_vblank_event(drm, -1, state->event); > + drm_crtc_send_vblank_event(crtc, state->event); > spin_unlock_irqrestore(&drm->event_lock, flags); > } >
Am Montag, 16. November 2015, 12:50:21 schrieb Daniel Stone: > Passing -1 as the pipe for vblank events now triggers a WARN_ON, but had > previously made multi-screen unusable anyway. Pass the correct pipe to > the event-send function, and use the new API to make this a bit easier > for us. > > Fixes WARN present since cc1ef118fc for every pageflip event sent: > [ 209.549969] ------------[ cut here ]------------ > [ 209.554592] WARNING: CPU: 3 PID: 238 at drivers/gpu/drm/drm_irq.c:924 > drm_vblank_count_and_time+0x80/0x88 [drm]() [ 209.564832] Modules linked > in: [...] > [ 209.612401] CPU: 3 PID: 238 Comm: irq/41-ff940000 Tainted: G W > 4.3.0-rc6+ #71 [ 209.620647] Hardware name: Rockchip (Device Tree) > [ 209.625348] [<c001bb80>] (unwind_backtrace) from [<c001615c>] > (show_stack+0x20/0x24) [ 209.633079] [<c001615c>] (show_stack) from > [<c02b2c50>] (dump_stack+0x8c/0x9c) [ 209.640289] [<c02b2c50>] > (dump_stack) from [<c0052e88>] (warn_slowpath_common+0x94/0xc4) [ > 209.648364] [<c0052e88>] (warn_slowpath_common) from [<c0052f74>] > (warn_slowpath_null+0x2c/0x34) [ 209.657139] [<c0052f74>] > (warn_slowpath_null) from [<bf17dc30>] (drm_vblank_count_and_time+0x80/0x88 > [drm]) [ 209.666875] [<bf17dc30>] (drm_vblank_count_and_time [drm]) from > [<bf17e484>] (drm_send_vblank_event+0x74/0x7c [drm]) [ 209.677385] > [<bf17e484>] (drm_send_vblank_event [drm]) from [<bf4c1144>] > (vop_win_state_complete+0x4c/0x70 [rockchip_drm_vop]) [ 209.688757] > [<bf4c1144>] (vop_win_state_complete [rockchip_drm_vop]) from [<bf4c3bdc>] > (vop_isr_thread+0x170/0x1d4 [rockchip_drm_vop]) [ 209.700822] [<bf4c3bdc>] > (vop_isr_thread [rockchip_drm_vop]) from [<c00ab93c>] > (irq_thread_fn+0x2c/0x50) [ 209.710284] [<c00ab93c>] (irq_thread_fn) from > [<c00abcac>] (irq_thread+0x13c/0x188) [ 209.717927] [<c00abcac>] > (irq_thread) from [<c00723c8>] (kthread+0xec/0x104) [ 209.724965] > [<c00723c8>] (kthread) from [<c0011638>] (ret_from_fork+0x14/0x3c) [ > 209.732171] ---[ end trace 0690bc604f5d535d ]--- > > Signed-off-by: Daniel Stone <daniels@collabora.com> > Cc: Sjoerd Simons <sjoerd.simons@collabora.co.uk> > Cc: Thierry Reding <treding@nvidia.com> > Cc: Heiko Stuebner <heiko@sntech.de> on a rk3288_veyron_jerry Tested-by: Heiko Stuebner <heiko@sntech.de> Everything up to GLES2 using the binary userspace driver still works
On Mon, Nov 16, 2015 at 12:50:21PM +0000, Daniel Stone wrote: > Passing -1 as the pipe for vblank events now triggers a WARN_ON, but had > previously made multi-screen unusable anyway. Pass the correct pipe to > the event-send function, and use the new API to make this a bit easier > for us. > > Fixes WARN present since cc1ef118fc for every pageflip event sent: > [ 209.549969] ------------[ cut here ]------------ > [ 209.554592] WARNING: CPU: 3 PID: 238 at drivers/gpu/drm/drm_irq.c:924 drm_vblank_count_and_time+0x80/0x88 [drm]() > [ 209.564832] Modules linked in: [...] > [ 209.612401] CPU: 3 PID: 238 Comm: irq/41-ff940000 Tainted: G W 4.3.0-rc6+ #71 > [ 209.620647] Hardware name: Rockchip (Device Tree) > [ 209.625348] [<c001bb80>] (unwind_backtrace) from [<c001615c>] (show_stack+0x20/0x24) > [ 209.633079] [<c001615c>] (show_stack) from [<c02b2c50>] (dump_stack+0x8c/0x9c) > [ 209.640289] [<c02b2c50>] (dump_stack) from [<c0052e88>] (warn_slowpath_common+0x94/0xc4) > [ 209.648364] [<c0052e88>] (warn_slowpath_common) from [<c0052f74>] (warn_slowpath_null+0x2c/0x34) > [ 209.657139] [<c0052f74>] (warn_slowpath_null) from [<bf17dc30>] (drm_vblank_count_and_time+0x80/0x88 [drm]) > [ 209.666875] [<bf17dc30>] (drm_vblank_count_and_time [drm]) from [<bf17e484>] (drm_send_vblank_event+0x74/0x7c [drm]) > [ 209.677385] [<bf17e484>] (drm_send_vblank_event [drm]) from [<bf4c1144>] (vop_win_state_complete+0x4c/0x70 [rockchip_drm_vop]) > [ 209.688757] [<bf4c1144>] (vop_win_state_complete [rockchip_drm_vop]) from [<bf4c3bdc>] (vop_isr_thread+0x170/0x1d4 [rockchip_drm_vop]) > [ 209.700822] [<bf4c3bdc>] (vop_isr_thread [rockchip_drm_vop]) from [<c00ab93c>] (irq_thread_fn+0x2c/0x50) > [ 209.710284] [<c00ab93c>] (irq_thread_fn) from [<c00abcac>] (irq_thread+0x13c/0x188) > [ 209.717927] [<c00abcac>] (irq_thread) from [<c00723c8>] (kthread+0xec/0x104) > [ 209.724965] [<c00723c8>] (kthread) from [<c0011638>] (ret_from_fork+0x14/0x3c) > [ 209.732171] ---[ end trace 0690bc604f5d535d ]--- > > Signed-off-by: Daniel Stone <daniels@collabora.com> > Cc: Sjoerd Simons <sjoerd.simons@collabora.co.uk> > Cc: Thierry Reding <treding@nvidia.com> > Cc: Heiko Stuebner <heiko@sntech.de> > --- > drivers/gpu/drm/rockchip/rockchip_drm_vop.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) Reviewed-by: Thierry Reding <treding@nvidia.com>
On 2015?11?16? 20:50, Daniel Stone wrote: > Passing -1 as the pipe for vblank events now triggers a WARN_ON, but had > previously made multi-screen unusable anyway. Pass the correct pipe to > the event-send function, and use the new API to make this a bit easier > for us. > > Fixes WARN present since cc1ef118fc for every pageflip event sent: > [ 209.549969] ------------[ cut here ]------------ > [ 209.554592] WARNING: CPU: 3 PID: 238 at drivers/gpu/drm/drm_irq.c:924 drm_vblank_count_and_time+0x80/0x88 [drm]() > [ 209.564832] Modules linked in: [...] > [ 209.612401] CPU: 3 PID: 238 Comm: irq/41-ff940000 Tainted: G W 4.3.0-rc6+ #71 > [ 209.620647] Hardware name: Rockchip (Device Tree) > [ 209.625348] [<c001bb80>] (unwind_backtrace) from [<c001615c>] (show_stack+0x20/0x24) > [ 209.633079] [<c001615c>] (show_stack) from [<c02b2c50>] (dump_stack+0x8c/0x9c) > [ 209.640289] [<c02b2c50>] (dump_stack) from [<c0052e88>] (warn_slowpath_common+0x94/0xc4) > [ 209.648364] [<c0052e88>] (warn_slowpath_common) from [<c0052f74>] (warn_slowpath_null+0x2c/0x34) > [ 209.657139] [<c0052f74>] (warn_slowpath_null) from [<bf17dc30>] (drm_vblank_count_and_time+0x80/0x88 [drm]) > [ 209.666875] [<bf17dc30>] (drm_vblank_count_and_time [drm]) from [<bf17e484>] (drm_send_vblank_event+0x74/0x7c [drm]) > [ 209.677385] [<bf17e484>] (drm_send_vblank_event [drm]) from [<bf4c1144>] (vop_win_state_complete+0x4c/0x70 [rockchip_drm_vop]) > [ 209.688757] [<bf4c1144>] (vop_win_state_complete [rockchip_drm_vop]) from [<bf4c3bdc>] (vop_isr_thread+0x170/0x1d4 [rockchip_drm_vop]) > [ 209.700822] [<bf4c3bdc>] (vop_isr_thread [rockchip_drm_vop]) from [<c00ab93c>] (irq_thread_fn+0x2c/0x50) > [ 209.710284] [<c00ab93c>] (irq_thread_fn) from [<c00abcac>] (irq_thread+0x13c/0x188) > [ 209.717927] [<c00abcac>] (irq_thread) from [<c00723c8>] (kthread+0xec/0x104) > [ 209.724965] [<c00723c8>] (kthread) from [<c0011638>] (ret_from_fork+0x14/0x3c) > [ 209.732171] ---[ end trace 0690bc604f5d535d ]--- > > Signed-off-by: Daniel Stone <daniels@collabora.com> > Cc: Sjoerd Simons <sjoerd.simons@collabora.co.uk> > Cc: Thierry Reding <treding@nvidia.com> > Cc: Heiko Stuebner <heiko@sntech.de> > --- > drivers/gpu/drm/rockchip/rockchip_drm_vop.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_vop.c b/drivers/gpu/drm/rockchip/rockchip_drm_vop.c > index 5d8ae5e..ddf6dc2 100644 > --- a/drivers/gpu/drm/rockchip/rockchip_drm_vop.c > +++ b/drivers/gpu/drm/rockchip/rockchip_drm_vop.c > @@ -1289,7 +1289,7 @@ static void vop_win_state_complete(struct vop_win *vop_win, > > if (state->event) { > spin_lock_irqsave(&drm->event_lock, flags); > - drm_send_vblank_event(drm, -1, state->event); > + drm_crtc_send_vblank_event(crtc, state->event); > spin_unlock_irqrestore(&drm->event_lock, flags); > } > Applied to my drm-fixes, Thanks for this fix.
diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_vop.c b/drivers/gpu/drm/rockchip/rockchip_drm_vop.c index 5d8ae5e..ddf6dc2 100644 --- a/drivers/gpu/drm/rockchip/rockchip_drm_vop.c +++ b/drivers/gpu/drm/rockchip/rockchip_drm_vop.c @@ -1289,7 +1289,7 @@ static void vop_win_state_complete(struct vop_win *vop_win, if (state->event) { spin_lock_irqsave(&drm->event_lock, flags); - drm_send_vblank_event(drm, -1, state->event); + drm_crtc_send_vblank_event(crtc, state->event); spin_unlock_irqrestore(&drm->event_lock, flags); }
Passing -1 as the pipe for vblank events now triggers a WARN_ON, but had previously made multi-screen unusable anyway. Pass the correct pipe to the event-send function, and use the new API to make this a bit easier for us. Fixes WARN present since cc1ef118fc for every pageflip event sent: [ 209.549969] ------------[ cut here ]------------ [ 209.554592] WARNING: CPU: 3 PID: 238 at drivers/gpu/drm/drm_irq.c:924 drm_vblank_count_and_time+0x80/0x88 [drm]() [ 209.564832] Modules linked in: [...] [ 209.612401] CPU: 3 PID: 238 Comm: irq/41-ff940000 Tainted: G W 4.3.0-rc6+ #71 [ 209.620647] Hardware name: Rockchip (Device Tree) [ 209.625348] [<c001bb80>] (unwind_backtrace) from [<c001615c>] (show_stack+0x20/0x24) [ 209.633079] [<c001615c>] (show_stack) from [<c02b2c50>] (dump_stack+0x8c/0x9c) [ 209.640289] [<c02b2c50>] (dump_stack) from [<c0052e88>] (warn_slowpath_common+0x94/0xc4) [ 209.648364] [<c0052e88>] (warn_slowpath_common) from [<c0052f74>] (warn_slowpath_null+0x2c/0x34) [ 209.657139] [<c0052f74>] (warn_slowpath_null) from [<bf17dc30>] (drm_vblank_count_and_time+0x80/0x88 [drm]) [ 209.666875] [<bf17dc30>] (drm_vblank_count_and_time [drm]) from [<bf17e484>] (drm_send_vblank_event+0x74/0x7c [drm]) [ 209.677385] [<bf17e484>] (drm_send_vblank_event [drm]) from [<bf4c1144>] (vop_win_state_complete+0x4c/0x70 [rockchip_drm_vop]) [ 209.688757] [<bf4c1144>] (vop_win_state_complete [rockchip_drm_vop]) from [<bf4c3bdc>] (vop_isr_thread+0x170/0x1d4 [rockchip_drm_vop]) [ 209.700822] [<bf4c3bdc>] (vop_isr_thread [rockchip_drm_vop]) from [<c00ab93c>] (irq_thread_fn+0x2c/0x50) [ 209.710284] [<c00ab93c>] (irq_thread_fn) from [<c00abcac>] (irq_thread+0x13c/0x188) [ 209.717927] [<c00abcac>] (irq_thread) from [<c00723c8>] (kthread+0xec/0x104) [ 209.724965] [<c00723c8>] (kthread) from [<c0011638>] (ret_from_fork+0x14/0x3c) [ 209.732171] ---[ end trace 0690bc604f5d535d ]--- Signed-off-by: Daniel Stone <daniels@collabora.com> Cc: Sjoerd Simons <sjoerd.simons@collabora.co.uk> Cc: Thierry Reding <treding@nvidia.com> Cc: Heiko Stuebner <heiko@sntech.de> --- drivers/gpu/drm/rockchip/rockchip_drm_vop.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)