]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
drm/client: Remove pitch from struct drm_client_buffer
authorThomas Zimmermann <tzimmermann@suse.de>
Mon, 27 Oct 2025 12:09:12 +0000 (13:09 +0100)
committerThomas Zimmermann <tzimmermann@suse.de>
Thu, 30 Oct 2025 20:01:12 +0000 (21:01 +0100)
Only the client-buffer setup uses the pitch field from struct
drm_client_buffer. Remove the field and pass the value among setup
helpers.

Clients that need the pitch should rather look at the framebuffer's
pitches[0] directly.

Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Reviewed-by: Jocelyn Falempe <jfalempe@redhat.com>
Tested-by: Francesco Valla <francesco@valla.it>
Link: https://patch.msgid.link/20251027121042.143588-2-tzimmermann@suse.de
drivers/gpu/drm/drm_client.c
include/drm/drm_client.h

index fe9c6d7083ea2d94c3900b443813328451510c50..82b871d6231349710c14394e53b313a0132f3f5b 100644 (file)
@@ -188,7 +188,7 @@ static void drm_client_buffer_delete(struct drm_client_buffer *buffer)
 
 static struct drm_client_buffer *
 drm_client_buffer_create(struct drm_client_dev *client, u32 width, u32 height,
-                        u32 format, u32 *handle)
+                        u32 format, u32 *handle, u32 *pitch)
 {
        const struct drm_format_info *info = drm_format_info(format);
        struct drm_mode_create_dumb dumb_args = { };
@@ -216,9 +216,9 @@ drm_client_buffer_create(struct drm_client_dev *client, u32 width, u32 height,
                goto err_delete;
        }
 
-       buffer->pitch = dumb_args.pitch;
        buffer->gem = obj;
        *handle = dumb_args.handle;
+       *pitch = dumb_args.pitch;
 
        return buffer;
 
@@ -353,7 +353,7 @@ static void drm_client_buffer_rmfb(struct drm_client_buffer *buffer)
 
 static int drm_client_buffer_addfb(struct drm_client_buffer *buffer,
                                   u32 width, u32 height, u32 format,
-                                  u32 handle)
+                                  u32 handle, u32 pitch)
 {
        struct drm_client_dev *client = buffer->client;
        struct drm_mode_fb_cmd2 fb_req = { };
@@ -363,7 +363,7 @@ static int drm_client_buffer_addfb(struct drm_client_buffer *buffer,
        fb_req.height = height;
        fb_req.pixel_format = format;
        fb_req.handles[0] = handle;
-       fb_req.pitches[0] = buffer->pitch;
+       fb_req.pitches[0] = pitch;
 
        ret = drm_mode_addfb2(client->dev, &fb_req, client->file);
        if (ret)
@@ -399,15 +399,15 @@ struct drm_client_buffer *
 drm_client_framebuffer_create(struct drm_client_dev *client, u32 width, u32 height, u32 format)
 {
        struct drm_client_buffer *buffer;
-       u32 handle;
+       u32 handle, pitch;
        int ret;
 
        buffer = drm_client_buffer_create(client, width, height, format,
-                                         &handle);
+                                         &handle, &pitch);
        if (IS_ERR(buffer))
                return buffer;
 
-       ret = drm_client_buffer_addfb(buffer, width, height, format, handle);
+       ret = drm_client_buffer_addfb(buffer, width, height, format, handle, pitch);
 
        /*
         * The handle is only needed for creating the framebuffer, destroy it
index 715b422952eebee19d00e0c5fcf793983a58a3a8..c674464f7e7466f06993d23a1f8b207a5a7f8016 100644 (file)
@@ -173,11 +173,6 @@ struct drm_client_buffer {
         */
        struct drm_client_dev *client;
 
-       /**
-        * @pitch: Buffer pitch
-        */
-       u32 pitch;
-
        /**
         * @gem: GEM object backing this buffer
         *