drm/amdgpu: cleanup GWS, GDS and OA allocation
Those are certainly not kernel allocations, instead set the NO_CPU_ACCESS flag. Signed-off-by: Christian König <christian.koenig@amd.com> Reviewed-by: Chunming Zhou <david1.zhou@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
parent
34d7be5dc2
commit
6ac7defb5c
|
@ -186,17 +186,17 @@ int amdgpu_gem_create_ioctl(struct drm_device *dev, void *data,
|
||||||
{
|
{
|
||||||
struct amdgpu_device *adev = dev->dev_private;
|
struct amdgpu_device *adev = dev->dev_private;
|
||||||
union drm_amdgpu_gem_create *args = data;
|
union drm_amdgpu_gem_create *args = data;
|
||||||
|
uint64_t flags = args->in.domain_flags;
|
||||||
uint64_t size = args->in.bo_size;
|
uint64_t size = args->in.bo_size;
|
||||||
struct drm_gem_object *gobj;
|
struct drm_gem_object *gobj;
|
||||||
uint32_t handle;
|
uint32_t handle;
|
||||||
bool kernel = false;
|
|
||||||
int r;
|
int r;
|
||||||
|
|
||||||
/* reject invalid gem flags */
|
/* reject invalid gem flags */
|
||||||
if (args->in.domain_flags & ~(AMDGPU_GEM_CREATE_CPU_ACCESS_REQUIRED |
|
if (flags & ~(AMDGPU_GEM_CREATE_CPU_ACCESS_REQUIRED |
|
||||||
AMDGPU_GEM_CREATE_NO_CPU_ACCESS |
|
AMDGPU_GEM_CREATE_NO_CPU_ACCESS |
|
||||||
AMDGPU_GEM_CREATE_CPU_GTT_USWC |
|
AMDGPU_GEM_CREATE_CPU_GTT_USWC |
|
||||||
AMDGPU_GEM_CREATE_VRAM_CLEARED))
|
AMDGPU_GEM_CREATE_VRAM_CLEARED))
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
|
|
||||||
/* reject invalid gem domains */
|
/* reject invalid gem domains */
|
||||||
|
@ -211,7 +211,7 @@ int amdgpu_gem_create_ioctl(struct drm_device *dev, void *data,
|
||||||
/* create a gem object to contain this object in */
|
/* create a gem object to contain this object in */
|
||||||
if (args->in.domains & (AMDGPU_GEM_DOMAIN_GDS |
|
if (args->in.domains & (AMDGPU_GEM_DOMAIN_GDS |
|
||||||
AMDGPU_GEM_DOMAIN_GWS | AMDGPU_GEM_DOMAIN_OA)) {
|
AMDGPU_GEM_DOMAIN_GWS | AMDGPU_GEM_DOMAIN_OA)) {
|
||||||
kernel = true;
|
flags |= AMDGPU_GEM_CREATE_NO_CPU_ACCESS;
|
||||||
if (args->in.domains == AMDGPU_GEM_DOMAIN_GDS)
|
if (args->in.domains == AMDGPU_GEM_DOMAIN_GDS)
|
||||||
size = size << AMDGPU_GDS_SHIFT;
|
size = size << AMDGPU_GDS_SHIFT;
|
||||||
else if (args->in.domains == AMDGPU_GEM_DOMAIN_GWS)
|
else if (args->in.domains == AMDGPU_GEM_DOMAIN_GWS)
|
||||||
|
@ -225,8 +225,7 @@ int amdgpu_gem_create_ioctl(struct drm_device *dev, void *data,
|
||||||
|
|
||||||
r = amdgpu_gem_object_create(adev, size, args->in.alignment,
|
r = amdgpu_gem_object_create(adev, size, args->in.alignment,
|
||||||
(u32)(0xffffffff & args->in.domains),
|
(u32)(0xffffffff & args->in.domains),
|
||||||
args->in.domain_flags,
|
flags, false, &gobj);
|
||||||
kernel, &gobj);
|
|
||||||
if (r)
|
if (r)
|
||||||
return r;
|
return r;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue