drm/radeon/kms: disable the tv encoder when tv/cv is not in use

Switching between TV and VGA caused VGA to break on some systems
since the TV encoder was left enabled when VGA was used.

fixes fdo bug 25520.

Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
Cc: stable <stable@kernel.org>
Signed-off-by: Dave Airlie <airlied@redhat.com>

authored by Alex Deucher and committed by Dave Airlie d3a67a43 a1a4b23b

+6 -2
+6 -2
drivers/gpu/drm/radeon/radeon_encoders.c
··· 1377 case ENCODER_OBJECT_ID_INTERNAL_DAC2: 1378 case ENCODER_OBJECT_ID_INTERNAL_KLDSCP_DAC2: 1379 atombios_dac_setup(encoder, ATOM_ENABLE); 1380 - if (radeon_encoder->active_device & (ATOM_DEVICE_TV_SUPPORT | ATOM_DEVICE_CV_SUPPORT)) 1381 - atombios_tv_setup(encoder, ATOM_ENABLE); 1382 break; 1383 } 1384 atombios_apply_encoder_quirks(encoder, adjusted_mode);
··· 1377 case ENCODER_OBJECT_ID_INTERNAL_DAC2: 1378 case ENCODER_OBJECT_ID_INTERNAL_KLDSCP_DAC2: 1379 atombios_dac_setup(encoder, ATOM_ENABLE); 1380 + if (radeon_encoder->devices & (ATOM_DEVICE_TV_SUPPORT | ATOM_DEVICE_CV_SUPPORT)) { 1381 + if (radeon_encoder->active_device & (ATOM_DEVICE_TV_SUPPORT | ATOM_DEVICE_CV_SUPPORT)) 1382 + atombios_tv_setup(encoder, ATOM_ENABLE); 1383 + else 1384 + atombios_tv_setup(encoder, ATOM_DISABLE); 1385 + } 1386 break; 1387 } 1388 atombios_apply_encoder_quirks(encoder, adjusted_mode);