Messages in this thread | | | Date | Thu, 9 Oct 2014 11:58:52 +0200 | From | Thierry Reding <> | Subject | Re: [PATCH] drm/exynos: fix vblank handling during dpms off |
| |
On Thu, Oct 09, 2014 at 09:52:58AM +0100, Russell King - ARM Linux wrote: > On Thu, Oct 09, 2014 at 02:43:02PM +0900, Alexandre Courbot wrote: > > But there might be another issue, which is that calls to > > drm_vblank_get() will return -EINVAL if invoked between drm_blank_off > > and drm_blank_on. Is this really the desired behavior? Can it at least > > happen? If so, how are drivers supposed to react to this situation? > > I've not yet seen the commit which causes this problem, but I hope > that drm_wait_vblank() isn't affected by this. In current mainline, > drm_vblank_get() is used inside drm_wait_vblank(), which is called as > a result of userspace calling DRM_IOCTL_WAIT_VBLANK. > > So, what is the effect of this change on user applications making use > of the vblank wait ioctl - and is that change intended?
There's no effect on user applications if the driver behaves properly. As far as I can tell, every driver that calls drm_vblank_off() but not drm_vblank_on() will break. You can easily test this by running libdrm modetest -s ... -v, which instead of toggling between the test pattern and an all-gray framebuffer will switch to the gray one once and then hang.
I guess that was probably not intended, but according to the new rules all these drivers have now become buggy. So before merging this patch I think we need to fix existing drivers to avoid regressions.
Thierry [unhandled content-type:application/pgp-signature] | |