diff options
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/2919-drm-amdgpu-support-sdma-2-7-doorbell-range-register-.patch')
-rw-r--r-- | meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/2919-drm-amdgpu-support-sdma-2-7-doorbell-range-register-.patch | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/2919-drm-amdgpu-support-sdma-2-7-doorbell-range-register-.patch b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/2919-drm-amdgpu-support-sdma-2-7-doorbell-range-register-.patch new file mode 100644 index 00000000..e494770f --- /dev/null +++ b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/2919-drm-amdgpu-support-sdma-2-7-doorbell-range-register-.patch @@ -0,0 +1,48 @@ +From f94c49d35e34fd882da70ae54e0e4b89de3fdddd Mon Sep 17 00:00:00 2001 +From: Le Ma <le.ma@amd.com> +Date: Wed, 19 Sep 2018 14:17:37 +0800 +Subject: [PATCH 2919/2940] drm/amdgpu: support sdma 2~7 doorbell range + register offset + +Signed-off-by: Le Ma <le.ma@amd.com> +Reviewed-by: Hawking Zhang <Hawking.Zhang@amd.com> +Signed-off-by: Alex Deucher <alexander.deucher@amd.com> +--- + drivers/gpu/drm/amd/amdgpu/nbio_v7_4.c | 20 +++++++++++++++++--- + 1 file changed, 17 insertions(+), 3 deletions(-) + +diff --git a/drivers/gpu/drm/amd/amdgpu/nbio_v7_4.c b/drivers/gpu/drm/amd/amdgpu/nbio_v7_4.c +index 2e1098c5c32b..fc45eaeaba6e 100644 +--- a/drivers/gpu/drm/amd/amdgpu/nbio_v7_4.c ++++ b/drivers/gpu/drm/amd/amdgpu/nbio_v7_4.c +@@ -86,10 +86,24 @@ static u32 nbio_v7_4_get_memsize(struct amdgpu_device *adev) + static void nbio_v7_4_sdma_doorbell_range(struct amdgpu_device *adev, int instance, + bool use_doorbell, int doorbell_index, int doorbell_size) + { +- u32 reg = instance == 0 ? SOC15_REG_OFFSET(NBIO, 0, mmBIF_SDMA0_DOORBELL_RANGE) : +- SOC15_REG_OFFSET(NBIO, 0, mmBIF_SDMA1_DOORBELL_RANGE); ++ u32 reg, doorbell_range; + +- u32 doorbell_range = RREG32(reg); ++ if (instance < 2) ++ reg = instance + ++ SOC15_REG_OFFSET(NBIO, 0, mmBIF_SDMA0_DOORBELL_RANGE); ++ else ++ /* ++ * These registers address of SDMA2~7 is not consecutive ++ * from SDMA0~1. Need plus 4 dwords offset. ++ * ++ * BIF_SDMA0_DOORBELL_RANGE: 0x3bc0 ++ * BIF_SDMA1_DOORBELL_RANGE: 0x3bc4 ++ * BIF_SDMA2_DOORBELL_RANGE: 0x3bd8 ++ */ ++ reg = instance + 0x4 + ++ SOC15_REG_OFFSET(NBIO, 0, mmBIF_SDMA0_DOORBELL_RANGE); ++ ++ doorbell_range = RREG32(reg); + + if (use_doorbell) { + doorbell_range = REG_SET_FIELD(doorbell_range, BIF_SDMA0_DOORBELL_RANGE, OFFSET, doorbell_index); +-- +2.17.1 + |