On 2018-12-17 9:12 p.m., Zeng, Oak wrote: > Different ASIC has different sdma doorbell range. Add > a per device sdma_doorbell_range field and initialize > it. > > Change-Id: Idd980db1a72cfb373e24ac23ba3e48bb329ed4ad > Signed-off-by: Oak Zeng <Oak.Zeng@xxxxxxx> > --- > drivers/gpu/drm/amd/amdgpu/amdgpu_doorbell.h | 2 ++ > drivers/gpu/drm/amd/amdgpu/vega10_reg_init.c | 1 + > drivers/gpu/drm/amd/amdgpu/vega20_reg_init.c | 1 + > 3 files changed, 4 insertions(+) > > diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_doorbell.h b/drivers/gpu/drm/amd/amdgpu/amdgpu_doorbell.h > index 35a0c05..1cfec06 100644 > --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_doorbell.h > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_doorbell.h > @@ -72,6 +72,8 @@ struct amdgpu_doorbell_index { > } uvd_vce; > }; > uint32_t max_assignment; > + /* Per engine SDMA doorbell size in dword */ > + uint32_t sdma_doorbell_range; > }; > > typedef enum _AMDGPU_DOORBELL_ASSIGNMENT > diff --git a/drivers/gpu/drm/amd/amdgpu/vega10_reg_init.c b/drivers/gpu/drm/amd/amdgpu/vega10_reg_init.c > index b75d17b..4b5d60e 100644 > --- a/drivers/gpu/drm/amd/amdgpu/vega10_reg_init.c > +++ b/drivers/gpu/drm/amd/amdgpu/vega10_reg_init.c > @@ -83,5 +83,6 @@ void vega10_doorbell_index_init(struct amdgpu_device *adev) > adev->doorbell_index.uvd_vce.vce_ring6_7 = AMDGPU_DOORBELL64_VCE_RING6_7; > /* In unit of dword doorbell */ > adev->doorbell_index.max_assignment = AMDGPU_DOORBELL64_MAX_ASSIGNMENT << 1; > + adev->doorbell_index.sdma_doorbell_range = 4; Vega10 doorbell range was 2 dwords (one 64bit doorbell), change to 4 dwords may not work under SRIOV > } > > diff --git a/drivers/gpu/drm/amd/amdgpu/vega20_reg_init.c b/drivers/gpu/drm/amd/amdgpu/vega20_reg_init.c > index 63c542c..53716c5 100644 > --- a/drivers/gpu/drm/amd/amdgpu/vega20_reg_init.c > +++ b/drivers/gpu/drm/amd/amdgpu/vega20_reg_init.c > @@ -86,5 +86,6 @@ void vega20_doorbell_index_init(struct amdgpu_device *adev) > adev->doorbell_index.uvd_vce.vce_ring4_5 = AMDGPU_VEGA20_DOORBELL64_VCE_RING4_5; > adev->doorbell_index.uvd_vce.vce_ring6_7 = AMDGPU_VEGA20_DOORBELL64_VCE_RING6_7; > adev->doorbell_index.max_assignment = AMDGPU_VEGA20_DOORBELL_MAX_ASSIGNMENT << 1; > + adev->doorbell_index.sdma_doorbell_range = 20; > } > > _______________________________________________ amd-gfx mailing list amd-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/amd-gfx