The function msm_framebuffer_iova() can not fail, it always returns a
valid address. Drop the useless checks (that were already performed at
the time) and make dpu_format_populate_addrs() return void.

Signed-off-by: Dmitry Baryshkov <dmitry.barysh...@linaro.org>
---
 .../gpu/drm/msm/disp/dpu1/dpu_encoder_phys_wb.c    |  6 +--
 drivers/gpu/drm/msm/disp/dpu1/dpu_formats.c        | 62 +++++-----------------
 drivers/gpu/drm/msm/disp/dpu1/dpu_formats.h        | 10 ++--
 drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c          | 14 ++---
 4 files changed, 21 insertions(+), 71 deletions(-)

diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder_phys_wb.c 
b/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder_phys_wb.c
index d8e37400d852..fcd5a073e2b7 100644
--- a/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder_phys_wb.c
+++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder_phys_wb.c
@@ -590,11 +590,7 @@ static void dpu_encoder_phys_wb_prepare_wb_job(struct 
dpu_encoder_phys *phys_enc
                return;
        }
 
-       ret = dpu_format_populate_addrs(aspace, job->fb, &wb_cfg->dest);
-       if (ret) {
-               DPU_DEBUG("failed to populate layout %d\n", ret);
-               return;
-       }
+       dpu_format_populate_addrs(aspace, job->fb, &wb_cfg->dest);
 
        wb_cfg->dest.width = job->fb->width;
        wb_cfg->dest.height = job->fb->height;
diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_formats.c 
b/drivers/gpu/drm/msm/disp/dpu1/dpu_formats.c
index abe3a1c0e409..095bb947f1ff 100644
--- a/drivers/gpu/drm/msm/disp/dpu1/dpu_formats.c
+++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_formats.c
@@ -277,25 +277,15 @@ int dpu_format_populate_plane_sizes(
        return _dpu_format_populate_plane_sizes_linear(fmt, fb, layout);
 }
 
-static int _dpu_format_populate_addrs_ubwc(
-               struct msm_gem_address_space *aspace,
-               struct drm_framebuffer *fb,
-               struct dpu_hw_fmt_layout *layout)
+static void _dpu_format_populate_addrs_ubwc(struct msm_gem_address_space 
*aspace,
+                                           struct drm_framebuffer *fb,
+                                           struct dpu_hw_fmt_layout *layout)
 {
        const struct msm_format *fmt;
        uint32_t base_addr = 0;
        bool meta;
 
-       if (!fb || !layout) {
-               DRM_ERROR("invalid pointers\n");
-               return -EINVAL;
-       }
-
        base_addr = msm_framebuffer_iova(fb, aspace, 0);
-       if (!base_addr) {
-               DRM_ERROR("failed to retrieve base addr\n");
-               return -EFAULT;
-       }
 
        fmt = msm_framebuffer_format(fb);
        meta = MSM_FORMAT_IS_UBWC(fmt);
@@ -330,7 +320,7 @@ static int _dpu_format_populate_addrs_ubwc(
                        + layout->plane_size[2] + layout->plane_size[3];
 
                if (!meta)
-                       return 0;
+                       return;
 
                /* configure Y metadata plane */
                layout->plane_addr[2] = base_addr;
@@ -361,60 +351,36 @@ static int _dpu_format_populate_addrs_ubwc(
                layout->plane_addr[1] = 0;
 
                if (!meta)
-                       return 0;
+                       return;
 
                layout->plane_addr[2] = base_addr;
                layout->plane_addr[3] = 0;
        }
-       return 0;
 }
 
-static int _dpu_format_populate_addrs_linear(
-               struct msm_gem_address_space *aspace,
-               struct drm_framebuffer *fb,
-               struct dpu_hw_fmt_layout *layout)
+static void _dpu_format_populate_addrs_linear(struct msm_gem_address_space 
*aspace,
+                                             struct drm_framebuffer *fb,
+                                             struct dpu_hw_fmt_layout *layout)
 {
        unsigned int i;
 
        /* Populate addresses for simple formats here */
-       for (i = 0; i < layout->num_planes; ++i) {
+       for (i = 0; i < layout->num_planes; ++i)
                layout->plane_addr[i] = msm_framebuffer_iova(fb, aspace, i);
-               if (!layout->plane_addr[i]) {
-                       DRM_ERROR("failed to retrieve base addr\n");
-                       return -EFAULT;
-               }
-       }
-
-       return 0;
 }
 
-int dpu_format_populate_addrs(
-               struct msm_gem_address_space *aspace,
-               struct drm_framebuffer *fb,
-               struct dpu_hw_fmt_layout *layout)
+void dpu_format_populate_addrs(struct msm_gem_address_space *aspace,
+                              struct drm_framebuffer *fb,
+                              struct dpu_hw_fmt_layout *layout)
 {
        const struct msm_format *fmt;
-       int ret;
-
-       if (!fb || !layout) {
-               DRM_ERROR("invalid arguments\n");
-               return -EINVAL;
-       }
-
-       if ((fb->width > DPU_MAX_IMG_WIDTH) ||
-                       (fb->height > DPU_MAX_IMG_HEIGHT)) {
-               DRM_ERROR("image dimensions outside max range\n");
-               return -ERANGE;
-       }
 
        fmt = msm_framebuffer_format(fb);
 
        /* Populate the addresses given the fb */
        if (MSM_FORMAT_IS_UBWC(fmt) ||
                        MSM_FORMAT_IS_TILE(fmt))
-               ret = _dpu_format_populate_addrs_ubwc(aspace, fb, layout);
+               _dpu_format_populate_addrs_ubwc(aspace, fb, layout);
        else
-               ret = _dpu_format_populate_addrs_linear(aspace, fb, layout);
-
-       return ret;
+               _dpu_format_populate_addrs_linear(aspace, fb, layout);
 }
diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_formats.h 
b/drivers/gpu/drm/msm/disp/dpu1/dpu_formats.h
index 2f2bff14c0db..256ca25c37a0 100644
--- a/drivers/gpu/drm/msm/disp/dpu1/dpu_formats.h
+++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_formats.h
@@ -37,14 +37,10 @@ static inline bool dpu_find_format(u32 format, const u32 
*supported_formats,
  * @aspace:            address space pointer
  * @fb:                framebuffer pointer
  * @fmtl:              format layout structure to populate
- *
- * Return: error code on failure, -EAGAIN if success but the addresses
- *         are the same as before or 0 if new addresses were populated
  */
-int dpu_format_populate_addrs(
-               struct msm_gem_address_space *aspace,
-               struct drm_framebuffer *fb,
-               struct dpu_hw_fmt_layout *fmtl);
+void dpu_format_populate_addrs(struct msm_gem_address_space *aspace,
+                              struct drm_framebuffer *fb,
+                              struct dpu_hw_fmt_layout *layout);
 
 int dpu_format_populate_plane_sizes(
                struct drm_framebuffer *fb,
diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c 
b/drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c
index 8191282b8819..1431ea753a4f 100644
--- a/drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c
+++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c
@@ -683,17 +683,9 @@ static int dpu_plane_prepare_fb(struct drm_plane *plane,
                return ret;
        }
 
-       /* validate framebuffer layout before commit */
-       ret = dpu_format_populate_addrs(pstate->aspace,
-                                       new_state->fb,
-                                       &pstate->layout);
-       if (ret) {
-               DPU_ERROR_PLANE(pdpu, "failed to get format layout, %d\n", ret);
-               if (pstate->aspace)
-                       msm_framebuffer_cleanup(new_state->fb, pstate->aspace,
-                                               pstate->needs_dirtyfb);
-               return ret;
-       }
+       dpu_format_populate_addrs(pstate->aspace,
+                                 new_state->fb,
+                                 &pstate->layout);
 
        return 0;
 }

-- 
2.39.2

Reply via email to