aboutsummaryrefslogtreecommitdiffstats
path: root/common/recipes-kernel/linux/linux-yocto-4.19.8/0789-drm-amdgpu-set-system-aperture-to-cover-whole-FB-reg.patch
diff options
context:
space:
mode:
Diffstat (limited to 'common/recipes-kernel/linux/linux-yocto-4.19.8/0789-drm-amdgpu-set-system-aperture-to-cover-whole-FB-reg.patch')
-rw-r--r--common/recipes-kernel/linux/linux-yocto-4.19.8/0789-drm-amdgpu-set-system-aperture-to-cover-whole-FB-reg.patch78
1 files changed, 78 insertions, 0 deletions
diff --git a/common/recipes-kernel/linux/linux-yocto-4.19.8/0789-drm-amdgpu-set-system-aperture-to-cover-whole-FB-reg.patch b/common/recipes-kernel/linux/linux-yocto-4.19.8/0789-drm-amdgpu-set-system-aperture-to-cover-whole-FB-reg.patch
new file mode 100644
index 00000000..ac435b22
--- /dev/null
+++ b/common/recipes-kernel/linux/linux-yocto-4.19.8/0789-drm-amdgpu-set-system-aperture-to-cover-whole-FB-reg.patch
@@ -0,0 +1,78 @@
+From 20631054fdeb8195f0202dab4f3635c2ef439a2f Mon Sep 17 00:00:00 2001
+From: shaoyunl <shaoyun.liu@amd.com>
+Date: Mon, 12 Nov 2018 11:19:24 -0500
+Subject: [PATCH 0789/2940] drm/amdgpu: set system aperture to cover whole FB
+ region
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+In XGMI configuration, the FB region covers vram region from peer
+device, adjust system aperture to cover all of them
+
+Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
+Reviewed-by: Christian König <christian.koenig@amd.com>
+Signed-off-by: shaoyunl <shaoyun.liu@amd.com>
+Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
+---
+ drivers/gpu/drm/amd/amdgpu/gfxhub_v1_0.c | 7 ++++---
+ drivers/gpu/drm/amd/amdgpu/mmhub_v1_0.c | 7 ++++---
+ 2 files changed, 8 insertions(+), 6 deletions(-)
+
+diff --git a/drivers/gpu/drm/amd/amdgpu/gfxhub_v1_0.c b/drivers/gpu/drm/amd/amdgpu/gfxhub_v1_0.c
+index a4b76a4297f1..3d84ea045171 100644
+--- a/drivers/gpu/drm/amd/amdgpu/gfxhub_v1_0.c
++++ b/drivers/gpu/drm/amd/amdgpu/gfxhub_v1_0.c
+@@ -72,7 +72,7 @@ static void gfxhub_v1_0_init_system_aperture_regs(struct amdgpu_device *adev)
+
+ /* Program the system aperture low logical page number. */
+ WREG32_SOC15(GC, 0, mmMC_VM_SYSTEM_APERTURE_LOW_ADDR,
+- min(adev->gmc.vram_start, adev->gmc.agp_start) >> 18);
++ min(adev->gmc.fb_start, adev->gmc.agp_start) >> 18);
+
+ if (adev->asic_type == CHIP_RAVEN && adev->rev_id >= 0x8)
+ /*
+@@ -82,10 +82,11 @@ static void gfxhub_v1_0_init_system_aperture_regs(struct amdgpu_device *adev)
+ * to get rid of the VM fault and hardware hang.
+ */
+ WREG32_SOC15(GC, 0, mmMC_VM_SYSTEM_APERTURE_HIGH_ADDR,
+- (max(adev->gmc.vram_end, adev->gmc.agp_end) >> 18) + 0x1);
++ max((adev->gmc.fb_end >> 18) + 0x1,
++ adev->gmc.agp_end >> 18));
+ else
+ WREG32_SOC15(GC, 0, mmMC_VM_SYSTEM_APERTURE_HIGH_ADDR,
+- max(adev->gmc.vram_end, adev->gmc.agp_end) >> 18);
++ max(adev->gmc.fb_end, adev->gmc.agp_end) >> 18);
+
+ /* Set default page address. */
+ value = adev->vram_scratch.gpu_addr - adev->gmc.vram_start
+diff --git a/drivers/gpu/drm/amd/amdgpu/mmhub_v1_0.c b/drivers/gpu/drm/amd/amdgpu/mmhub_v1_0.c
+index c5506b0bc90d..fd12e63fdec5 100644
+--- a/drivers/gpu/drm/amd/amdgpu/mmhub_v1_0.c
++++ b/drivers/gpu/drm/amd/amdgpu/mmhub_v1_0.c
+@@ -90,7 +90,7 @@ static void mmhub_v1_0_init_system_aperture_regs(struct amdgpu_device *adev)
+
+ /* Program the system aperture low logical page number. */
+ WREG32_SOC15(MMHUB, 0, mmMC_VM_SYSTEM_APERTURE_LOW_ADDR,
+- min(adev->gmc.vram_start, adev->gmc.agp_start) >> 18);
++ min(adev->gmc.fb_start, adev->gmc.agp_start) >> 18);
+
+ if (adev->asic_type == CHIP_RAVEN && adev->rev_id >= 0x8)
+ /*
+@@ -100,10 +100,11 @@ static void mmhub_v1_0_init_system_aperture_regs(struct amdgpu_device *adev)
+ * to get rid of the VM fault and hardware hang.
+ */
+ WREG32_SOC15(MMHUB, 0, mmMC_VM_SYSTEM_APERTURE_HIGH_ADDR,
+- (max(adev->gmc.vram_end, adev->gmc.agp_end) >> 18) + 0x1);
++ max((adev->gmc.fb_end >> 18) + 0x1,
++ adev->gmc.agp_end >> 18));
+ else
+ WREG32_SOC15(MMHUB, 0, mmMC_VM_SYSTEM_APERTURE_HIGH_ADDR,
+- max(adev->gmc.vram_end, adev->gmc.agp_end) >> 18);
++ max(adev->gmc.fb_end, adev->gmc.agp_end) >> 18);
+
+ /* Set default page address. */
+ value = adev->vram_scratch.gpu_addr - adev->gmc.vram_start +
+--
+2.17.1
+