The pipe's layout is not cached, corresponding data structure is zeroed
out each time in the dpu_plane_sspp_atomic_update(), right before the
call to _dpu_plane_set_scanout() -> dpu_format_populate_layout().

Drop plane_addr comparison against previous layout and corresponding
EAGAIN handling.

Reviewed-by: Abhinav Kumar <quic_abhin...@quicinc.com>
Signed-off-by: Dmitry Baryshkov <dmitry.barysh...@linaro.org>
---
 drivers/gpu/drm/msm/disp/dpu1/dpu_formats.c | 10 +---------
 drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c   |  4 +---
 2 files changed, 2 insertions(+), 12 deletions(-)

diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_formats.c 
b/drivers/gpu/drm/msm/disp/dpu1/dpu_formats.c
index d95540309d4d..ec1001e10f4f 100644
--- a/drivers/gpu/drm/msm/disp/dpu1/dpu_formats.c
+++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_formats.c
@@ -918,8 +918,7 @@ int dpu_format_populate_layout(
                struct drm_framebuffer *fb,
                struct dpu_hw_fmt_layout *layout)
 {
-       uint32_t plane_addr[DPU_MAX_PLANES];
-       int i, ret;
+       int ret;
 
        if (!fb || !layout) {
                DRM_ERROR("invalid arguments\n");
@@ -940,9 +939,6 @@ int dpu_format_populate_layout(
        if (ret)
                return ret;
 
-       for (i = 0; i < DPU_MAX_PLANES; ++i)
-               plane_addr[i] = layout->plane_addr[i];
-
        /* Populate the addresses given the fb */
        if (DPU_FORMAT_IS_UBWC(layout->format) ||
                        DPU_FORMAT_IS_TILE(layout->format))
@@ -950,10 +946,6 @@ int dpu_format_populate_layout(
        else
                ret = _dpu_format_populate_addrs_linear(aspace, fb, layout);
 
-       /* check if anything changed */
-       if (!ret && !memcmp(plane_addr, layout->plane_addr, sizeof(plane_addr)))
-               ret = -EAGAIN;
-
        return ret;
 }
 
diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c 
b/drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c
index 2b0ebdd4c207..d6518ef1beb2 100644
--- a/drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c
+++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c
@@ -476,9 +476,7 @@ static void _dpu_plane_set_scanout(struct drm_plane *plane,
        int ret;
 
        ret = dpu_format_populate_layout(aspace, fb, &pipe_cfg->layout);
-       if (ret == -EAGAIN)
-               DPU_DEBUG_PLANE(pdpu, "not updating same src addrs\n");
-       else if (ret)
+       if (ret)
                DPU_ERROR_PLANE(pdpu, "failed to get format layout, %d\n", ret);
        else if (pdpu->pipe_hw->ops.setup_sourceaddress) {
                trace_dpu_plane_set_scanout(pdpu->pipe_hw->idx,
-- 
2.39.1

Reply via email to