aboutsummaryrefslogtreecommitdiffstats
path: root/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/2923-drm-amdgpu-correct-programming-of-ih_chicken-for-Arc.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/2923-drm-amdgpu-correct-programming-of-ih_chicken-for-Arc.patch')
-rw-r--r--meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/2923-drm-amdgpu-correct-programming-of-ih_chicken-for-Arc.patch51
1 files changed, 51 insertions, 0 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/2923-drm-amdgpu-correct-programming-of-ih_chicken-for-Arc.patch b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/2923-drm-amdgpu-correct-programming-of-ih_chicken-for-Arc.patch
new file mode 100644
index 00000000..d2914cc7
--- /dev/null
+++ b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/2923-drm-amdgpu-correct-programming-of-ih_chicken-for-Arc.patch
@@ -0,0 +1,51 @@
+From 5a753a9cd45dcfb5cfcd60bbaca4589dc5691bf8 Mon Sep 17 00:00:00 2001
+From: Le Ma <le.ma@amd.com>
+Date: Tue, 26 Feb 2019 20:37:17 +0800
+Subject: [PATCH 2923/2940] drm/amdgpu: correct programming of ih_chicken for
+ Arcturus
+
+ih_chicken is a register that is not allowed to access by driver
+in the L0 security policy.
+psp bl need to enable field to allow driver to use physical
+bus address for ih ring on secure part.
+
+Signed-off-by: Le Ma <le.ma@amd.com>
+Reviewed-by: Snow Zhang <snow.zhang@amd.com>
+Reviewed-by: Hawking Zhang <Hawking.Zhang@amd.com>
+Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
+---
+ drivers/gpu/drm/amd/amdgpu/vega10_ih.c | 11 ++++++++++-
+ 1 file changed, 10 insertions(+), 1 deletion(-)
+
+diff --git a/drivers/gpu/drm/amd/amdgpu/vega10_ih.c b/drivers/gpu/drm/amd/amdgpu/vega10_ih.c
+index 5f54acc70fec..ee9cd8579038 100644
+--- a/drivers/gpu/drm/amd/amdgpu/vega10_ih.c
++++ b/drivers/gpu/drm/amd/amdgpu/vega10_ih.c
+@@ -217,7 +217,7 @@ static uint32_t vega10_ih_doorbell_rptr(struct amdgpu_ih_ring *ih)
+ static int vega10_ih_irq_init(struct amdgpu_device *adev)
+ {
+ struct amdgpu_ih_ring *ih;
+- u32 ih_rb_cntl;
++ u32 ih_rb_cntl, ih_chicken;
+ int ret = 0;
+ u32 tmp;
+
+@@ -245,6 +245,15 @@ static int vega10_ih_irq_init(struct amdgpu_device *adev)
+ WREG32_SOC15(OSSSYS, 0, mmIH_RB_CNTL, ih_rb_cntl);
+ }
+
++ if (adev->asic_type == CHIP_ARCTURUS &&
++ adev->firmware.load_type == AMDGPU_FW_LOAD_DIRECT) {
++ if (adev->irq.ih.use_bus_addr) {
++ ih_chicken = RREG32_SOC15(OSSSYS, 0, mmIH_CHICKEN);
++ ih_chicken |= 0x00000010;
++ WREG32_SOC15(OSSSYS, 0, mmIH_CHICKEN, ih_chicken);
++ }
++ }
++
+ /* set the writeback address whether it's enabled or not */
+ WREG32_SOC15(OSSSYS, 0, mmIH_RB_WPTR_ADDR_LO,
+ lower_32_bits(ih->wptr_addr));
+--
+2.17.1
+