diff options
author | Likun Gao <Likun.Gao@amd.com> | 2022-05-06 21:53:31 +0300 |
---|---|---|
committer | Alex Deucher <alexander.deucher@amd.com> | 2022-05-11 00:53:12 +0300 |
commit | 41967850e4f0720f0b472beb84b908957cbc1ebe (patch) | |
tree | b9171b1da6a55ed5e8500d189803e30d5e331b2e /drivers/gpu/drm/amd/amdgpu/lsdma_v6_0.c | |
parent | 74c9b2e704c99d09e3b7e6928df9d8d5891b5174 (diff) | |
download | linux-41967850e4f0720f0b472beb84b908957cbc1ebe.tar.xz |
drm/amdgpu: support memory power gating for lsdma
Support memory power gating control for LSDMA.
Signed-off-by: Likun Gao <Likun.Gao@amd.com>
Reviewed-by: Hawking Zhang <Hawking.Zhang@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/lsdma_v6_0.c')
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/lsdma_v6_0.c | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/lsdma_v6_0.c b/drivers/gpu/drm/amd/amdgpu/lsdma_v6_0.c index b4adb94a080b..1a285b531881 100644 --- a/drivers/gpu/drm/amd/amdgpu/lsdma_v6_0.c +++ b/drivers/gpu/drm/amd/amdgpu/lsdma_v6_0.c @@ -101,7 +101,21 @@ static int lsdma_v6_0_fill_mem(struct amdgpu_device *adev, return ret; } +static void lsdma_v6_0_update_memory_power_gating(struct amdgpu_device *adev, + bool enable) +{ + uint32_t tmp; + + tmp = RREG32_SOC15(LSDMA, 0, regLSDMA_MEM_POWER_CTRL); + tmp = REG_SET_FIELD(tmp, LSDMA_MEM_POWER_CTRL, MEM_POWER_CTRL_EN, 0); + WREG32_SOC15(LSDMA, 0, regLSDMA_MEM_POWER_CTRL, tmp); + + tmp = REG_SET_FIELD(tmp, LSDMA_MEM_POWER_CTRL, MEM_POWER_CTRL_EN, enable); + WREG32_SOC15(LSDMA, 0, regLSDMA_MEM_POWER_CTRL, tmp); +} + const struct amdgpu_lsdma_funcs lsdma_v6_0_funcs = { .copy_mem = lsdma_v6_0_copy_mem, - .fill_mem = lsdma_v6_0_fill_mem + .fill_mem = lsdma_v6_0_fill_mem, + .update_memory_power_gating = lsdma_v6_0_update_memory_power_gating }; |