diff options
-rw-r--r-- | drivers/gpu/drm/radeon/evergreen.c | 57 | ||||
-rw-r--r-- | drivers/gpu/drm/radeon/radeon_asic.h | 8 | ||||
-rw-r--r-- | drivers/gpu/drm/radeon/rv515.c | 13 |
3 files changed, 2 insertions, 76 deletions
diff --git a/drivers/gpu/drm/radeon/evergreen.c b/drivers/gpu/drm/radeon/evergreen.c index 8846bad45e6..314e2172a88 100644 --- a/drivers/gpu/drm/radeon/evergreen.c +++ b/drivers/gpu/drm/radeon/evergreen.c | |||
@@ -1019,24 +1019,8 @@ void evergreen_agp_enable(struct radeon_device *rdev) | |||
1019 | 1019 | ||
1020 | void evergreen_mc_stop(struct radeon_device *rdev, struct evergreen_mc_save *save) | 1020 | void evergreen_mc_stop(struct radeon_device *rdev, struct evergreen_mc_save *save) |
1021 | { | 1021 | { |
1022 | save->vga_control[0] = RREG32(D1VGA_CONTROL); | ||
1023 | save->vga_control[1] = RREG32(D2VGA_CONTROL); | ||
1024 | save->vga_render_control = RREG32(VGA_RENDER_CONTROL); | 1022 | save->vga_render_control = RREG32(VGA_RENDER_CONTROL); |
1025 | save->vga_hdp_control = RREG32(VGA_HDP_CONTROL); | 1023 | save->vga_hdp_control = RREG32(VGA_HDP_CONTROL); |
1026 | save->crtc_control[0] = RREG32(EVERGREEN_CRTC_CONTROL + EVERGREEN_CRTC0_REGISTER_OFFSET); | ||
1027 | save->crtc_control[1] = RREG32(EVERGREEN_CRTC_CONTROL + EVERGREEN_CRTC1_REGISTER_OFFSET); | ||
1028 | if (rdev->num_crtc >= 4) { | ||
1029 | save->vga_control[2] = RREG32(EVERGREEN_D3VGA_CONTROL); | ||
1030 | save->vga_control[3] = RREG32(EVERGREEN_D4VGA_CONTROL); | ||
1031 | save->crtc_control[2] = RREG32(EVERGREEN_CRTC_CONTROL + EVERGREEN_CRTC2_REGISTER_OFFSET); | ||
1032 | save->crtc_control[3] = RREG32(EVERGREEN_CRTC_CONTROL + EVERGREEN_CRTC3_REGISTER_OFFSET); | ||
1033 | } | ||
1034 | if (rdev->num_crtc >= 6) { | ||
1035 | save->vga_control[4] = RREG32(EVERGREEN_D5VGA_CONTROL); | ||
1036 | save->vga_control[5] = RREG32(EVERGREEN_D6VGA_CONTROL); | ||
1037 | save->crtc_control[4] = RREG32(EVERGREEN_CRTC_CONTROL + EVERGREEN_CRTC4_REGISTER_OFFSET); | ||
1038 | save->crtc_control[5] = RREG32(EVERGREEN_CRTC_CONTROL + EVERGREEN_CRTC5_REGISTER_OFFSET); | ||
1039 | } | ||
1040 | 1024 | ||
1041 | /* Stop all video */ | 1025 | /* Stop all video */ |
1042 | WREG32(VGA_RENDER_CONTROL, 0); | 1026 | WREG32(VGA_RENDER_CONTROL, 0); |
@@ -1147,47 +1131,6 @@ void evergreen_mc_resume(struct radeon_device *rdev, struct evergreen_mc_save *s | |||
1147 | /* Unlock host access */ | 1131 | /* Unlock host access */ |
1148 | WREG32(VGA_HDP_CONTROL, save->vga_hdp_control); | 1132 | WREG32(VGA_HDP_CONTROL, save->vga_hdp_control); |
1149 | mdelay(1); | 1133 | mdelay(1); |
1150 | /* Restore video state */ | ||
1151 | WREG32(D1VGA_CONTROL, save->vga_control[0]); | ||
1152 | WREG32(D2VGA_CONTROL, save->vga_control[1]); | ||
1153 | if (rdev->num_crtc >= 4) { | ||
1154 | WREG32(EVERGREEN_D3VGA_CONTROL, save->vga_control[2]); | ||
1155 | WREG32(EVERGREEN_D4VGA_CONTROL, save->vga_control[3]); | ||
1156 | } | ||
1157 | if (rdev->num_crtc >= 6) { | ||
1158 | WREG32(EVERGREEN_D5VGA_CONTROL, save->vga_control[4]); | ||
1159 | WREG32(EVERGREEN_D6VGA_CONTROL, save->vga_control[5]); | ||
1160 | } | ||
1161 | WREG32(EVERGREEN_CRTC_UPDATE_LOCK + EVERGREEN_CRTC0_REGISTER_OFFSET, 1); | ||
1162 | WREG32(EVERGREEN_CRTC_UPDATE_LOCK + EVERGREEN_CRTC1_REGISTER_OFFSET, 1); | ||
1163 | if (rdev->num_crtc >= 4) { | ||
1164 | WREG32(EVERGREEN_CRTC_UPDATE_LOCK + EVERGREEN_CRTC2_REGISTER_OFFSET, 1); | ||
1165 | WREG32(EVERGREEN_CRTC_UPDATE_LOCK + EVERGREEN_CRTC3_REGISTER_OFFSET, 1); | ||
1166 | } | ||
1167 | if (rdev->num_crtc >= 6) { | ||
1168 | WREG32(EVERGREEN_CRTC_UPDATE_LOCK + EVERGREEN_CRTC4_REGISTER_OFFSET, 1); | ||
1169 | WREG32(EVERGREEN_CRTC_UPDATE_LOCK + EVERGREEN_CRTC5_REGISTER_OFFSET, 1); | ||
1170 | } | ||
1171 | WREG32(EVERGREEN_CRTC_CONTROL + EVERGREEN_CRTC0_REGISTER_OFFSET, save->crtc_control[0]); | ||
1172 | WREG32(EVERGREEN_CRTC_CONTROL + EVERGREEN_CRTC1_REGISTER_OFFSET, save->crtc_control[1]); | ||
1173 | if (rdev->num_crtc >= 4) { | ||
1174 | WREG32(EVERGREEN_CRTC_CONTROL + EVERGREEN_CRTC2_REGISTER_OFFSET, save->crtc_control[2]); | ||
1175 | WREG32(EVERGREEN_CRTC_CONTROL + EVERGREEN_CRTC3_REGISTER_OFFSET, save->crtc_control[3]); | ||
1176 | } | ||
1177 | if (rdev->num_crtc >= 6) { | ||
1178 | WREG32(EVERGREEN_CRTC_CONTROL + EVERGREEN_CRTC4_REGISTER_OFFSET, save->crtc_control[4]); | ||
1179 | WREG32(EVERGREEN_CRTC_CONTROL + EVERGREEN_CRTC5_REGISTER_OFFSET, save->crtc_control[5]); | ||
1180 | } | ||
1181 | WREG32(EVERGREEN_CRTC_UPDATE_LOCK + EVERGREEN_CRTC0_REGISTER_OFFSET, 0); | ||
1182 | WREG32(EVERGREEN_CRTC_UPDATE_LOCK + EVERGREEN_CRTC1_REGISTER_OFFSET, 0); | ||
1183 | if (rdev->num_crtc >= 4) { | ||
1184 | WREG32(EVERGREEN_CRTC_UPDATE_LOCK + EVERGREEN_CRTC2_REGISTER_OFFSET, 0); | ||
1185 | WREG32(EVERGREEN_CRTC_UPDATE_LOCK + EVERGREEN_CRTC3_REGISTER_OFFSET, 0); | ||
1186 | } | ||
1187 | if (rdev->num_crtc >= 6) { | ||
1188 | WREG32(EVERGREEN_CRTC_UPDATE_LOCK + EVERGREEN_CRTC4_REGISTER_OFFSET, 0); | ||
1189 | WREG32(EVERGREEN_CRTC_UPDATE_LOCK + EVERGREEN_CRTC5_REGISTER_OFFSET, 0); | ||
1190 | } | ||
1191 | WREG32(VGA_RENDER_CONTROL, save->vga_render_control); | 1134 | WREG32(VGA_RENDER_CONTROL, save->vga_render_control); |
1192 | } | 1135 | } |
1193 | 1136 | ||
diff --git a/drivers/gpu/drm/radeon/radeon_asic.h b/drivers/gpu/drm/radeon/radeon_asic.h index 3dedaa07aac..4d81e961239 100644 --- a/drivers/gpu/drm/radeon/radeon_asic.h +++ b/drivers/gpu/drm/radeon/radeon_asic.h | |||
@@ -253,13 +253,10 @@ void rs690_line_buffer_adjust(struct radeon_device *rdev, | |||
253 | * rv515 | 253 | * rv515 |
254 | */ | 254 | */ |
255 | struct rv515_mc_save { | 255 | struct rv515_mc_save { |
256 | u32 d1vga_control; | ||
257 | u32 d2vga_control; | ||
258 | u32 vga_render_control; | 256 | u32 vga_render_control; |
259 | u32 vga_hdp_control; | 257 | u32 vga_hdp_control; |
260 | u32 d1crtc_control; | ||
261 | u32 d2crtc_control; | ||
262 | }; | 258 | }; |
259 | |||
263 | int rv515_init(struct radeon_device *rdev); | 260 | int rv515_init(struct radeon_device *rdev); |
264 | void rv515_fini(struct radeon_device *rdev); | 261 | void rv515_fini(struct radeon_device *rdev); |
265 | uint32_t rv515_mc_rreg(struct radeon_device *rdev, uint32_t reg); | 262 | uint32_t rv515_mc_rreg(struct radeon_device *rdev, uint32_t reg); |
@@ -387,11 +384,10 @@ void r700_cp_fini(struct radeon_device *rdev); | |||
387 | * evergreen | 384 | * evergreen |
388 | */ | 385 | */ |
389 | struct evergreen_mc_save { | 386 | struct evergreen_mc_save { |
390 | u32 vga_control[6]; | ||
391 | u32 vga_render_control; | 387 | u32 vga_render_control; |
392 | u32 vga_hdp_control; | 388 | u32 vga_hdp_control; |
393 | u32 crtc_control[6]; | ||
394 | }; | 389 | }; |
390 | |||
395 | void evergreen_pcie_gart_tlb_flush(struct radeon_device *rdev); | 391 | void evergreen_pcie_gart_tlb_flush(struct radeon_device *rdev); |
396 | int evergreen_init(struct radeon_device *rdev); | 392 | int evergreen_init(struct radeon_device *rdev); |
397 | void evergreen_fini(struct radeon_device *rdev); | 393 | void evergreen_fini(struct radeon_device *rdev); |
diff --git a/drivers/gpu/drm/radeon/rv515.c b/drivers/gpu/drm/radeon/rv515.c index 6613ee9ecca..d5f45b4c1be 100644 --- a/drivers/gpu/drm/radeon/rv515.c +++ b/drivers/gpu/drm/radeon/rv515.c | |||
@@ -281,12 +281,8 @@ int rv515_debugfs_ga_info_init(struct radeon_device *rdev) | |||
281 | 281 | ||
282 | void rv515_mc_stop(struct radeon_device *rdev, struct rv515_mc_save *save) | 282 | void rv515_mc_stop(struct radeon_device *rdev, struct rv515_mc_save *save) |
283 | { | 283 | { |
284 | save->d1vga_control = RREG32(R_000330_D1VGA_CONTROL); | ||
285 | save->d2vga_control = RREG32(R_000338_D2VGA_CONTROL); | ||
286 | save->vga_render_control = RREG32(R_000300_VGA_RENDER_CONTROL); | 284 | save->vga_render_control = RREG32(R_000300_VGA_RENDER_CONTROL); |
287 | save->vga_hdp_control = RREG32(R_000328_VGA_HDP_CONTROL); | 285 | save->vga_hdp_control = RREG32(R_000328_VGA_HDP_CONTROL); |
288 | save->d1crtc_control = RREG32(R_006080_D1CRTC_CONTROL); | ||
289 | save->d2crtc_control = RREG32(R_006880_D2CRTC_CONTROL); | ||
290 | 286 | ||
291 | /* Stop all video */ | 287 | /* Stop all video */ |
292 | WREG32(R_0068E8_D2CRTC_UPDATE_LOCK, 0); | 288 | WREG32(R_0068E8_D2CRTC_UPDATE_LOCK, 0); |
@@ -311,15 +307,6 @@ void rv515_mc_resume(struct radeon_device *rdev, struct rv515_mc_save *save) | |||
311 | /* Unlock host access */ | 307 | /* Unlock host access */ |
312 | WREG32(R_000328_VGA_HDP_CONTROL, save->vga_hdp_control); | 308 | WREG32(R_000328_VGA_HDP_CONTROL, save->vga_hdp_control); |
313 | mdelay(1); | 309 | mdelay(1); |
314 | /* Restore video state */ | ||
315 | WREG32(R_000330_D1VGA_CONTROL, save->d1vga_control); | ||
316 | WREG32(R_000338_D2VGA_CONTROL, save->d2vga_control); | ||
317 | WREG32(R_0060E8_D1CRTC_UPDATE_LOCK, 1); | ||
318 | WREG32(R_0068E8_D2CRTC_UPDATE_LOCK, 1); | ||
319 | WREG32(R_006080_D1CRTC_CONTROL, save->d1crtc_control); | ||
320 | WREG32(R_006880_D2CRTC_CONTROL, save->d2crtc_control); | ||
321 | WREG32(R_0060E8_D1CRTC_UPDATE_LOCK, 0); | ||
322 | WREG32(R_0068E8_D2CRTC_UPDATE_LOCK, 0); | ||
323 | WREG32(R_000300_VGA_RENDER_CONTROL, save->vga_render_control); | 310 | WREG32(R_000300_VGA_RENDER_CONTROL, save->vga_render_control); |
324 | } | 311 | } |
325 | 312 | ||