On Fri, Sep 12, 2014 at 09:48:59AM +0200, Daniel Vetter wrote: [...]
Ville Syrjälä (16): drm: Always reject drm_vblank_get() after drm_vblank_off()
This particular commit seems to be wreaking havoc. Inki already reported this at some point and Andrzej and Joonyoung tried to fix this on Exynos already, but it seems like a couple more drivers would suffer from this. At least those using drm_vblank_off() but not drm_vblank_on() would see the same issue.
A quick grep indicate that Armada, Exynos, GMA500 and STI would all suffer from the same problem. Adding the respective maintainers. I've used the attached patch to fix the issue on Tegra.
Ville, does that conversion look right? Perhaps it would be safer to call drm_crtc_vblank_on() before activating the CRTC to avoid a potential race? It seems like drm_vblank_on() and drm_vblank_off() would replace drm_vblank_{pre,post}_modeset() completely, so I've removed them as part of the patch as well.
I suppose the attached patch and equivalent ones for the other drivers would need to be carried in this series to avoid regressions.
Thierry