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/vmwgfx: Compute dumb-buffer sizes with drm_mode_size_dumb()

Call drm_mode_size_dumb() to compute dumb-buffer scanline pitch
and buffer size. No alignment required.

Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Reviewed-by: Zack Rusin <zack.rusin@broadcom.com>
Cc: Zack Rusin <zack.rusin@broadcom.com>
Cc: Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>
Link: https://lore.kernel.org/r/20250821081918.79786-23-tzimmermann@suse.de

+4 -17
+4 -17
drivers/gpu/drm/vmwgfx/vmwgfx_surface.c
··· 15 15 #include "vmw_surface_cache.h" 16 16 #include "device_include/svga3d_surfacedefs.h" 17 17 18 + #include <drm/drm_dumb_buffers.h> 18 19 #include <drm/ttm/ttm_placement.h> 19 20 20 21 #define SVGA3D_FLAGS_64(upper32, lower32) (((uint64_t)upper32 << 32) | lower32) ··· 2268 2267 * contents is going to be rendered guest side. 2269 2268 */ 2270 2269 if (!dev_priv->has_mob || !vmw_supports_3d(dev_priv)) { 2271 - int cpp = DIV_ROUND_UP(args->bpp, 8); 2272 - 2273 - switch (cpp) { 2274 - case 1: /* DRM_FORMAT_C8 */ 2275 - case 2: /* DRM_FORMAT_RGB565 */ 2276 - case 4: /* DRM_FORMAT_XRGB8888 */ 2277 - break; 2278 - default: 2279 - /* 2280 - * Dumb buffers don't allow anything else. 2281 - * This is tested via IGT's dumb_buffers 2282 - */ 2283 - return -EINVAL; 2284 - } 2285 - 2286 - args->pitch = args->width * cpp; 2287 - args->size = ALIGN(args->pitch * args->height, PAGE_SIZE); 2270 + ret = drm_mode_size_dumb(dev, args, 0, 0); 2271 + if (ret) 2272 + return ret; 2288 2273 2289 2274 ret = vmw_gem_object_create_with_handle(dev_priv, file_priv, 2290 2275 args->size, &args->handle,