]> git.proxmox.com Git - mirror_ubuntu-bionic-kernel.git/commit
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)
committerThadeu Lima de Souza Cascardo <cascardo@canonical.com>
Mon, 26 Mar 2018 12:16:18 +0000 (09:16 -0300)
commit60b0d77be1db15c2e7078cf8a0a937416bc4a8b6
tree7b0afdc4a893bbd66636b5bcb4878bf748119090
parent27fe2fd1ab9cc2d2fad03c8e5652f191cbf3f8ba
drm/amdgpu: use polling mem to set SDMA3 wptr for VF

BugLink: http://bugs.launchpad.net/bugs/1758886
[ Upstream commit 2ffe31deb27579e2f2c9444e01f4d8abf385d145 ]

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>
Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Thadeu Lima de Souza Cascardo <cascardo@canonical.com>
drivers/gpu/drm/amd/amdgpu/amdgpu_ring.h
drivers/gpu/drm/amd/amdgpu/sdma_v3_0.c