|
@@ -595,6 +595,7 @@ atombios_digital_setup(struct drm_encoder *encoder, int action)
|
|
|
int
|
|
|
atombios_get_encoder_mode(struct drm_encoder *encoder)
|
|
|
{
|
|
|
+ struct radeon_encoder *radeon_encoder = to_radeon_encoder(encoder);
|
|
|
struct drm_device *dev = encoder->dev;
|
|
|
struct radeon_device *rdev = dev->dev_private;
|
|
|
struct drm_connector *connector;
|
|
@@ -602,9 +603,20 @@ atombios_get_encoder_mode(struct drm_encoder *encoder)
|
|
|
struct radeon_connector_atom_dig *dig_connector;
|
|
|
|
|
|
connector = radeon_get_connector_for_encoder(encoder);
|
|
|
- if (!connector)
|
|
|
- return 0;
|
|
|
-
|
|
|
+ if (!connector) {
|
|
|
+ switch (radeon_encoder->encoder_id) {
|
|
|
+ case ENCODER_OBJECT_ID_INTERNAL_UNIPHY:
|
|
|
+ case ENCODER_OBJECT_ID_INTERNAL_UNIPHY1:
|
|
|
+ case ENCODER_OBJECT_ID_INTERNAL_UNIPHY2:
|
|
|
+ case ENCODER_OBJECT_ID_INTERNAL_KLDSCP_LVTMA:
|
|
|
+ case ENCODER_OBJECT_ID_INTERNAL_KLDSCP_DVO1:
|
|
|
+ return ATOM_ENCODER_MODE_DVI;
|
|
|
+ case ENCODER_OBJECT_ID_INTERNAL_KLDSCP_DAC1:
|
|
|
+ case ENCODER_OBJECT_ID_INTERNAL_KLDSCP_DAC2:
|
|
|
+ default:
|
|
|
+ return ATOM_ENCODER_MODE_CRT;
|
|
|
+ }
|
|
|
+ }
|
|
|
radeon_connector = to_radeon_connector(connector);
|
|
|
|
|
|
switch (connector->connector_type) {
|