drm/amdgpu: add new write field for soc21
authorStanley.Yang <Stanley.Yang@amd.com>
Wed, 4 Aug 2021 07:43:17 +0000 (15:43 +0800)
committerAlex Deucher <alexander.deucher@amd.com>
Thu, 28 Apr 2022 21:48:35 +0000 (17:48 -0400)
add new write field macro to handle soc21
registers with reg prefix

Acked-by: Christian König <christian.koenig@amd.com>
Signed-off-by: Stanley.Yang <Stanley.Yang@amd.com>
Reviewed-by: Hawking Zhang <Hawking.Zhang@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/amdgpu/soc15_common.h

index acce8c2..9fefd40 100644 (file)
                                ~REG_FIELD_MASK(reg, field)) | (val) << REG_FIELD_SHIFT(reg, field), \
                              0, ip##_HWIP)
 
+#define WREG32_FIELD15_PREREG(ip, idx, reg_name, field, val)        \
+       __WREG32_SOC15_RLC__(adev->reg_offset[ip##_HWIP][idx][reg##reg_name##_BASE_IDX] + reg##reg_name,   \
+                       (__RREG32_SOC15_RLC__( \
+                                       adev->reg_offset[ip##_HWIP][idx][reg##reg_name##_BASE_IDX] + reg##reg_name, \
+                                       0, ip##_HWIP) & \
+                                       ~REG_FIELD_MASK(reg_name, field)) | (val) << REG_FIELD_SHIFT(reg_name, field), \
+                       0, ip##_HWIP)
+
 #define RREG32_SOC15(ip, inst, reg) \
        __RREG32_SOC15_RLC__(adev->reg_offset[ip##_HWIP][inst][reg##_BASE_IDX] + reg, \
                         0, ip##_HWIP)