aboutsummaryrefslogtreecommitdiffstats
path: root/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/2963-drm-amdgpu-add-vcn-nbio-doorbell-range-setting-for-2.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/2963-drm-amdgpu-add-vcn-nbio-doorbell-range-setting-for-2.patch')
-rw-r--r--meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/2963-drm-amdgpu-add-vcn-nbio-doorbell-range-setting-for-2.patch114
1 files changed, 114 insertions, 0 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/2963-drm-amdgpu-add-vcn-nbio-doorbell-range-setting-for-2.patch b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/2963-drm-amdgpu-add-vcn-nbio-doorbell-range-setting-for-2.patch
new file mode 100644
index 00000000..fb839c52
--- /dev/null
+++ b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/2963-drm-amdgpu-add-vcn-nbio-doorbell-range-setting-for-2.patch
@@ -0,0 +1,114 @@
+From 026c0ad6f39bf35f3439c8a70172686d75ee84fa Mon Sep 17 00:00:00 2001
+From: James Zhu <James.Zhu@amd.com>
+Date: Wed, 10 Jul 2019 10:50:24 -0500
+Subject: [PATCH 2963/4256] drm/amdgpu: add vcn nbio doorbell range setting for
+ 2nd vcn instance
+
+add vcn nbio doorbell range setting for 2nd vcn instance
+
+Signed-off-by: James Zhu <James.Zhu@amd.com>
+Reviewed-by: Leo Liu <leo.liu@amd.com>
+Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
+---
+ drivers/gpu/drm/amd/amdgpu/amdgpu.h | 2 +-
+ drivers/gpu/drm/amd/amdgpu/nbio_v2_3.c | 2 +-
+ drivers/gpu/drm/amd/amdgpu/nbio_v7_4.c | 20 +++++++++++++++++---
+ drivers/gpu/drm/amd/amdgpu/vcn_v2_0.c | 2 +-
+ drivers/gpu/drm/amd/amdgpu/vcn_v2_5.c | 2 +-
+ 5 files changed, 21 insertions(+), 7 deletions(-)
+
+diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu.h b/drivers/gpu/drm/amd/amdgpu/amdgpu.h
+index de204914ddb5..c3885b95727a 100644
+--- a/drivers/gpu/drm/amd/amdgpu/amdgpu.h
++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu.h
+@@ -690,7 +690,7 @@ struct amdgpu_nbio_funcs {
+ void (*sdma_doorbell_range)(struct amdgpu_device *adev, int instance,
+ bool use_doorbell, int doorbell_index, int doorbell_size);
+ void (*vcn_doorbell_range)(struct amdgpu_device *adev, bool use_doorbell,
+- int doorbell_index);
++ int doorbell_index, int instance);
+ void (*enable_doorbell_aperture)(struct amdgpu_device *adev,
+ bool enable);
+ void (*enable_doorbell_selfring_aperture)(struct amdgpu_device *adev,
+diff --git a/drivers/gpu/drm/amd/amdgpu/nbio_v2_3.c b/drivers/gpu/drm/amd/amdgpu/nbio_v2_3.c
+index 72efe32f2406..f5611c479e28 100644
+--- a/drivers/gpu/drm/amd/amdgpu/nbio_v2_3.c
++++ b/drivers/gpu/drm/amd/amdgpu/nbio_v2_3.c
+@@ -92,7 +92,7 @@ static void nbio_v2_3_sdma_doorbell_range(struct amdgpu_device *adev, int instan
+ }
+
+ static void nbio_v2_3_vcn_doorbell_range(struct amdgpu_device *adev, bool use_doorbell,
+- int doorbell_index)
++ int doorbell_index, int instance)
+ {
+ u32 reg = SOC15_REG_OFFSET(NBIO, 0, mmBIF_MMSCH0_DOORBELL_RANGE);
+
+diff --git a/drivers/gpu/drm/amd/amdgpu/nbio_v7_4.c b/drivers/gpu/drm/amd/amdgpu/nbio_v7_4.c
+index d8c9972a315b..910fffced43b 100644
+--- a/drivers/gpu/drm/amd/amdgpu/nbio_v7_4.c
++++ b/drivers/gpu/drm/amd/amdgpu/nbio_v7_4.c
+@@ -42,6 +42,14 @@
+ #define GPU_HDP_FLUSH_DONE__RSVD_ENG4_MASK 0x00010000L
+ #define GPU_HDP_FLUSH_DONE__RSVD_ENG5_MASK 0x00020000L
+
++#define mmBIF_MMSCH1_DOORBELL_RANGE 0x01dc
++#define mmBIF_MMSCH1_DOORBELL_RANGE_BASE_IDX 2
++//BIF_MMSCH1_DOORBELL_RANGE
++#define BIF_MMSCH1_DOORBELL_RANGE__OFFSET__SHIFT 0x2
++#define BIF_MMSCH1_DOORBELL_RANGE__SIZE__SHIFT 0x10
++#define BIF_MMSCH1_DOORBELL_RANGE__OFFSET_MASK 0x00000FFCL
++#define BIF_MMSCH1_DOORBELL_RANGE__SIZE_MASK 0x001F0000L
++
+ static void nbio_v7_4_remap_hdp_registers(struct amdgpu_device *adev)
+ {
+ WREG32_SOC15(NBIO, 0, mmREMAP_HDP_MEM_FLUSH_CNTL,
+@@ -115,11 +123,17 @@ static void nbio_v7_4_sdma_doorbell_range(struct amdgpu_device *adev, int instan
+ }
+
+ static void nbio_v7_4_vcn_doorbell_range(struct amdgpu_device *adev, bool use_doorbell,
+- int doorbell_index)
++ int doorbell_index, int instance)
+ {
+- u32 reg = SOC15_REG_OFFSET(NBIO, 0, mmBIF_MMSCH0_DOORBELL_RANGE);
++ u32 reg;
++ u32 doorbell_range;
++
++ if (instance)
++ reg = SOC15_REG_OFFSET(NBIO, 0, mmBIF_MMSCH1_DOORBELL_RANGE);
++ else
++ reg = SOC15_REG_OFFSET(NBIO, 0, mmBIF_MMSCH0_DOORBELL_RANGE);
+
+- u32 doorbell_range = RREG32(reg);
++ doorbell_range = RREG32(reg);
+
+ if (use_doorbell) {
+ doorbell_range = REG_SET_FIELD(doorbell_range,
+diff --git a/drivers/gpu/drm/amd/amdgpu/vcn_v2_0.c b/drivers/gpu/drm/amd/amdgpu/vcn_v2_0.c
+index 52a5e3ac9f55..2b7bb6364e5a 100644
+--- a/drivers/gpu/drm/amd/amdgpu/vcn_v2_0.c
++++ b/drivers/gpu/drm/amd/amdgpu/vcn_v2_0.c
+@@ -245,7 +245,7 @@ static int vcn_v2_0_hw_init(void *handle)
+ int i, r;
+
+ adev->nbio_funcs->vcn_doorbell_range(adev, ring->use_doorbell,
+- ring->doorbell_index);
++ ring->doorbell_index, 0);
+
+ ring->sched.ready = true;
+ r = amdgpu_ring_test_ring(ring);
+diff --git a/drivers/gpu/drm/amd/amdgpu/vcn_v2_5.c b/drivers/gpu/drm/amd/amdgpu/vcn_v2_5.c
+index 840737df19c0..75fdb6881ac0 100644
+--- a/drivers/gpu/drm/amd/amdgpu/vcn_v2_5.c
++++ b/drivers/gpu/drm/amd/amdgpu/vcn_v2_5.c
+@@ -212,7 +212,7 @@ static int vcn_v2_5_hw_init(void *handle)
+ int i, r;
+
+ adev->nbio_funcs->vcn_doorbell_range(adev, ring->use_doorbell,
+- ring->doorbell_index);
++ ring->doorbell_index, 0);
+
+ r = amdgpu_ring_test_ring(ring);
+ if (r) {
+--
+2.17.1
+