summaryrefslogtreecommitdiff
path: root/drivers/gpu/drm/amd/amdgpu/lsdma_v6_0.c
diff options
context:
space:
mode:
authorLikun Gao <Likun.Gao@amd.com>2022-05-06 21:53:31 +0300
committerAlex Deucher <alexander.deucher@amd.com>2022-05-11 00:53:12 +0300
commit41967850e4f0720f0b472beb84b908957cbc1ebe (patch)
treeb9171b1da6a55ed5e8500d189803e30d5e331b2e /drivers/gpu/drm/amd/amdgpu/lsdma_v6_0.c
parent74c9b2e704c99d09e3b7e6928df9d8d5891b5174 (diff)
downloadlinux-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.c16
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
};