drm/amdgpu: use polling mem to set SDMA3 wptr for VF
authorPixel Ding <Pixel.Ding@amd.com>
Mon, 11 Dec 2017 08:48:33 +0000 (16:48 +0800)
committerAlex Deucher <alexander.deucher@amd.com>
Tue, 12 Dec 2017 19:45:47 +0000 (14:45 -0500)
commit2ffe31deb27579e2f2c9444e01f4d8abf385d145
tree30b712dbe3053fd00219ad99a36eceb2d2b5d5da
parentb852f3d3fb5d770f54c10614e6320a29943eb52f
drm/amdgpu: use polling mem to set SDMA3 wptr for VF

On Tonga VF, there're 2 sources updating wptr registers for
sdma3: 1) polling mem and 2) doorbell. When doorbell and polling
mem are both enabled on sdma3, there will be collision hit in
occasion between those two sources when ucode and h/w are doing
the updating on wptr register in parallel. Issue doesn't happen
on CP GFX/Compute since CP drops all doorbell writes when VF is
inactive. So enable polling mem and don't use doorbell for SDMA3.

Signed-off-by: Pixel Ding <Pixel.Ding@amd.com>
Reviewed-by: Monk Liu <monk.liu@amd.com>
Reviewed-by: Christian König <christian.koenig@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/amdgpu/amdgpu_ring.h
drivers/gpu/drm/amd/amdgpu/sdma_v3_0.c