diff options
author | Alex Deucher <alexander.deucher@amd.com> | 2012-04-20 12:39:49 -0400 |
---|---|---|
committer | Alex Deucher <alexander.deucher@amd.com> | 2013-06-26 16:11:47 -0400 |
commit | 1d5d0c349790b66fcd338f0b5ce04b9aa7483118 (patch) | |
tree | 05226a461ae1f6049164d9d4dbc5280b339ad7f7 /drivers/gpu/drm/radeon/radeon.h | |
parent | cc066715e6e164032ab382625cd311079a2f90ac (diff) |
drm/radeon: add indirect register accessors for SMC registers
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Diffstat (limited to 'drivers/gpu/drm/radeon/radeon.h')
-rw-r--r-- | drivers/gpu/drm/radeon/radeon.h | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/drivers/gpu/drm/radeon/radeon.h b/drivers/gpu/drm/radeon/radeon.h index b329e993c5b5..9af0fa66edb2 100644 --- a/drivers/gpu/drm/radeon/radeon.h +++ b/drivers/gpu/drm/radeon/radeon.h | |||
@@ -1806,6 +1806,8 @@ void r100_io_wreg(struct radeon_device *rdev, u32 reg, u32 v); | |||
1806 | #define WREG32_PCIE(reg, v) rv370_pcie_wreg(rdev, (reg), (v)) | 1806 | #define WREG32_PCIE(reg, v) rv370_pcie_wreg(rdev, (reg), (v)) |
1807 | #define RREG32_PCIE_PORT(reg) rdev->pciep_rreg(rdev, (reg)) | 1807 | #define RREG32_PCIE_PORT(reg) rdev->pciep_rreg(rdev, (reg)) |
1808 | #define WREG32_PCIE_PORT(reg, v) rdev->pciep_wreg(rdev, (reg), (v)) | 1808 | #define WREG32_PCIE_PORT(reg, v) rdev->pciep_wreg(rdev, (reg), (v)) |
1809 | #define RREG32_SMC(reg) tn_smc_rreg(rdev, (reg)) | ||
1810 | #define WREG32_SMC(reg, v) tn_smc_wreg(rdev, (reg), (v)) | ||
1809 | #define WREG32_P(reg, val, mask) \ | 1811 | #define WREG32_P(reg, val, mask) \ |
1810 | do { \ | 1812 | do { \ |
1811 | uint32_t tmp_ = RREG32(reg); \ | 1813 | uint32_t tmp_ = RREG32(reg); \ |
@@ -1844,6 +1846,21 @@ static inline void rv370_pcie_wreg(struct radeon_device *rdev, uint32_t reg, uin | |||
1844 | WREG32(RADEON_PCIE_DATA, (v)); | 1846 | WREG32(RADEON_PCIE_DATA, (v)); |
1845 | } | 1847 | } |
1846 | 1848 | ||
1849 | static inline u32 tn_smc_rreg(struct radeon_device *rdev, u32 reg) | ||
1850 | { | ||
1851 | u32 r; | ||
1852 | |||
1853 | WREG32(TN_SMC_IND_INDEX_0, (reg)); | ||
1854 | r = RREG32(TN_SMC_IND_DATA_0); | ||
1855 | return r; | ||
1856 | } | ||
1857 | |||
1858 | static inline void tn_smc_wreg(struct radeon_device *rdev, u32 reg, u32 v) | ||
1859 | { | ||
1860 | WREG32(TN_SMC_IND_INDEX_0, (reg)); | ||
1861 | WREG32(TN_SMC_IND_DATA_0, (v)); | ||
1862 | } | ||
1863 | |||
1847 | void r100_pll_errata_after_index(struct radeon_device *rdev); | 1864 | void r100_pll_errata_after_index(struct radeon_device *rdev); |
1848 | 1865 | ||
1849 | 1866 | ||