mirror of
https://gitlab.freedesktop.org/mesa/drm.git
synced 2026-05-05 00:48:08 +02:00
tegra: Extract common buffer object allocation code
All of the buffer object allocation functions use the same boilerplate code. Move that code into a separate function that can be reused. Reviewed-by: Mikko Perttunen <mperttunen@nvidia.com> Signed-off-by: Thierry Reding <treding@nvidia.com>
This commit is contained in:
parent
bec2a28e98
commit
e44e781603
1 changed files with 22 additions and 13 deletions
|
|
@ -97,6 +97,26 @@ drm_public void drm_tegra_close(struct drm_tegra *drm)
|
|||
free(drm);
|
||||
}
|
||||
|
||||
static struct drm_tegra_bo *drm_tegra_bo_alloc(struct drm_tegra *drm,
|
||||
uint32_t handle,
|
||||
uint32_t flags,
|
||||
uint32_t size)
|
||||
{
|
||||
struct drm_tegra_bo *bo;
|
||||
|
||||
bo = calloc(1, sizeof(*bo));
|
||||
if (!bo)
|
||||
return NULL;
|
||||
|
||||
atomic_set(&bo->ref, 1);
|
||||
bo->handle = handle;
|
||||
bo->flags = flags;
|
||||
bo->size = size;
|
||||
bo->drm = drm;
|
||||
|
||||
return bo;
|
||||
}
|
||||
|
||||
drm_public int
|
||||
drm_tegra_bo_new(struct drm_tegra_bo **bop, struct drm_tegra *drm,
|
||||
uint32_t flags, uint32_t size)
|
||||
|
|
@ -108,15 +128,10 @@ drm_tegra_bo_new(struct drm_tegra_bo **bop, struct drm_tegra *drm,
|
|||
if (!drm || size == 0 || !bop)
|
||||
return -EINVAL;
|
||||
|
||||
bo = calloc(1, sizeof(*bo));
|
||||
bo = drm_tegra_bo_alloc(drm, 0, flags, size);
|
||||
if (!bo)
|
||||
return -ENOMEM;
|
||||
|
||||
atomic_set(&bo->ref, 1);
|
||||
bo->flags = flags;
|
||||
bo->size = size;
|
||||
bo->drm = drm;
|
||||
|
||||
memset(&args, 0, sizeof(args));
|
||||
args.flags = flags;
|
||||
args.size = size;
|
||||
|
|
@ -145,16 +160,10 @@ drm_tegra_bo_wrap(struct drm_tegra_bo **bop, struct drm_tegra *drm,
|
|||
if (!drm || !bop)
|
||||
return -EINVAL;
|
||||
|
||||
bo = calloc(1, sizeof(*bo));
|
||||
bo = drm_tegra_bo_alloc(drm, handle, flags, size);
|
||||
if (!bo)
|
||||
return -ENOMEM;
|
||||
|
||||
atomic_set(&bo->ref, 1);
|
||||
bo->handle = handle;
|
||||
bo->flags = flags;
|
||||
bo->size = size;
|
||||
bo->drm = drm;
|
||||
|
||||
*bop = bo;
|
||||
|
||||
return 0;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue