diff options
Diffstat (limited to 'meta-v1000/recipes-kernel/linux/linux-yocto-4.14.71/0012-drm-amdgpu-cleanup-GWS-GDS-and-OA-allocation.patch')
-rw-r--r-- | meta-v1000/recipes-kernel/linux/linux-yocto-4.14.71/0012-drm-amdgpu-cleanup-GWS-GDS-and-OA-allocation.patch | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/meta-v1000/recipes-kernel/linux/linux-yocto-4.14.71/0012-drm-amdgpu-cleanup-GWS-GDS-and-OA-allocation.patch b/meta-v1000/recipes-kernel/linux/linux-yocto-4.14.71/0012-drm-amdgpu-cleanup-GWS-GDS-and-OA-allocation.patch new file mode 100644 index 00000000..c5549202 --- /dev/null +++ b/meta-v1000/recipes-kernel/linux/linux-yocto-4.14.71/0012-drm-amdgpu-cleanup-GWS-GDS-and-OA-allocation.patch @@ -0,0 +1,66 @@ +From 805e70e4fd11d5e0e875f26d65018c307fb1d1dc Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Christian=20K=C3=B6nig?= <christian.koenig@amd.com> +Date: Wed, 23 Aug 2017 20:11:25 +0200 +Subject: [PATCH 0012/4131] drm/amdgpu: cleanup GWS, GDS and OA allocation +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +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> +--- + drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c | 15 +++++++-------- + 1 file changed, 7 insertions(+), 8 deletions(-) + +diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c +index dea0b75..cd3642c 100644 +--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c ++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c +@@ -184,17 +184,17 @@ int amdgpu_gem_create_ioctl(struct drm_device *dev, void *data, + { + struct amdgpu_device *adev = dev->dev_private; + union drm_amdgpu_gem_create *args = data; ++ uint64_t flags = args->in.domain_flags; + uint64_t size = args->in.bo_size; + struct drm_gem_object *gobj; + uint32_t handle; +- bool kernel = false; + int r; + + /* reject invalid gem flags */ +- if (args->in.domain_flags & ~(AMDGPU_GEM_CREATE_CPU_ACCESS_REQUIRED | +- AMDGPU_GEM_CREATE_NO_CPU_ACCESS | +- AMDGPU_GEM_CREATE_CPU_GTT_USWC | +- AMDGPU_GEM_CREATE_VRAM_CLEARED)) ++ if (flags & ~(AMDGPU_GEM_CREATE_CPU_ACCESS_REQUIRED | ++ AMDGPU_GEM_CREATE_NO_CPU_ACCESS | ++ AMDGPU_GEM_CREATE_CPU_GTT_USWC | ++ AMDGPU_GEM_CREATE_VRAM_CLEARED)) + return -EINVAL; + + /* reject invalid gem domains */ +@@ -209,7 +209,7 @@ int amdgpu_gem_create_ioctl(struct drm_device *dev, void *data, + /* create a gem object to contain this object in */ + if (args->in.domains & (AMDGPU_GEM_DOMAIN_GDS | + 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) + size = size << AMDGPU_GDS_SHIFT; + else if (args->in.domains == AMDGPU_GEM_DOMAIN_GWS) +@@ -223,8 +223,7 @@ int amdgpu_gem_create_ioctl(struct drm_device *dev, void *data, + + r = amdgpu_gem_object_create(adev, size, args->in.alignment, + (u32)(0xffffffff & args->in.domains), +- args->in.domain_flags, +- kernel, &gobj); ++ flags, false, &gobj); + if (r) + return r; + +-- +2.7.4 + |