drm/amdgpu: Revert programming GRBM_GFX_* in RLCG interface to support GFX9
authorYifan Zha <Yifan.Zha@amd.com>
Wed, 8 Feb 2023 08:47:35 +0000 (16:47 +0800)
committerAlex Deucher <alexander.deucher@amd.com>
Tue, 14 Feb 2023 21:04:48 +0000 (16:04 -0500)
commitfa9b4155c3d4e8441ea57ad10ec98504845e54bb
tree017dc025284056c80c2fc341ec1b811018306681
parent48e99fe4d3ba83d6b7bf288e90b360f83e1c6924
drm/amdgpu: Revert programming GRBM_GFX_* in RLCG interface to support GFX9

[Why]
Regression of commit 72fef4980ddf ("drm/amdgpu: Remove writing GRBM_GFX_CNTL in RLCG interface under SRIOV") on GFX9.
According to GFX9 VF using different method to access GC registers including MMIO(direct) and RLCG(indirect),
removing GRBM_GFX_* writing would make PIPE/ME/VM/QUEUE selection chaos leading to some OCL benchmark failure.

For example,
using RLCG interface to program GRBM_GFX_CNTL/INDEX for selecting MEC(actually the value is only in scratch2/3),
then using MMIO directly program a MEC register in VF driver.
The register programming are invalid due to GC switched to incorrect ME.

[How]
With checking RLCG accessing flag, keep writing GRBM_GFX_* as a legacy way.
But it is still skipped on GFX10+ to avoid violation occurrence.

Signed-off-by: Yifan Zha <Yifan.Zha@amd.com>
Reviewed-by: Hawking Zhang <Hawking.Zhang@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c