aboutsummaryrefslogtreecommitdiffstats
path: root/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/2034-drm-amdgpu-sriov-Correct-some-register-program-metho.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/2034-drm-amdgpu-sriov-Correct-some-register-program-metho.patch')
-rw-r--r--meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/2034-drm-amdgpu-sriov-Correct-some-register-program-metho.patch90
1 files changed, 90 insertions, 0 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/2034-drm-amdgpu-sriov-Correct-some-register-program-metho.patch b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/2034-drm-amdgpu-sriov-Correct-some-register-program-metho.patch
new file mode 100644
index 00000000..9e31d46d
--- /dev/null
+++ b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/2034-drm-amdgpu-sriov-Correct-some-register-program-metho.patch
@@ -0,0 +1,90 @@
+From cbbad757e62e5f6f8f3bdc529c13f60a2c6a4ee8 Mon Sep 17 00:00:00 2001
+From: Emily Deng <Emily.Deng@amd.com>
+Date: Fri, 31 May 2019 17:30:39 +0800
+Subject: [PATCH 2034/2940] drm/amdgpu/sriov: Correct some register program
+ method
+
+For the VF, some registers only could be programmed with RLC.
+
+Change-Id: I14780879b50e22ebd2df09de99aafaed9ff37440
+Signed-off-by: Emily Deng <Emily.Deng@amd.com>
+Reviewed-by: Trigger Huang <Trigger.Huang@amd.com>
+---
+ drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c | 10 +++++-----
+ drivers/gpu/drm/amd/amdgpu/gfxhub_v1_0.c | 8 ++++----
+ 2 files changed, 9 insertions(+), 9 deletions(-)
+
+diff --git a/drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c b/drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c
+index 19adde732c25..879b496ebde8 100644
+--- a/drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c
++++ b/drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c
+@@ -1929,19 +1929,19 @@ static void gfx_v9_0_constants_init(struct amdgpu_device *adev)
+ SH_MEM_ALIGNMENT_MODE_UNALIGNED);
+ tmp = REG_SET_FIELD(tmp, SH_MEM_CONFIG, RETRY_DISABLE,
+ 1);
+- WREG32_SOC15(GC, 0, mmSH_MEM_CONFIG, tmp);
+- WREG32_SOC15(GC, 0, mmSH_MEM_BASES, 0);
++ WREG32_SOC15_RLC(GC, 0, mmSH_MEM_CONFIG, tmp);
++ WREG32_SOC15_RLC(GC, 0, mmSH_MEM_BASES, 0);
+ } else {
+ tmp = REG_SET_FIELD(0, SH_MEM_CONFIG, ALIGNMENT_MODE,
+ SH_MEM_ALIGNMENT_MODE_UNALIGNED);
+ tmp = REG_SET_FIELD(tmp, SH_MEM_CONFIG, RETRY_DISABLE,
+ 1);
+- WREG32_SOC15(GC, 0, mmSH_MEM_CONFIG, tmp);
++ WREG32_SOC15_RLC(GC, 0, mmSH_MEM_CONFIG, tmp);
+ tmp = REG_SET_FIELD(0, SH_MEM_BASES, PRIVATE_BASE,
+ (adev->gmc.private_aperture_start >> 48));
+ tmp = REG_SET_FIELD(tmp, SH_MEM_BASES, SHARED_BASE,
+ (adev->gmc.shared_aperture_start >> 48));
+- WREG32_SOC15(GC, 0, mmSH_MEM_BASES, tmp);
++ WREG32_SOC15_RLC(GC, 0, mmSH_MEM_BASES, tmp);
+ }
+ }
+ soc15_grbm_select(adev, 0, 0, 0, 0);
+@@ -3050,7 +3050,7 @@ static int gfx_v9_0_kiq_init_register(struct amdgpu_ring *ring)
+ (adev->doorbell_index.userqueue_end * 2) << 2);
+ }
+
+- WREG32_SOC15(GC, 0, mmCP_HQD_PQ_DOORBELL_CONTROL,
++ WREG32_SOC15_RLC(GC, 0, mmCP_HQD_PQ_DOORBELL_CONTROL,
+ mqd->cp_hqd_pq_doorbell_control);
+
+ /* reset read and write pointers, similar to CP_RB0_WPTR/_RPTR */
+diff --git a/drivers/gpu/drm/amd/amdgpu/gfxhub_v1_0.c b/drivers/gpu/drm/amd/amdgpu/gfxhub_v1_0.c
+index 4c5df304adbd..44eda670d948 100644
+--- a/drivers/gpu/drm/amd/amdgpu/gfxhub_v1_0.c
++++ b/drivers/gpu/drm/amd/amdgpu/gfxhub_v1_0.c
+@@ -141,12 +141,12 @@ static void gfxhub_v1_0_init_cache_regs(struct amdgpu_device *adev)
+ tmp = REG_SET_FIELD(tmp, VM_L2_CNTL, PDE_FAULT_CLASSIFICATION, 0);
+ tmp = REG_SET_FIELD(tmp, VM_L2_CNTL, CONTEXT1_IDENTITY_ACCESS_MODE, 1);
+ tmp = REG_SET_FIELD(tmp, VM_L2_CNTL, IDENTITY_MODE_FRAGMENT_SIZE, 0);
+- WREG32_SOC15(GC, 0, mmVM_L2_CNTL, tmp);
++ WREG32_SOC15_RLC(GC, 0, mmVM_L2_CNTL, tmp);
+
+ tmp = RREG32_SOC15(GC, 0, mmVM_L2_CNTL2);
+ tmp = REG_SET_FIELD(tmp, VM_L2_CNTL2, INVALIDATE_ALL_L1_TLBS, 1);
+ tmp = REG_SET_FIELD(tmp, VM_L2_CNTL2, INVALIDATE_L2_CACHE, 1);
+- WREG32_SOC15(GC, 0, mmVM_L2_CNTL2, tmp);
++ WREG32_SOC15_RLC(GC, 0, mmVM_L2_CNTL2, tmp);
+
+ tmp = mmVM_L2_CNTL3_DEFAULT;
+ if (adev->gmc.translate_further) {
+@@ -158,12 +158,12 @@ static void gfxhub_v1_0_init_cache_regs(struct amdgpu_device *adev)
+ tmp = REG_SET_FIELD(tmp, VM_L2_CNTL3,
+ L2_CACHE_BIGK_FRAGMENT_SIZE, 6);
+ }
+- WREG32_SOC15(GC, 0, mmVM_L2_CNTL3, tmp);
++ WREG32_SOC15_RLC(GC, 0, mmVM_L2_CNTL3, tmp);
+
+ tmp = mmVM_L2_CNTL4_DEFAULT;
+ tmp = REG_SET_FIELD(tmp, VM_L2_CNTL4, VMC_TAP_PDE_REQUEST_PHYSICAL, 0);
+ tmp = REG_SET_FIELD(tmp, VM_L2_CNTL4, VMC_TAP_PTE_REQUEST_PHYSICAL, 0);
+- WREG32_SOC15(GC, 0, mmVM_L2_CNTL4, tmp);
++ WREG32_SOC15_RLC(GC, 0, mmVM_L2_CNTL4, tmp);
+ }
+
+ static void gfxhub_v1_0_enable_system_domain(struct amdgpu_device *adev)
+--
+2.17.1
+