mirror of
https://github.com/torvalds/linux.git
synced 2026-05-28 09:04:39 +02:00
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
This commit is contained in:
parent
6fd37c99b8
commit
1a4a527f9d
|
|
@ -15,6 +15,7 @@
|
|||
#include "vmw_surface_cache.h"
|
||||
#include "device_include/svga3d_surfacedefs.h"
|
||||
|
||||
#include <drm/drm_dumb_buffers.h>
|
||||
#include <drm/ttm/ttm_placement.h>
|
||||
|
||||
#define SVGA3D_FLAGS_64(upper32, lower32) (((uint64_t)upper32 << 32) | lower32)
|
||||
|
|
@ -2267,23 +2268,9 @@ int vmw_dumb_create(struct drm_file *file_priv,
|
|||
* contents is going to be rendered guest side.
|
||||
*/
|
||||
if (!dev_priv->has_mob || !vmw_supports_3d(dev_priv)) {
|
||||
int cpp = DIV_ROUND_UP(args->bpp, 8);
|
||||
|
||||
switch (cpp) {
|
||||
case 1: /* DRM_FORMAT_C8 */
|
||||
case 2: /* DRM_FORMAT_RGB565 */
|
||||
case 4: /* DRM_FORMAT_XRGB8888 */
|
||||
break;
|
||||
default:
|
||||
/*
|
||||
* Dumb buffers don't allow anything else.
|
||||
* This is tested via IGT's dumb_buffers
|
||||
*/
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
args->pitch = args->width * cpp;
|
||||
args->size = ALIGN(args->pitch * args->height, PAGE_SIZE);
|
||||
ret = drm_mode_size_dumb(dev, args, 0, 0);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
ret = vmw_gem_object_create_with_handle(dev_priv, file_priv,
|
||||
args->size, &args->handle,
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user