2012/12/5 Prathyush K <prathyus...@samsung.com> > This patchset fixes a few issues with use of wait for vblank in > exynos drm. > > Please apply these three patches without "drm/exynos: release fb pended by > page flip" > patch. > > Patch 1: modify wait for vsync functions to use wait queues > This modifies the wait_for_vblank functions to use wait queues > thus ensuring that the current task goes to sleep without taking > up CPU while waiting. > > Patch 2: move wait_for_vblank to manager_ops > Currently, we do not call wait for vblank if encoder is in DPMS_OFF > state inside exynos_drm_encoder_complete_scanout function. This is > because wait for vblank is treated as an overlay op.
This can be > modified to a manager_op thus removing the above check for DPMS_OFF. > This fixes a crash while removing a fb. > While removing the current fb (crtc->fb == fb) the encoder > dpms off is called and then the framebuffer is removed. So in > this case, the wait for vblank is not called thus leading to a crash > (since fb might get removed before dma is finished) > > Patch 3: do not disable crtc if already off > We should not disable the overlay if the crtc is in DPMS_OFF state. > Also, the disable function should not call DPMS_OFF of the crtc. > This is required to ensure we are able to wait for vblank > before freeing any framebuffers after disabling the crtc. > > With these three patches and without "drm/exynos: release fb pended by > page flip" > I could not find any crash/page_fault in drm with fimd/hdmi during hotplug > and page flips. > > It seems better than old one and also including some exception codes, Patch 3 we did't consider. Ok, we will test these patches and merge them instead of old one if no problem. Thanks, Inki Dae > Prathyush K (3) > drm/exynos: modify wait for vsync functions to use wait queues > drm/exynos: move wait_for_vblank to manager_ops > drm/exynos: do not disable crtc if already off > > drivers/gpu/drm/exynos/exynos_drm_crtc.c | 6 +++- > drivers/gpu/drm/exynos/exynos_drm_drv.h | 20 ++------------ > drivers/gpu/drm/exynos/exynos_drm_encoder.c | 15 +++-------- > drivers/gpu/drm/exynos/exynos_drm_fimd.c | 37 > ++++++++++++++++++-------- > drivers/gpu/drm/exynos/exynos_drm_hdmi.c | 22 ++++++++-------- > drivers/gpu/drm/exynos/exynos_drm_hdmi.h | 2 +- > drivers/gpu/drm/exynos/exynos_mixer.c | 37 > +++++++++++++++++--------- > 7 files changed, 73 insertions(+), 66 deletions(-) > > _______________________________________________ > dri-devel mailing list > dri-devel@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/dri-devel >
_______________________________________________ dri-devel mailing list dri-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/dri-devel