drm/vkms: Use drm_frame directly
authorArthur Grillo <arthurgrillo@riseup.net>
Mon, 18 Nov 2024 18:28:17 +0000 (19:28 +0100)
committerLouis Chauvet <louis.chauvet@bootlin.com>
Fri, 22 Nov 2024 13:00:05 +0000 (14:00 +0100)
Remove intermidiary variables and access the variables directly from
drm_frame. These changes should be noop.

Signed-off-by: Arthur Grillo <arthurgrillo@riseup.net>
Acked-by: Pekka Paalanen <pekka.paalanen@collabora.com>
Reviewed-by: Maíra Canal <mcanal@igalia.com>
Reviewed-by: José Expósito <jose.exposito89@gmail.com>
Reviewed-by: Louis Chauvet <louis.chauvet@bootlin.com>
[Louis Chauvet: Applied review from Maíra]
Link: https://patchwork.freedesktop.org/patch/msgid/20241118-yuv-v14-2-2dbc2f1e222c@bootlin.com
Signed-off-by: Louis Chauvet <louis.chauvet@bootlin.com>
drivers/gpu/drm/vkms/vkms_drv.h
drivers/gpu/drm/vkms/vkms_formats.c
drivers/gpu/drm/vkms/vkms_plane.c
drivers/gpu/drm/vkms/vkms_writeback.c

index 036101ee4ea1cb0a335cd2ea78a8ca9da87fbe93..ca1d31463907d49d9df9b2b027d8d574b05ce939 100644 (file)
@@ -42,9 +42,6 @@ struct vkms_frame_info {
        struct drm_rect rotated;
        struct iosys_map map[DRM_FORMAT_MAX_PLANES];
        unsigned int rotation;
-       unsigned int offset;
-       unsigned int pitch;
-       unsigned int cpp;
 };
 
 struct pixel_argb_u16 {
index e8a5cc235ebb7195340292ce71efed8435ff2748..2a0fbe27d8b28e7e9e8a12ad08a2cac4ba7277e7 100644 (file)
@@ -23,8 +23,9 @@
  */
 static size_t pixel_offset(const struct vkms_frame_info *frame_info, int x, int y)
 {
-       return frame_info->offset + (y * frame_info->pitch)
-                                 + (x * frame_info->cpp);
+       struct drm_framebuffer *fb = frame_info->fb;
+
+       return fb->offsets[0] + (y * fb->pitches[0]) + (x * fb->format->cpp[0]);
 }
 
 /**
@@ -154,12 +155,12 @@ void vkms_compose_row(struct line_buffer *stage_buffer, struct vkms_plane_state
        u8 *src_pixels = get_packed_src_addr(frame_info, y);
        int limit = min_t(size_t, drm_rect_width(&frame_info->dst), stage_buffer->n_pixels);
 
-       for (size_t x = 0; x < limit; x++, src_pixels += frame_info->cpp) {
+       for (size_t x = 0; x < limit; x++, src_pixels += frame_info->fb->format->cpp[0]) {
                int x_pos = get_x_position(frame_info, limit, x);
 
                if (drm_rotation_90_or_270(frame_info->rotation))
                        src_pixels = get_packed_src_addr(frame_info, x + frame_info->rotated.y1)
-                               + frame_info->cpp * y;
+                               + frame_info->fb->format->cpp[0] * y;
 
                plane->pixel_read(src_pixels, &out_pixels[x_pos]);
        }
@@ -253,7 +254,7 @@ void vkms_writeback_row(struct vkms_writeback_job *wb,
        struct pixel_argb_u16 *in_pixels = src_buffer->pixels;
        int x_limit = min_t(size_t, drm_rect_width(&frame_info->dst), src_buffer->n_pixels);
 
-       for (size_t x = 0; x < x_limit; x++, dst_pixels += frame_info->cpp)
+       for (size_t x = 0; x < x_limit; x++, dst_pixels += frame_info->fb->format->cpp[0])
                wb->pixel_write(dst_pixels, &in_pixels[x]);
 }
 
index ddd8b54bde9be1ea9cf63f5f45f0690b3d81eec2..5e97d7f6ddaba27654b269c77d19006b07b5a63c 100644 (file)
@@ -125,9 +125,6 @@ static void vkms_plane_atomic_update(struct drm_plane *plane,
        drm_rect_rotate(&frame_info->rotated, drm_rect_width(&frame_info->rotated),
                        drm_rect_height(&frame_info->rotated), frame_info->rotation);
 
-       frame_info->offset = fb->offsets[0];
-       frame_info->pitch = fb->pitches[0];
-       frame_info->cpp = fb->format->cpp[0];
        vkms_plane_state->pixel_read = get_pixel_conversion_function(fmt);
 }
 
index 999d5c01ea8116b2f3de285a79a8922901d82a7d..79918b44fedd7ae2451d1d530fc6d5aabf2d99a3 100644 (file)
@@ -149,11 +149,6 @@ static void vkms_wb_atomic_commit(struct drm_connector *conn,
        crtc_state->active_writeback = active_wb;
        crtc_state->wb_pending = true;
        spin_unlock_irq(&output->composer_lock);
-
-       wb_frame_info->offset = fb->offsets[0];
-       wb_frame_info->pitch = fb->pitches[0];
-       wb_frame_info->cpp = fb->format->cpp[0];
-
        drm_writeback_queue_job(wb_conn, connector_state);
        active_wb->pixel_write = get_pixel_write_function(wb_format);
        drm_rect_init(&wb_frame_info->src, 0, 0, crtc_width, crtc_height);