|
@@ -928,16 +928,14 @@ static void radeon_legacy_tv_dac_mode_set(struct drm_encoder *encoder,
|
|
|
if (ASIC_IS_R300(rdev)) {
|
|
|
gpiopad_a = RREG32(RADEON_GPIOPAD_A) | 1;
|
|
|
disp_output_cntl = RREG32(RADEON_DISP_OUTPUT_CNTL);
|
|
|
- }
|
|
|
-
|
|
|
- if (rdev->family == CHIP_R200 || ASIC_IS_R300(rdev))
|
|
|
- disp_tv_out_cntl = RREG32(RADEON_DISP_TV_OUT_CNTL);
|
|
|
- else
|
|
|
+ } else if (rdev->family != CHIP_R200)
|
|
|
disp_hw_debug = RREG32(RADEON_DISP_HW_DEBUG);
|
|
|
-
|
|
|
- if (rdev->family == CHIP_R200)
|
|
|
+ else if (rdev->family == CHIP_R200)
|
|
|
fp2_gen_cntl = RREG32(RADEON_FP2_GEN_CNTL);
|
|
|
|
|
|
+ if (rdev->family >= CHIP_R200)
|
|
|
+ disp_tv_out_cntl = RREG32(RADEON_DISP_TV_OUT_CNTL);
|
|
|
+
|
|
|
if (is_tv) {
|
|
|
uint32_t dac_cntl;
|
|
|
|
|
@@ -1002,15 +1000,13 @@ static void radeon_legacy_tv_dac_mode_set(struct drm_encoder *encoder,
|
|
|
if (ASIC_IS_R300(rdev)) {
|
|
|
WREG32_P(RADEON_GPIOPAD_A, gpiopad_a, ~1);
|
|
|
WREG32(RADEON_DISP_OUTPUT_CNTL, disp_output_cntl);
|
|
|
- }
|
|
|
+ } else if (rdev->family != CHIP_R200)
|
|
|
+ WREG32(RADEON_DISP_HW_DEBUG, disp_hw_debug);
|
|
|
+ else if (rdev->family == CHIP_R200)
|
|
|
+ WREG32(RADEON_FP2_GEN_CNTL, fp2_gen_cntl);
|
|
|
|
|
|
if (rdev->family >= CHIP_R200)
|
|
|
WREG32(RADEON_DISP_TV_OUT_CNTL, disp_tv_out_cntl);
|
|
|
- else
|
|
|
- WREG32(RADEON_DISP_HW_DEBUG, disp_hw_debug);
|
|
|
-
|
|
|
- if (rdev->family == CHIP_R200)
|
|
|
- WREG32(RADEON_FP2_GEN_CNTL, fp2_gen_cntl);
|
|
|
|
|
|
if (is_tv)
|
|
|
radeon_legacy_tv_mode_set(encoder, mode, adjusted_mode);
|