diff options
Diffstat (limited to 'common/recipes-kernel/linux/linux-yocto-4.14.71/4230-drm-amdgpu-set-preferred_domain-independent-of-fallb.patch')
-rw-r--r-- | common/recipes-kernel/linux/linux-yocto-4.14.71/4230-drm-amdgpu-set-preferred_domain-independent-of-fallb.patch | 76 |
1 files changed, 76 insertions, 0 deletions
diff --git a/common/recipes-kernel/linux/linux-yocto-4.14.71/4230-drm-amdgpu-set-preferred_domain-independent-of-fallb.patch b/common/recipes-kernel/linux/linux-yocto-4.14.71/4230-drm-amdgpu-set-preferred_domain-independent-of-fallb.patch new file mode 100644 index 00000000..a09d296f --- /dev/null +++ b/common/recipes-kernel/linux/linux-yocto-4.14.71/4230-drm-amdgpu-set-preferred_domain-independent-of-fallb.patch @@ -0,0 +1,76 @@ +From 9f2208202d0f1b6fb0ecff582c4a6680299313d6 Mon Sep 17 00:00:00 2001 +From: Chunming Zhou <david1.zhou@amd.com> +Date: Tue, 17 Apr 2018 11:52:53 +0800 +Subject: [PATCH 4230/5725] drm/amdgpu: set preferred_domain independent of + fallback handling +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +When GEM needs to fallback to GTT for VRAM BOs we still want the +preferred domain to be untouched so that the BO has a cance to move back +to VRAM in the future. + +Change-Id: I8cfdf3f30532f7e5d80b8e4266b7800211de2f0b +Signed-off-by: Chunming Zhou <david1.zhou@amd.com> +Reviewed-by: Christian König <christian.koenig@amd.com> +Signed-off-by: Kalyan Alle <kalyan.alle@amd.com> + +Conflicts: + drivers/gpu/drm/amd/amdgpu/amdgpu_object.c +--- + drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c | 1 + + drivers/gpu/drm/amd/amdgpu/amdgpu_object.c | 5 ++++- + drivers/gpu/drm/amd/amdgpu/amdgpu_object.h | 1 + + 3 files changed, 6 insertions(+), 1 deletion(-) + +diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c +index f1031f4..df85dcc 100644 +--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c ++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c +@@ -89,6 +89,7 @@ int amdgpu_gem_object_create(struct amdgpu_device *adev, unsigned long size, + bp.byte_align = alignment; + bp.type = type; + bp.resv = resv; ++ bp.preferred_domain = initial_domain; + retry: + bp.flags = flags; + bp.domain = initial_domain; +diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c +index ffe6b05..08fcc74 100755 +--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c ++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c +@@ -382,6 +382,7 @@ static int amdgpu_bo_do_create(struct amdgpu_device *adev, + }; + struct amdgpu_bo *bo; + unsigned long page_align, size = bp->size; ++ u32 preferred_domains; + size_t acc_size; + int r; + +@@ -402,7 +403,9 @@ static int amdgpu_bo_do_create(struct amdgpu_device *adev, + drm_gem_private_object_init(adev->ddev, &bo->gem_base, size); + INIT_LIST_HEAD(&bo->shadow_list); + INIT_LIST_HEAD(&bo->va); +- bo->preferred_domains = domain & (AMDGPU_GEM_DOMAIN_VRAM | ++ preferred_domains = bp->preferred_domain ? bp->preferred_domain : ++ bp->domain; ++ bo->preferred_domains = preferred_domains & (AMDGPU_GEM_DOMAIN_VRAM | + AMDGPU_GEM_DOMAIN_GTT | + AMDGPU_GEM_DOMAIN_CPU | + AMDGPU_GEM_DOMAIN_GDS | +diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_object.h b/drivers/gpu/drm/amd/amdgpu/amdgpu_object.h +index 951af42..2c79c25 100755 +--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_object.h ++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_object.h +@@ -37,6 +37,7 @@ struct amdgpu_bo_param { + unsigned long size; + int byte_align; + u32 domain; ++ u32 preferred_domain; + u64 flags; + enum ttm_bo_type type; + struct reservation_object *resv; +-- +2.7.4 + |