diff options
Diffstat (limited to 'drivers/gpu/drm/radeon/cik.c')
-rw-r--r-- | drivers/gpu/drm/radeon/cik.c | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/drivers/gpu/drm/radeon/cik.c b/drivers/gpu/drm/radeon/cik.c index 3e670d344a20..e1db25e48688 100644 --- a/drivers/gpu/drm/radeon/cik.c +++ b/drivers/gpu/drm/radeon/cik.c | |||
@@ -141,6 +141,39 @@ static void cik_fini_cg(struct radeon_device *rdev); | |||
141 | static void cik_enable_gui_idle_interrupt(struct radeon_device *rdev, | 141 | static void cik_enable_gui_idle_interrupt(struct radeon_device *rdev, |
142 | bool enable); | 142 | bool enable); |
143 | 143 | ||
144 | /** | ||
145 | * cik_get_allowed_info_register - fetch the register for the info ioctl | ||
146 | * | ||
147 | * @rdev: radeon_device pointer | ||
148 | * @reg: register offset in bytes | ||
149 | * @val: register value | ||
150 | * | ||
151 | * Returns 0 for success or -EINVAL for an invalid register | ||
152 | * | ||
153 | */ | ||
154 | int cik_get_allowed_info_register(struct radeon_device *rdev, | ||
155 | u32 reg, u32 *val) | ||
156 | { | ||
157 | switch (reg) { | ||
158 | case GRBM_STATUS: | ||
159 | case GRBM_STATUS2: | ||
160 | case GRBM_STATUS_SE0: | ||
161 | case GRBM_STATUS_SE1: | ||
162 | case GRBM_STATUS_SE2: | ||
163 | case GRBM_STATUS_SE3: | ||
164 | case SRBM_STATUS: | ||
165 | case SRBM_STATUS2: | ||
166 | case (SDMA0_STATUS_REG + SDMA0_REGISTER_OFFSET): | ||
167 | case (SDMA0_STATUS_REG + SDMA1_REGISTER_OFFSET): | ||
168 | case UVD_STATUS: | ||
169 | /* TODO VCE */ | ||
170 | *val = RREG32(reg); | ||
171 | return 0; | ||
172 | default: | ||
173 | return -EINVAL; | ||
174 | } | ||
175 | } | ||
176 | |||
144 | /* get temperature in millidegrees */ | 177 | /* get temperature in millidegrees */ |
145 | int ci_get_temp(struct radeon_device *rdev) | 178 | int ci_get_temp(struct radeon_device *rdev) |
146 | { | 179 | { |