]> www.infradead.org Git - users/dwmw2/linux.git/commitdiff
drm: Replace drm_framebuffer plane size functions with its equivalents
authorCarlos Eduardo Gallo Filho <gcarlos@disroot.org>
Tue, 26 Sep 2023 14:15:19 +0000 (11:15 -0300)
committerThomas Zimmermann <tzimmermann@suse.de>
Thu, 12 Oct 2023 07:51:29 +0000 (09:51 +0200)
The functions drm_framebuffer_plane_{width,height} and
fb_plane_{width,height} do exactly the same job of its
equivalents drm_format_info_plane_{width,height} from drm_fourcc.

The only reason to have these functions on drm_framebuffer
would be if they would added a abstraction layer to call it just
passing a drm_framebuffer pointer and the desired plane index,
which is not the case, where these functions actually implements
just part of it. In the actual implementation, every call to both
drm_framebuffer_plane_{width,height} and fb_plane_{width,height} should
pass some drm_framebuffer attribute, which is the same as calling the
drm_format_info_plane_{width,height} functions.

The drm_format_info_pane_{width,height} functions are much more
consistent in both its implementation and its location on code. The
kind of calculation that they do is intrinsically derivated from the
drm_format_info struct and has not to do with drm_framebuffer, except
by the potential motivation described above, which is still not a good
justification to have drm_framebuffer functions to calculate it.

So, replace each drm_framebuffer_plane_{width,height} and
fb_plane_{width,height} call to drm_format_info_plane_{width,height}
and remove them.

Signed-off-by: Carlos Eduardo Gallo Filho <gcarlos@disroot.org>
Reviewed-by: André Almeida <andrealmeid@igalia.com>
Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Link: https://patchwork.freedesktop.org/patch/msgid/20230926141519.9315-3-gcarlos@disroot.org
drivers/gpu/drm/drm_framebuffer.c
drivers/gpu/drm/i915/display/intel_fb.c
include/drm/drm_framebuffer.h

index ba51deb6d04247cb65c67b9ab72a86827d2320fd..d3ba0698b84b4241cf888dee0587b7704405d371 100644 (file)
@@ -151,24 +151,6 @@ int drm_mode_addfb_ioctl(struct drm_device *dev,
        return drm_mode_addfb(dev, data, file_priv);
 }
 
-static int fb_plane_width(int width,
-                         const struct drm_format_info *format, int plane)
-{
-       if (plane == 0)
-               return width;
-
-       return DIV_ROUND_UP(width, format->hsub);
-}
-
-static int fb_plane_height(int height,
-                          const struct drm_format_info *format, int plane)
-{
-       if (plane == 0)
-               return height;
-
-       return DIV_ROUND_UP(height, format->vsub);
-}
-
 static int framebuffer_check(struct drm_device *dev,
                             const struct drm_mode_fb_cmd2 *r)
 {
@@ -196,8 +178,8 @@ static int framebuffer_check(struct drm_device *dev,
        info = drm_get_format_info(dev, r);
 
        for (i = 0; i < info->num_planes; i++) {
-               unsigned int width = fb_plane_width(r->width, info, i);
-               unsigned int height = fb_plane_height(r->height, info, i);
+               unsigned int width = drm_format_info_plane_width(info, r->width, i);
+               unsigned int height = drm_format_info_plane_height(info, r->height, i);
                unsigned int block_size = info->char_per_block[i];
                u64 min_pitch = drm_format_info_min_pitch(info, i, width);
 
@@ -1136,44 +1118,6 @@ void drm_framebuffer_remove(struct drm_framebuffer *fb)
 }
 EXPORT_SYMBOL(drm_framebuffer_remove);
 
-/**
- * drm_framebuffer_plane_width - width of the plane given the first plane
- * @width: width of the first plane
- * @fb: the framebuffer
- * @plane: plane index
- *
- * Returns:
- * The width of @plane, given that the width of the first plane is @width.
- */
-int drm_framebuffer_plane_width(int width,
-                               const struct drm_framebuffer *fb, int plane)
-{
-       if (plane >= fb->format->num_planes)
-               return 0;
-
-       return fb_plane_width(width, fb->format, plane);
-}
-EXPORT_SYMBOL(drm_framebuffer_plane_width);
-
-/**
- * drm_framebuffer_plane_height - height of the plane given the first plane
- * @height: height of the first plane
- * @fb: the framebuffer
- * @plane: plane index
- *
- * Returns:
- * The height of @plane, given that the height of the first plane is @height.
- */
-int drm_framebuffer_plane_height(int height,
-                                const struct drm_framebuffer *fb, int plane)
-{
-       if (plane >= fb->format->num_planes)
-               return 0;
-
-       return fb_plane_height(height, fb->format, plane);
-}
-EXPORT_SYMBOL(drm_framebuffer_plane_height);
-
 void drm_framebuffer_print_info(struct drm_printer *p, unsigned int indent,
                                const struct drm_framebuffer *fb)
 {
@@ -1189,8 +1133,8 @@ void drm_framebuffer_print_info(struct drm_printer *p, unsigned int indent,
 
        for (i = 0; i < fb->format->num_planes; i++) {
                drm_printf_indent(p, indent + 1, "size[%u]=%dx%d\n", i,
-                                 drm_framebuffer_plane_width(fb->width, fb, i),
-                                 drm_framebuffer_plane_height(fb->height, fb, i));
+                                 drm_format_info_plane_width(fb->format, fb->width, i),
+                                 drm_format_info_plane_height(fb->format, fb->height, i));
                drm_printf_indent(p, indent + 1, "pitch[%u]=%u\n", i, fb->pitches[i]);
                drm_printf_indent(p, indent + 1, "offset[%u]=%u\n", i, fb->offsets[i]);
                drm_printf_indent(p, indent + 1, "obj[%u]:%s\n", i,
index e7678571b0d78c0ad54e2d79d3b18778c2da205a..19b35ece31f1b7b245681ea7f58d75a4417b5668 100644 (file)
@@ -1117,7 +1117,7 @@ static int intel_fb_offset_to_xy(int *x, int *y,
                return -EINVAL;
        }
 
-       height = drm_framebuffer_plane_height(fb->height, fb, color_plane);
+       height = drm_format_info_plane_height(fb->format, fb->height, color_plane);
        height = ALIGN(height, intel_tile_height(fb, color_plane));
 
        /* Catch potential overflows early */
index 0dcc07b68654844ba80c4c812451b52921fa1978..80ece7b6dd9b59a81626276d849009c22d1b4b9a 100644 (file)
@@ -292,11 +292,6 @@ static inline void drm_framebuffer_assign(struct drm_framebuffer **p,
             &fb->head != (&(dev)->mode_config.fb_list);                        \
             fb = list_next_entry(fb, head))
 
-int drm_framebuffer_plane_width(int width,
-                               const struct drm_framebuffer *fb, int plane);
-int drm_framebuffer_plane_height(int height,
-                                const struct drm_framebuffer *fb, int plane);
-
 /**
  * struct drm_afbc_framebuffer - a special afbc frame buffer object
  *