diff options
Diffstat (limited to 'common/recipes-kernel/linux/linux-yocto-4.14.71/4248-drm-amdgpu-Enable-scatter-gather-display-support.patch')
-rw-r--r-- | common/recipes-kernel/linux/linux-yocto-4.14.71/4248-drm-amdgpu-Enable-scatter-gather-display-support.patch | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/common/recipes-kernel/linux/linux-yocto-4.14.71/4248-drm-amdgpu-Enable-scatter-gather-display-support.patch b/common/recipes-kernel/linux/linux-yocto-4.14.71/4248-drm-amdgpu-Enable-scatter-gather-display-support.patch new file mode 100644 index 00000000..87f86d38 --- /dev/null +++ b/common/recipes-kernel/linux/linux-yocto-4.14.71/4248-drm-amdgpu-Enable-scatter-gather-display-support.patch @@ -0,0 +1,59 @@ +From 544d0d569ce1ea6549d4400cb92e90f65922c3d5 Mon Sep 17 00:00:00 2001 +From: Samuel Li <Samuel.Li@amd.com> +Date: Wed, 18 Apr 2018 16:15:52 -0400 +Subject: [PATCH 4248/5725] drm/amdgpu: Enable scatter gather display support + +Enables sg display if vram size <= THRESHOLD(256M); otherwise +still use vram as display buffer. +This patch fixed some potention issues introduced by change +"allow framebuffer in GART memory as well" due to CZ/ST hardware +limitation. + +v2: Change default setting to auto. +v3: Move some logic from amdgpu_display_framebuffer_domains() + to pin function, suggested by Christian. +v4: Split into several patches. +v5: Drop module parameter for now. + +Signed-off-by: Samuel Li <Samuel.Li@amd.com> +Reviewed-by: Alex Deucher <alexander.deucher@amd.com> +--- + drivers/gpu/drm/amd/amdgpu/amdgpu.h | 1 + + drivers/gpu/drm/amd/amdgpu/amdgpu_object.c | 9 +++++++++ + 2 files changed, 10 insertions(+) + +diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu.h b/drivers/gpu/drm/amd/amdgpu/amdgpu.h +index 01496d7..7ba0b6b 100644 +--- a/drivers/gpu/drm/amd/amdgpu/amdgpu.h ++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu.h +@@ -140,6 +140,7 @@ extern int amdgpu_si_support; + extern int amdgpu_cik_support; + #endif + ++#define AMDGPU_SG_THRESHOLD (256*1024*1024) + #define AMDGPU_DEFAULT_GTT_SIZE_MB 3072ULL /* 3GB by default */ + #define AMDGPU_WAIT_IDLE_TIMEOUT_IN_MS 3000 + #define AMDGPU_MAX_USEC_TIMEOUT 100000 /* 100 ms */ +diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c +index dcf5acd..9d6c659 100755 +--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c ++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c +@@ -741,6 +741,15 @@ int amdgpu_bo_pin_restricted(struct amdgpu_bo *bo, u32 domain, + return -EINVAL; + } + ++ /* This assumes only APU display buffers are pinned with (VRAM|GTT). ++ * See function amdgpu_display_supported_domains() ++ */ ++ if (domain == (AMDGPU_GEM_DOMAIN_VRAM | AMDGPU_GEM_DOMAIN_GTT)) { ++ domain = AMDGPU_GEM_DOMAIN_VRAM; ++ if (adev->gmc.real_vram_size <= AMDGPU_SG_THRESHOLD) ++ domain = AMDGPU_GEM_DOMAIN_GTT; ++ } ++ + if (bo->pin_count) { + uint32_t mem_type = bo->tbo.mem.mem_type; + +-- +2.7.4 + |