diff options
| author | 2020-07-21 14:57:02 +0800 | |
|---|---|---|
| committer | 2020-07-22 18:42:49 -0400 | |
| commit | f2c1b5c145c8ffe71b314d94f35383ac0d94edd0 (patch) | |
| tree | b366d4d1f142e95bd9309ebf20a39753a8ce460d /drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.c | |
| parent | drm/amdgpu: add member to store vm fault interrupt masks (diff) | |
| download | wireguard-linux-f2c1b5c145c8ffe71b314d94f35383ac0d94edd0.tar.xz wireguard-linux-f2c1b5c145c8ffe71b314d94f35383ac0d94edd0.zip | |
drm/amdgpu: abstract set_vm_fault_masks function to refine the programming
This patch is to add set_vm_fault_masks helper to amdgpu_gmc to refine the
original programming.
Signed-off-by: Huang Rui <ray.huang@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.c')
| -rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.c | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.c index 34cbd6f6a56b..21d2c8543f85 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.c @@ -411,3 +411,23 @@ void amdgpu_gmc_tmz_set(struct amdgpu_device *adev) break; } } + +void amdgpu_gmc_set_vm_fault_masks(struct amdgpu_device *adev, int hub_type, + bool enable) +{ + struct amdgpu_vmhub *hub; + u32 tmp, reg, i; + + hub = &adev->vmhub[hub_type]; + for (i = 0; i < 16; i++) { + reg = hub->vm_context0_cntl + hub->ctx_distance * i; + + tmp = RREG32(reg); + if (enable) + tmp |= hub->vm_cntx_cntl_vm_fault; + else + tmp &= ~hub->vm_cntx_cntl_vm_fault; + + WREG32(reg, tmp); + } +} |
