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