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