Good patch set. will apply them after review and test.<br><br>Thanks,<br>Inki Dae<br><br><div class="gmail_quote">2012/12/26 Prathyush K <span dir="ltr"><<a href="mailto:prathyush.k@samsung.com" target="_blank">prathyush.k@samsung.com</a>></span><br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">This patchset has more fixes for fixing more issues related to wait for vblank.<br>
<br>
Patch 1: add mixer apply function<br>
        The mixer window enabled flag is being done in both exynos_drm_hdmi as<br>
well as exynos_mixer. This patch moves the flag to one place and adds the<br>
mixer apply function similar to fimd apply function.<br>
<br>
Patch 2: fimd: call win_disable only when window is enabled<br>
        Adds a condition to call win_disable only if the window is enabled.<br>
<br>
Patch 3: enable vblank in fimd wait for vblank<br>
        If vblank is disabled, then we turn enable vblank temporarily before<br>
wait for vblank and disable it afterwards. This ensures that the wait will<br>
not timeout.<br>
<br>
Patch 4: fimd: clear channel before enabling iommu<br>
        This patch is required if the fimd window channel is already active<br>
before fimd probe. This could happen if we turn on fimd during uboot. This<br>
patch ensures that we do not get a page fault upon iommu initialization. If<br>
any channel is active, we disable the channel and wait for vblank.<br>
<br>
Patch 5: mixer: do not finish a pageflip if layer update in progress<br>
        Exynos5 supports only 2 layer updates for mixer. This patch<br>
ensures each layer is updated only once per vsync. Also, in case a layer<br>
update is pending, the irq handler exits early. This ensures there is<br>
no corruption on screen as well as there is no page fault during buffer<br>
freeing.<br>
<br>
Patch 6: add complete_scanout interface<br>
    Before freeing a framebuffer, we call complete_scanout encoder<br>
function which just calls wait for vblank of all the encoders.<br>
This is not a very optimized method since a framebuffer might not<br>
be in use by a crtc and we end up waiting for vblank unnecessarily.<br>
Instead, this patch modifies the wait_for_vblank interface to<br>
complete_scanout interface. In this function, each crtc must<br>
check if the fb is currently being used. If it is being used,<br>
it must wait for vsync (or even disable a window if necessary)<br>
and ensure that the buffer is no longer used by crtc before returning.<br>
So if a crtc is not actually reading from the buffer, the complete<br>
scanout function will just return and not wait for vsync.<br>
<br>
Patch 7: hdmi: add complete_scanout function<br>
Patch 8: fimd: add complete_scanout function<br>
        These two patches add the respective complete_scanout functions<br>
for fimd and mixer. These functions check the actual base and shadow<br>
registers of fimd/mixer to see if a particular dma-address is in use<br>
and will wait_for_vblank only if it is in use. Also for mixer, if the<br>
base address matches the fb's dma address, then the window is disabled.<br>
This is because a layer update is already set when the base register<br>
was updated. So unless we disable the window, we cannot free the buffer.<br>
<br>
Akshu Agrawal (1):<br>
  drm/exynos: fimd: clear channel before enabling iommu<br>
<br>
Prathyush K (6):<br>
  drm/exynos: add mixer apply function<br>
  drm/exynos: fimd: call win_disable only when window is enabled<br>
  drm/exynos: enable vblank in fimd wait for vblank<br>
  drm/exynos: add complete_scanout interface<br>
  drm/exynos: hdmi: add complete_scanout function<br>
  drm/exynos: fimd: add complete_scanout function<br>
<br>
Sean Paul (1):<br>
  drm/exynos: mixer: do not finish a pageflip if layer update in<br>
    progress<br>
<br>
 drivers/gpu/drm/exynos/exynos_drm_drv.h     |  7 ++-<br>
 drivers/gpu/drm/exynos/exynos_drm_encoder.c | 23 ++++----<br>
 drivers/gpu/drm/exynos/exynos_drm_encoder.h |  4 +-<br>
 drivers/gpu/drm/exynos/exynos_drm_fb.c      | 13 ++++-<br>
 drivers/gpu/drm/exynos/exynos_drm_fimd.c    | 81 ++++++++++++++++++++++++--<br>
 drivers/gpu/drm/exynos/exynos_drm_hdmi.c    | 26 +++------<br>
 drivers/gpu/drm/exynos/exynos_drm_hdmi.h    |  4 +-<br>
 drivers/gpu/drm/exynos/exynos_mixer.c       | 90 ++++++++++++++++++++++++++---<br>
 drivers/gpu/drm/exynos/regs-mixer.h         |  1 +<br>
 include/video/samsung_fimd.h                |  1 +<br>
 10 files changed, 202 insertions(+), 48 deletions(-)<br>
<span class="HOEnZb"><font color="#888888"><br>
--<br>
1.8.0<br>
<br>
_______________________________________________<br>
dri-devel mailing list<br>
<a href="mailto:dri-devel@lists.freedesktop.org">dri-devel@lists.freedesktop.org</a><br>
<a href="http://lists.freedesktop.org/mailman/listinfo/dri-devel" target="_blank">http://lists.freedesktop.org/mailman/listinfo/dri-devel</a><br>
</font></span></blockquote></div><br>