diff options
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/2950-drm-amdgpu-add-vcn-doorbell-range-function-to-nbio7..patch')
-rw-r--r-- | meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/2950-drm-amdgpu-add-vcn-doorbell-range-function-to-nbio7..patch | 74 |
1 files changed, 74 insertions, 0 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/2950-drm-amdgpu-add-vcn-doorbell-range-function-to-nbio7..patch b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/2950-drm-amdgpu-add-vcn-doorbell-range-function-to-nbio7..patch new file mode 100644 index 00000000..6790bc97 --- /dev/null +++ b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/2950-drm-amdgpu-add-vcn-doorbell-range-function-to-nbio7..patch @@ -0,0 +1,74 @@ +From d8dcc77e99fbab3536ad747b3a8d77996c9ad488 Mon Sep 17 00:00:00 2001 +From: Leo Liu <leo.liu@amd.com> +Date: Tue, 9 Jul 2019 10:18:36 -0500 +Subject: [PATCH 2950/4256] drm/amdgpu: add vcn doorbell range function to + nbio7.4 (v2) + +To setup the aperture for VCN2.5 + +v2: setup vcn doorbells in vcn2.5 hw_init (Alex) + +Signed-off-by: Leo Liu <leo.liu@amd.com> +Reviewed-by: Alex Deucher <alexander.deucher@amd.com> +Signed-off-by: Alex Deucher <alexander.deucher@amd.com> +--- + drivers/gpu/drm/amd/amdgpu/nbio_v7_4.c | 21 +++++++++++++++++++++ + drivers/gpu/drm/amd/amdgpu/vcn_v2_5.c | 3 +++ + 2 files changed, 24 insertions(+) + +diff --git a/drivers/gpu/drm/amd/amdgpu/nbio_v7_4.c b/drivers/gpu/drm/amd/amdgpu/nbio_v7_4.c +index fc45eaeaba6e..d8c9972a315b 100644 +--- a/drivers/gpu/drm/amd/amdgpu/nbio_v7_4.c ++++ b/drivers/gpu/drm/amd/amdgpu/nbio_v7_4.c +@@ -114,6 +114,26 @@ static void nbio_v7_4_sdma_doorbell_range(struct amdgpu_device *adev, int instan + WREG32(reg, doorbell_range); + } + ++static void nbio_v7_4_vcn_doorbell_range(struct amdgpu_device *adev, bool use_doorbell, ++ int doorbell_index) ++{ ++ u32 reg = SOC15_REG_OFFSET(NBIO, 0, mmBIF_MMSCH0_DOORBELL_RANGE); ++ ++ u32 doorbell_range = RREG32(reg); ++ ++ if (use_doorbell) { ++ doorbell_range = REG_SET_FIELD(doorbell_range, ++ BIF_MMSCH0_DOORBELL_RANGE, OFFSET, ++ doorbell_index); ++ doorbell_range = REG_SET_FIELD(doorbell_range, ++ BIF_MMSCH0_DOORBELL_RANGE, SIZE, 8); ++ } else ++ doorbell_range = REG_SET_FIELD(doorbell_range, ++ BIF_MMSCH0_DOORBELL_RANGE, SIZE, 0); ++ ++ WREG32(reg, doorbell_range); ++} ++ + static void nbio_v7_4_enable_doorbell_aperture(struct amdgpu_device *adev, + bool enable) + { +@@ -292,6 +312,7 @@ const struct amdgpu_nbio_funcs nbio_v7_4_funcs = { + .hdp_flush = nbio_v7_4_hdp_flush, + .get_memsize = nbio_v7_4_get_memsize, + .sdma_doorbell_range = nbio_v7_4_sdma_doorbell_range, ++ .vcn_doorbell_range = nbio_v7_4_vcn_doorbell_range, + .enable_doorbell_aperture = nbio_v7_4_enable_doorbell_aperture, + .enable_doorbell_selfring_aperture = nbio_v7_4_enable_doorbell_selfring_aperture, + .ih_doorbell_range = nbio_v7_4_ih_doorbell_range, +diff --git a/drivers/gpu/drm/amd/amdgpu/vcn_v2_5.c b/drivers/gpu/drm/amd/amdgpu/vcn_v2_5.c +index 0ffc0d60fad8..f9d6819f0260 100644 +--- a/drivers/gpu/drm/amd/amdgpu/vcn_v2_5.c ++++ b/drivers/gpu/drm/amd/amdgpu/vcn_v2_5.c +@@ -205,6 +205,9 @@ static int vcn_v2_5_hw_init(void *handle) + struct amdgpu_ring *ring = &adev->vcn.ring_dec; + int i, r; + ++ adev->nbio_funcs->vcn_doorbell_range(adev, ring->use_doorbell, ++ ring->doorbell_index); ++ + r = amdgpu_ring_test_ring(ring); + if (r) { + ring->sched.ready = false; +-- +2.17.1 + |