tegra: Implement drm_tegra_bo_{get,set}_flags()
These two functions are simple wrappers around the corresponding IOCTLs and operate on drm_tegra_bo objects. Signed-off-by: Thierry Reding <treding@nvidia.com>main
parent
7b5e652689
commit
d3ad65db42
|
@ -246,3 +246,49 @@ int drm_tegra_bo_unmap(struct drm_tegra_bo *bo)
|
|||
|
||||
return 0;
|
||||
}
|
||||
|
||||
drm_public
|
||||
int drm_tegra_bo_get_flags(struct drm_tegra_bo *bo, uint32_t *flags)
|
||||
{
|
||||
struct drm_tegra_gem_get_flags args;
|
||||
struct drm_tegra *drm = bo->drm;
|
||||
int err;
|
||||
|
||||
if (!bo)
|
||||
return -EINVAL;
|
||||
|
||||
memset(&args, 0, sizeof(args));
|
||||
args.handle = bo->handle;
|
||||
|
||||
err = drmCommandWriteRead(drm->fd, DRM_TEGRA_GEM_GET_FLAGS, &args,
|
||||
sizeof(args));
|
||||
if (err < 0)
|
||||
return -errno;
|
||||
|
||||
if (flags)
|
||||
*flags = args.flags;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
drm_public
|
||||
int drm_tegra_bo_set_flags(struct drm_tegra_bo *bo, uint32_t flags)
|
||||
{
|
||||
struct drm_tegra_gem_get_flags args;
|
||||
struct drm_tegra *drm = bo->drm;
|
||||
int err;
|
||||
|
||||
if (!bo)
|
||||
return -EINVAL;
|
||||
|
||||
memset(&args, 0, sizeof(args));
|
||||
args.handle = bo->handle;
|
||||
args.flags = flags;
|
||||
|
||||
err = drmCommandWriteRead(drm->fd, DRM_TEGRA_GEM_SET_FLAGS, &args,
|
||||
sizeof(args));
|
||||
if (err < 0)
|
||||
return -errno;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -44,4 +44,7 @@ int drm_tegra_bo_get_handle(struct drm_tegra_bo *bo, uint32_t *handle);
|
|||
int drm_tegra_bo_map(struct drm_tegra_bo *bo, void **ptr);
|
||||
int drm_tegra_bo_unmap(struct drm_tegra_bo *bo);
|
||||
|
||||
int drm_tegra_bo_get_flags(struct drm_tegra_bo *bo, uint32_t *flags);
|
||||
int drm_tegra_bo_set_flags(struct drm_tegra_bo *bo, uint32_t flags);
|
||||
|
||||
#endif /* __DRM_TEGRA_H__ */
|
||||
|
|
Loading…
Reference in New Issue