From: Ville Syrjälä <[email protected]>

Move the underrun check out from intel_overlay_continue()
so that the DOVSTA register access can stay on the display
side of the parent vs. display driver split.

Signed-off-by: Ville Syrjälä <[email protected]>
---
 drivers/gpu/drm/i915/display/intel_overlay.c | 13 +++++++------
 1 file changed, 7 insertions(+), 6 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_overlay.c 
b/drivers/gpu/drm/i915/display/intel_overlay.c
index 9bd11dde29d6..e1707a678acb 100644
--- a/drivers/gpu/drm/i915/display/intel_overlay.c
+++ b/drivers/gpu/drm/i915/display/intel_overlay.c
@@ -331,18 +331,13 @@ static int intel_overlay_continue(struct intel_overlay 
*overlay,
        struct intel_display *display = overlay->display;
        struct i915_request *rq;
        u32 flip_addr = overlay->flip_addr;
-       u32 tmp, *cs;
+       u32 *cs;
 
        drm_WARN_ON(display->drm, !i915_overlay_is_active(display->drm));
 
        if (load_polyphase_filter)
                flip_addr |= OFC_UPDATE;
 
-       /* check for underruns */
-       tmp = intel_de_read(display, DOVSTA);
-       if (tmp & (1 << 17))
-               drm_dbg(display->drm, "overlay underrun, DOVSTA: %x\n", tmp);
-
        rq = alloc_request(overlay, NULL);
        if (IS_ERR(rq))
                return PTR_ERR(rq);
@@ -810,6 +805,7 @@ static int intel_overlay_do_put_image(struct intel_overlay 
*overlay,
        bool scale_changed = false;
        struct i915_vma *vma;
        int ret, tmp_width;
+       u32 tmp;
 
        drm_WARN_ON(display->drm,
                    
!drm_modeset_is_locked(&display->drm->mode_config.connection_mutex));
@@ -895,6 +891,11 @@ static int intel_overlay_do_put_image(struct intel_overlay 
*overlay,
 
        iowrite32(overlay_cmd_reg(params), &regs->OCMD);
 
+       /* check for underruns */
+       tmp = intel_de_read(display, DOVSTA);
+       if (tmp & (1 << 17))
+               drm_dbg(display->drm, "overlay underrun, DOVSTA: %x\n", tmp);
+
        ret = intel_overlay_continue(overlay, vma, scale_changed);
        if (ret)
                goto out_unpin;
-- 
2.52.0

Reply via email to