Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

drm/amdgpu: add vcn_doorbell_range callback for nbio 7.11

Implement support for setting up the VCN doorbell range for
NBIO 7.11.

Reviewed-by: Lang Yu <lang.yu@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>

+22
+22
drivers/gpu/drm/amd/amdgpu/nbio_v7_11.c
··· 100 100 WREG32_PCIE_PORT(reg, doorbell_range); 101 101 } 102 102 103 + static void nbio_v7_11_vcn_doorbell_range(struct amdgpu_device *adev, 104 + bool use_doorbell, 105 + int doorbell_index, int instance) 106 + { 107 + u32 reg = SOC15_REG_OFFSET(NBIO, 0, regGDC0_BIF_VCN0_DOORBELL_RANGE); 108 + u32 doorbell_range = RREG32_PCIE_PORT(reg); 109 + 110 + if (use_doorbell) { 111 + doorbell_range = REG_SET_FIELD(doorbell_range, 112 + GDC0_BIF_VCN0_DOORBELL_RANGE, OFFSET, 113 + doorbell_index); 114 + doorbell_range = REG_SET_FIELD(doorbell_range, 115 + GDC0_BIF_VCN0_DOORBELL_RANGE, SIZE, 8); 116 + } else { 117 + doorbell_range = REG_SET_FIELD(doorbell_range, 118 + GDC0_BIF_VCN0_DOORBELL_RANGE, SIZE, 0); 119 + } 120 + 121 + WREG32_PCIE_PORT(reg, doorbell_range); 122 + } 123 + 103 124 static void nbio_v7_11_enable_doorbell_aperture(struct amdgpu_device *adev, 104 125 bool enable) 105 126 { ··· 277 256 .mc_access_enable = nbio_v7_11_mc_access_enable, 278 257 .get_memsize = nbio_v7_11_get_memsize, 279 258 .sdma_doorbell_range = nbio_v7_11_sdma_doorbell_range, 259 + .vcn_doorbell_range = nbio_v7_11_vcn_doorbell_range, 280 260 .vpe_doorbell_range = nbio_v7_11_vpe_doorbell_range, 281 261 .enable_doorbell_aperture = nbio_v7_11_enable_doorbell_aperture, 282 262 .enable_doorbell_selfring_aperture = nbio_v7_11_enable_doorbell_selfring_aperture,