Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

drm/renesas/rcar-du: Compute dumb-buffer sizes with drm_mode_size_dumb()

Call drm_mode_size_dumb() to compute dumb-buffer scanline pitch and
buffer size. Align the pitch according to hardware requirements.

Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Cc: Kieran Bingham <kieran.bingham+renesas@ideasonboard.com>
Reviewed-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Reviewed-by: Tomi Valkeinen <tomi.valkeinen+renesas@ideasonboard.com>
Link: https://lore.kernel.org/r/20250821081918.79786-18-tzimmermann@suse.de

+5 -2
+5 -2
drivers/gpu/drm/renesas/rcar-du/rcar_du_kms.c
··· 11 11 #include <drm/drm_atomic_helper.h> 12 12 #include <drm/drm_crtc.h> 13 13 #include <drm/drm_device.h> 14 + #include <drm/drm_dumb_buffers.h> 14 15 #include <drm/drm_framebuffer.h> 15 16 #include <drm/drm_gem_dma_helper.h> 16 17 #include <drm/drm_gem_framebuffer_helper.h> ··· 408 407 struct drm_mode_create_dumb *args) 409 408 { 410 409 struct rcar_du_device *rcdu = to_rcar_du_device(dev); 411 - unsigned int min_pitch = DIV_ROUND_UP(args->width * args->bpp, 8); 412 410 unsigned int align; 411 + int ret; 413 412 414 413 /* 415 414 * The R8A7779 DU requires a 16 pixels pitch alignment as documented, ··· 420 419 else 421 420 align = 16 * args->bpp / 8; 422 421 423 - args->pitch = roundup(min_pitch, align); 422 + ret = drm_mode_size_dumb(dev, args, align, 0); 423 + if (ret) 424 + return ret; 424 425 425 426 return drm_gem_dma_dumb_create_internal(file, dev, args); 426 427 }