[PATCHv4 26/36] drm/komeda: Factor in the invocation of special helper
Andrzej Pietrasiewicz
andrzej.p at collabora.com
Fri Dec 13 15:58:57 UTC 2019
Don't use a separate function to call the helper. The ultimate goal is
to unify non-afbc and afbc cases as much as possible and then moving the
helper invocation outside the if-else clause.
Signed-off-by: Andrzej Pietrasiewicz <andrzej.p at collabora.com>
---
.../arm/display/komeda/komeda_framebuffer.c | 58 +++++++------------
1 file changed, 21 insertions(+), 37 deletions(-)
diff --git a/drivers/gpu/drm/arm/display/komeda/komeda_framebuffer.c b/drivers/gpu/drm/arm/display/komeda/komeda_framebuffer.c
index 77186f70bdf3..6898407d1b63 100644
--- a/drivers/gpu/drm/arm/display/komeda/komeda_framebuffer.c
+++ b/drivers/gpu/drm/arm/display/komeda/komeda_framebuffer.c
@@ -88,41 +88,6 @@ komeda_fb_afbc_size_check(struct komeda_fb *kfb,
return 0;
}
-static int
-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;
-
- for (i = 0; i < info->num_planes; i++) {
- obj = objs[i];
-
- 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;
- }
-
- 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 *
komeda_fb_create(struct drm_device *dev, struct drm_file *file,
const struct drm_mode_fb_cmd2 *mode_cmd)
@@ -164,13 +129,32 @@ komeda_fb_create(struct drm_device *dev, struct drm_file *file,
ret = komeda_fb_afbc_size_check(kfb, info, objs, file,
mode_cmd);
} else {
+ struct drm_size_check check = { 0 };
+
ret = komeda_fb_check_src_coords(kfb, 0, 0, mode_cmd->width,
mode_cmd->height);
if (ret)
goto err_cleanup;
- ret = komeda_fb_none_afbc_size_check(dev, info, objs,
- file, mode_cmd);
+ for (i = 0; i < num_planes; i++) {
+ 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, objs[i],
+ 0, mode_cmd->height, i)
+ - to_drm_gem_cma_obj(objs[i])->paddr;
+ }
+
+ check.pitch_modulo = mdev->chip.bus_width;
+ check.use_pitch_multiplier = true;
+ check.use_min_size = true;
+
+ ret = drm_gem_fb_size_check_special(dev, mode_cmd, &check,
+ objs);
}
if (ret < 0)
goto err_cleanup;
--
2.17.1
More information about the dri-devel
mailing list