Don't exit the vsync irq handler early when waiting for vsync. Just
because we intend on disabling a window, we still need to update drm on
our vsync.
BUG=None
TEST=Tested on snow, didn't note any regressions
Change-Id: If836cee52c9231ea8112aabdb7518b26789bba70
Signed-off-by: Sean Paul <seanpaul@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/35037
Reviewed-by: Stéphane Marchesin <marcheu@chromium.org>
/* handling VSYNC */
if (val & MXR_INT_STATUS_VSYNC) {
/* handling VSYNC */
if (val & MXR_INT_STATUS_VSYNC) {
-
- if (mctx->event_flags & MXR_EVENT_VSYNC) {
- DRM_DEBUG_KMS("mctx->event_flags & MXR_EVENT_VSYNC");
-
-
- mixer_reg_write(res, MXR_GRAPHIC_WH(1), 0);
- mixer_reg_write(res, MXR_GRAPHIC_SPAN(1), 0);
- mixer_reg_write(res, MXR_GRAPHIC_SXY(1), 0);
- mixer_reg_write(res, MXR_GRAPHIC_DXY(1), 0);
-
- mctx->event_flags &= ~MXR_EVENT_VSYNC;
- wake_up(&mctx->mixer_res.event_queue);
- goto out;
- }
-
/* interlace scan need to check shadow register */
if (mctx->interlace) {
base = mixer_reg_read(res, MXR_GRAPHIC_BASE(0));
/* interlace scan need to check shadow register */
if (mctx->interlace) {
base = mixer_reg_read(res, MXR_GRAPHIC_BASE(0));
for (i = 0; i < MIXER_WIN_NR; i++)
mctx->win_data[i].updated = false;
for (i = 0; i < MIXER_WIN_NR; i++)
mctx->win_data[i].updated = false;
exynos_drm_crtc_finish_pageflip(drm_hdmi_ctx->drm_dev,
mctx->pipe);
exynos_drm_crtc_finish_pageflip(drm_hdmi_ctx->drm_dev,
mctx->pipe);
+
+ if (mctx->event_flags & MXR_EVENT_VSYNC) {
+ DRM_DEBUG_KMS("mctx->event_flags & MXR_EVENT_VSYNC");
+
+ mctx->event_flags &= ~MXR_EVENT_VSYNC;
+ wake_up(&mctx->mixer_res.event_queue);
+ }