mirror of
https://github.com/torvalds/linux.git
synced 2024-11-22 12:11:40 +00:00
drm/tegra: Extract tegra_gem_lookup()
The static function host1x_bo_lookup() in drm.c is also useful elsewhere. Extract it as tegra_gem_lookup() in gem.c. Signed-off-by: Mikko Perttunen <mperttunen@nvidia.com> Signed-off-by: Thierry Reding <treding@nvidia.com>
This commit is contained in:
parent
0fddaa85d6
commit
f51632cc0e
@ -107,20 +107,6 @@ static void tegra_drm_context_free(struct tegra_drm_context *context)
|
|||||||
kfree(context);
|
kfree(context);
|
||||||
}
|
}
|
||||||
|
|
||||||
static struct host1x_bo *
|
|
||||||
host1x_bo_lookup(struct drm_file *file, u32 handle)
|
|
||||||
{
|
|
||||||
struct drm_gem_object *gem;
|
|
||||||
struct tegra_bo *bo;
|
|
||||||
|
|
||||||
gem = drm_gem_object_lookup(file, handle);
|
|
||||||
if (!gem)
|
|
||||||
return NULL;
|
|
||||||
|
|
||||||
bo = to_tegra_bo(gem);
|
|
||||||
return &bo->base;
|
|
||||||
}
|
|
||||||
|
|
||||||
static int host1x_reloc_copy_from_user(struct host1x_reloc *dest,
|
static int host1x_reloc_copy_from_user(struct host1x_reloc *dest,
|
||||||
struct drm_tegra_reloc __user *src,
|
struct drm_tegra_reloc __user *src,
|
||||||
struct drm_device *drm,
|
struct drm_device *drm,
|
||||||
@ -151,11 +137,11 @@ static int host1x_reloc_copy_from_user(struct host1x_reloc *dest,
|
|||||||
|
|
||||||
dest->flags = HOST1X_RELOC_READ | HOST1X_RELOC_WRITE;
|
dest->flags = HOST1X_RELOC_READ | HOST1X_RELOC_WRITE;
|
||||||
|
|
||||||
dest->cmdbuf.bo = host1x_bo_lookup(file, cmdbuf);
|
dest->cmdbuf.bo = tegra_gem_lookup(file, cmdbuf);
|
||||||
if (!dest->cmdbuf.bo)
|
if (!dest->cmdbuf.bo)
|
||||||
return -ENOENT;
|
return -ENOENT;
|
||||||
|
|
||||||
dest->target.bo = host1x_bo_lookup(file, target);
|
dest->target.bo = tegra_gem_lookup(file, target);
|
||||||
if (!dest->target.bo)
|
if (!dest->target.bo)
|
||||||
return -ENOENT;
|
return -ENOENT;
|
||||||
|
|
||||||
@ -238,7 +224,7 @@ int tegra_drm_submit(struct tegra_drm_context *context,
|
|||||||
goto fail;
|
goto fail;
|
||||||
}
|
}
|
||||||
|
|
||||||
bo = host1x_bo_lookup(file, cmdbuf.handle);
|
bo = tegra_gem_lookup(file, cmdbuf.handle);
|
||||||
if (!bo) {
|
if (!bo) {
|
||||||
err = -ENOENT;
|
err = -ENOENT;
|
||||||
goto fail;
|
goto fail;
|
||||||
|
@ -707,3 +707,16 @@ struct drm_gem_object *tegra_gem_prime_import(struct drm_device *drm,
|
|||||||
|
|
||||||
return &bo->gem;
|
return &bo->gem;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
struct host1x_bo *tegra_gem_lookup(struct drm_file *file, u32 handle)
|
||||||
|
{
|
||||||
|
struct drm_gem_object *gem;
|
||||||
|
struct tegra_bo *bo;
|
||||||
|
|
||||||
|
gem = drm_gem_object_lookup(file, handle);
|
||||||
|
if (!gem)
|
||||||
|
return NULL;
|
||||||
|
|
||||||
|
bo = to_tegra_bo(gem);
|
||||||
|
return &bo->base;
|
||||||
|
}
|
||||||
|
@ -80,4 +80,6 @@ struct dma_buf *tegra_gem_prime_export(struct drm_gem_object *gem,
|
|||||||
struct drm_gem_object *tegra_gem_prime_import(struct drm_device *drm,
|
struct drm_gem_object *tegra_gem_prime_import(struct drm_device *drm,
|
||||||
struct dma_buf *buf);
|
struct dma_buf *buf);
|
||||||
|
|
||||||
|
struct host1x_bo *tegra_gem_lookup(struct drm_file *file, u32 handle);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
Loading…
Reference in New Issue
Block a user