diff options
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/soc15_common.h')
| -rw-r--r-- | drivers/gpu/drm/amd/amdgpu/soc15_common.h | 62 | 
1 files changed, 9 insertions, 53 deletions
| diff --git a/drivers/gpu/drm/amd/amdgpu/soc15_common.h b/drivers/gpu/drm/amd/amdgpu/soc15_common.h index 7a8e4e28abb2..def865067edd 100644 --- a/drivers/gpu/drm/amd/amdgpu/soc15_common.h +++ b/drivers/gpu/drm/amd/amdgpu/soc15_common.h @@ -24,72 +24,28 @@  #ifndef __SOC15_COMMON_H__  #define __SOC15_COMMON_H__ -struct nbio_hdp_flush_reg { -	u32 hdp_flush_req_offset; -	u32 hdp_flush_done_offset; -	u32 ref_and_mask_cp0; -	u32 ref_and_mask_cp1; -	u32 ref_and_mask_cp2; -	u32 ref_and_mask_cp3; -	u32 ref_and_mask_cp4; -	u32 ref_and_mask_cp5; -	u32 ref_and_mask_cp6; -	u32 ref_and_mask_cp7; -	u32 ref_and_mask_cp8; -	u32 ref_and_mask_cp9; -	u32 ref_and_mask_sdma0; -	u32 ref_and_mask_sdma1; -}; - -struct nbio_pcie_index_data { -	u32 index_offset; -	u32 data_offset; -}; -  /* Register Access Macros */ -#define SOC15_REG_OFFSET(ip, inst, reg)       (0 == reg##_BASE_IDX ? ip##_BASE__INST##inst##_SEG0 + reg : \ -                                                (1 == reg##_BASE_IDX ? ip##_BASE__INST##inst##_SEG1 + reg : \ -                                                    (2 == reg##_BASE_IDX ? ip##_BASE__INST##inst##_SEG2 + reg : \ -                                                        (3 == reg##_BASE_IDX ? ip##_BASE__INST##inst##_SEG3 + reg : \ -                                                            (ip##_BASE__INST##inst##_SEG4 + reg))))) +#define SOC15_REG_OFFSET(ip, inst, reg)	(adev->reg_offset[ip##_HWIP][inst][reg##_BASE_IDX] + reg)  #define WREG32_FIELD15(ip, idx, reg, field, val)	\ -	WREG32(SOC15_REG_OFFSET(ip, idx, mm##reg), (RREG32(SOC15_REG_OFFSET(ip, idx, mm##reg)) & ~REG_FIELD_MASK(reg, field)) | (val) << REG_FIELD_SHIFT(reg, field)) +	WREG32(adev->reg_offset[ip##_HWIP][idx][mm##reg##_BASE_IDX] + mm##reg,	\ +	(RREG32(adev->reg_offset[ip##_HWIP][idx][mm##reg##_BASE_IDX] + mm##reg)	\ +	& ~REG_FIELD_MASK(reg, field)) | (val) << REG_FIELD_SHIFT(reg, field))  #define RREG32_SOC15(ip, inst, reg) \ -	RREG32( (0 == reg##_BASE_IDX ? ip##_BASE__INST##inst##_SEG0 + reg : \ -		(1 == reg##_BASE_IDX ? ip##_BASE__INST##inst##_SEG1 + reg : \ -		(2 == reg##_BASE_IDX ? ip##_BASE__INST##inst##_SEG2 + reg : \ -		(3 == reg##_BASE_IDX ? ip##_BASE__INST##inst##_SEG3 + reg : \ -		(ip##_BASE__INST##inst##_SEG4 + reg)))))) +	RREG32(adev->reg_offset[ip##_HWIP][inst][reg##_BASE_IDX] + reg)  #define RREG32_SOC15_OFFSET(ip, inst, reg, offset) \ -	RREG32( (0 == reg##_BASE_IDX ? ip##_BASE__INST##inst##_SEG0 + reg : \ -		(1 == reg##_BASE_IDX ? ip##_BASE__INST##inst##_SEG1 + reg : \ -		(2 == reg##_BASE_IDX ? ip##_BASE__INST##inst##_SEG2 + reg : \ -		(3 == reg##_BASE_IDX ? ip##_BASE__INST##inst##_SEG3 + reg : \ -		(ip##_BASE__INST##inst##_SEG4 + reg))))) + offset) +	RREG32((adev->reg_offset[ip##_HWIP][inst][reg##_BASE_IDX] + reg) + offset)  #define WREG32_SOC15(ip, inst, reg, value) \ -	WREG32( (0 == reg##_BASE_IDX ? ip##_BASE__INST##inst##_SEG0 + reg : \ -		(1 == reg##_BASE_IDX ? ip##_BASE__INST##inst##_SEG1 + reg : \ -		(2 == reg##_BASE_IDX ? ip##_BASE__INST##inst##_SEG2 + reg : \ -		(3 == reg##_BASE_IDX ? ip##_BASE__INST##inst##_SEG3 + reg : \ -		(ip##_BASE__INST##inst##_SEG4 + reg))))), value) +	WREG32((adev->reg_offset[ip##_HWIP][inst][reg##_BASE_IDX] + reg), value)  #define WREG32_SOC15_NO_KIQ(ip, inst, reg, value) \ -	WREG32_NO_KIQ( (0 == reg##_BASE_IDX ? ip##_BASE__INST##inst##_SEG0 + reg : \ -		(1 == reg##_BASE_IDX ? ip##_BASE__INST##inst##_SEG1 + reg : \ -		(2 == reg##_BASE_IDX ? ip##_BASE__INST##inst##_SEG2 + reg : \ -		(3 == reg##_BASE_IDX ? ip##_BASE__INST##inst##_SEG3 + reg : \ -		(ip##_BASE__INST##inst##_SEG4 + reg))))), value) +	WREG32_NO_KIQ((adev->reg_offset[ip##_HWIP][inst][reg##_BASE_IDX] + reg), value)  #define WREG32_SOC15_OFFSET(ip, inst, reg, offset, value) \ -	WREG32( (0 == reg##_BASE_IDX ? ip##_BASE__INST##inst##_SEG0 + reg : \ -		(1 == reg##_BASE_IDX ? ip##_BASE__INST##inst##_SEG1 + reg : \ -		(2 == reg##_BASE_IDX ? ip##_BASE__INST##inst##_SEG2 + reg : \ -		(3 == reg##_BASE_IDX ? ip##_BASE__INST##inst##_SEG3 + reg : \ -		(ip##_BASE__INST##inst##_SEG4 + reg))))) + offset, value) +	WREG32((adev->reg_offset[ip##_HWIP][inst][reg##_BASE_IDX] + reg) + offset, value)  #endif |