Use the generic helper code.

Signed-off-by: Andrzej Pietrasiewicz <andrze...@collabora.com>
---
 .../arm/display/komeda/komeda_framebuffer.c   | 46 +++++++++----------
 1 file changed, 21 insertions(+), 25 deletions(-)

diff --git a/drivers/gpu/drm/arm/display/komeda/komeda_framebuffer.c 
b/drivers/gpu/drm/arm/display/komeda/komeda_framebuffer.c
index 6ac4a599ab5d..77186f70bdf3 100644
--- a/drivers/gpu/drm/arm/display/komeda/komeda_framebuffer.c
+++ b/drivers/gpu/drm/arm/display/komeda/komeda_framebuffer.c
@@ -89,42 +89,38 @@ komeda_fb_afbc_size_check(struct komeda_fb *kfb,
 }
 
 static int
-komeda_fb_none_afbc_size_check(struct komeda_dev *mdev,
+komeda_fb_none_afbc_size_check(struct drm_device *dev,
                               const struct drm_format_info *info,
                               struct drm_gem_object **objs,
                               struct drm_file *file,
                               const struct drm_mode_fb_cmd2 *mode_cmd)
 {
+       struct komeda_dev *mdev = dev->dev_private;
+       struct drm_size_check check = { 0 };
        struct drm_gem_object *obj;
-       u32 i, block_h;
-       u64 min_size;
+       u32 i;
 
        for (i = 0; i < info->num_planes; i++) {
                obj = objs[i];
 
-               block_h = drm_format_info_block_height(info, i);
-               if ((mode_cmd->pitches[i] * block_h) % mdev->chip.bus_width) {
-                       DRM_DEBUG_KMS("Pitch[%d]: 0x%x doesn't align to 0x%x\n",
-                                     i, mode_cmd->pitches[i],
-                                     mdev->chip.bus_width);
-                       return -EINVAL;
-               }
-
-               min_size = komeda_fb_get_pixel_addr_nofb(info,
-                                                        mode_cmd->modifier[0],
-                                                        mode_cmd->pitches,
-                                                        mode_cmd->offsets,
-                                                        obj,
-                                                        0, mode_cmd->height, i)
-                        - to_drm_gem_cma_obj(obj)->paddr;
-               if (obj->size < min_size) {
-                       DRM_DEBUG_KMS("The fb->obj[%d] size: 0x%zx lower than 
the minimum requirement: 0x%llx.\n",
-                                     i, obj->size, min_size);
-                       return -EINVAL;
-               }
+               check.pitch_multiplier[i] =
+                       drm_format_info_block_height(info, i);
+
+               check.min_size[i] =
+                       komeda_fb_get_pixel_addr_nofb(info,
+                                                     mode_cmd->modifier[0],
+                                                     mode_cmd->pitches,
+                                                     mode_cmd->offsets,
+                                                     obj,
+                                                     0, mode_cmd->height, i)
+                       - to_drm_gem_cma_obj(obj)->paddr;
        }
 
-       return 0;
+       check.pitch_modulo = mdev->chip.bus_width;
+       check.use_pitch_multiplier = true;
+       check.use_min_size = true;
+
+       return drm_gem_fb_size_check_special(dev, mode_cmd, &check, objs);
 }
 
 struct drm_framebuffer *
@@ -173,7 +169,7 @@ komeda_fb_create(struct drm_device *dev, struct drm_file 
*file,
                if (ret)
                        goto err_cleanup;
 
-               ret = komeda_fb_none_afbc_size_check(mdev, info, objs,
+               ret = komeda_fb_none_afbc_size_check(dev, info, objs,
                                                     file, mode_cmd);
        }
        if (ret < 0)
-- 
2.17.1

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

Reply via email to