drm/msm: Add support for private address space instances
Add support for allocating private address space instances. Targets that support per-context pagetables should implement their own function to allocate private address spaces. The default will return a pointer to the global address space. Signed-off-by: Jordan Crouse <jcrouse@codeaurora.org> Signed-off-by: Rob Clark <robdclark@chromium.org> Reviewed-by: Bjorn Andersson <bjorn.andersson@linaro.org>
This commit is contained in:
@@ -827,6 +827,28 @@ static int get_clocks(struct platform_device *pdev, struct msm_gpu *gpu)
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* Return a new address space for a msm_drm_private instance */
|
||||
struct msm_gem_address_space *
|
||||
msm_gpu_create_private_address_space(struct msm_gpu *gpu)
|
||||
{
|
||||
struct msm_gem_address_space *aspace = NULL;
|
||||
|
||||
if (!gpu)
|
||||
return NULL;
|
||||
|
||||
/*
|
||||
* If the target doesn't support private address spaces then return
|
||||
* the global one
|
||||
*/
|
||||
if (gpu->funcs->create_private_address_space)
|
||||
aspace = gpu->funcs->create_private_address_space(gpu);
|
||||
|
||||
if (IS_ERR_OR_NULL(aspace))
|
||||
aspace = msm_gem_address_space_get(gpu->aspace);
|
||||
|
||||
return aspace;
|
||||
}
|
||||
|
||||
int msm_gpu_init(struct drm_device *drm, struct platform_device *pdev,
|
||||
struct msm_gpu *gpu, const struct msm_gpu_funcs *funcs,
|
||||
const char *name, struct msm_gpu_config *config)
|
||||
|
Reference in New Issue
Block a user