aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJames Zhu <James.Zhu@amd.com>2018-09-10 16:00:36 -0400
committerAlex Deucher <alexander.deucher@amd.com>2018-09-26 22:09:24 -0400
commit03d6e3aac81634a91dd2790f8c199ffb3927fe3c (patch)
tree1c6e343575897cebfc58612cff171b91092c12de
parentf28ff06210f444da0b52168450625ad883ff8a1f (diff)
drm/amdgpu:Add DPG mode read/write macro
Some registers read/write needs program through SDRAM pool under DPG mode. Signed-off-by: James Zhu <James.Zhu@amd.com> Reviewed-by: Alex Deucher <alexander.deucher@amd.com> Reviewed-by: Huang Rui <ray.huang@amd.com> Acked-by: Christian König <christian.koenig@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
-rw-r--r--drivers/gpu/drm/amd/amdgpu/soc15_common.h20
1 files changed, 20 insertions, 0 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/soc15_common.h b/drivers/gpu/drm/amd/amdgpu/soc15_common.h
index f5d602540673..d35fac5b5a8a 100644
--- a/drivers/gpu/drm/amd/amdgpu/soc15_common.h
+++ b/drivers/gpu/drm/amd/amdgpu/soc15_common.h
@@ -64,6 +64,26 @@
64 } \ 64 } \
65 } while (0) 65 } while (0)
66 66
67#define RREG32_SOC15_DPG_MODE(ip, inst, reg, mask, sram_sel) \
68 ({ WREG32_SOC15(ip, inst, mmUVD_DPG_LMA_MASK, mask); \
69 WREG32_SOC15(ip, inst, mmUVD_DPG_LMA_CTL, \
70 UVD_DPG_LMA_CTL__MASK_EN_MASK | \
71 ((adev->reg_offset[ip##_HWIP][inst][reg##_BASE_IDX] + reg) \
72 << UVD_DPG_LMA_CTL__READ_WRITE_ADDR__SHIFT) | \
73 (sram_sel << UVD_DPG_LMA_CTL__SRAM_SEL__SHIFT)); \
74 RREG32_SOC15(ip, inst, mmUVD_DPG_LMA_DATA); })
75
76#define WREG32_SOC15_DPG_MODE(ip, inst, reg, value, mask, sram_sel) \
77 do { \
78 WREG32_SOC15(ip, inst, mmUVD_DPG_LMA_DATA, value); \
79 WREG32_SOC15(ip, inst, mmUVD_DPG_LMA_MASK, mask); \
80 WREG32_SOC15(ip, inst, mmUVD_DPG_LMA_CTL, \
81 UVD_DPG_LMA_CTL__READ_WRITE_MASK | \
82 ((adev->reg_offset[ip##_HWIP][inst][reg##_BASE_IDX] + reg) \
83 << UVD_DPG_LMA_CTL__READ_WRITE_ADDR__SHIFT) | \
84 (sram_sel << UVD_DPG_LMA_CTL__SRAM_SEL__SHIFT)); \
85 } while (0)
86
67#endif 87#endif
68 88
69 89