drm/amdgpu: invalidate mmhub semaphore workaround in gmc9/gmc10
authorchangzhu <Changfeng.Zhu@amd.com>
Tue, 19 Nov 2019 03:13:29 +0000 (11:13 +0800)
committerAlex Deucher <alexander.deucher@amd.com>
Fri, 22 Nov 2019 19:27:11 +0000 (14:27 -0500)
commit4ed8a03740d0ce092563c8fcb76d2c28da4675cd
tree1d2d399108285b933539fdd259b073ee28923c59
parentdab5ef2722cde781ff3f6b3542d673ed174359b8
drm/amdgpu: invalidate mmhub semaphore workaround in gmc9/gmc10

It may lose gpuvm invalidate acknowldege state across power-gating off
cycle. To avoid this issue in gmc9/gmc10 invalidation, add semaphore acquire
before invalidation and semaphore release after invalidation.

After adding semaphore acquire before invalidation, the semaphore
register become read-only if another process try to acquire semaphore.
Then it will not be able to release this semaphore. Then it may cause
deadlock problem. If this deadlock problem happens, it needs a semaphore
firmware fix.

Signed-off-by: changzhu <Changfeng.Zhu@amd.com>
Acked-by: Huang Rui <ray.huang@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/amdgpu/gmc_v10_0.c
drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c
drivers/gpu/drm/amd/amdgpu/soc15.h