diff options
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.patch | 78 |
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 + |