drm/radeon/kms: rework atombios_get_encoder_mode()
This should give us more reliable results if the table is called before an active device is set. Signed-off-by: Alex Deucher <alexdeucher@gmail.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
This commit is contained in:
Родитель
ba7e05e958
Коммит
fbb8777365
|
@ -660,21 +660,16 @@ atombios_get_encoder_mode(struct drm_encoder *encoder)
|
||||||
if (radeon_encoder_is_dp_bridge(encoder))
|
if (radeon_encoder_is_dp_bridge(encoder))
|
||||||
return ATOM_ENCODER_MODE_DP;
|
return ATOM_ENCODER_MODE_DP;
|
||||||
|
|
||||||
|
/* DVO is always DVO */
|
||||||
|
if (radeon_encoder->encoder_id == ATOM_ENCODER_MODE_DVO)
|
||||||
|
return ATOM_ENCODER_MODE_DVO;
|
||||||
|
|
||||||
connector = radeon_get_connector_for_encoder(encoder);
|
connector = radeon_get_connector_for_encoder(encoder);
|
||||||
if (!connector) {
|
/* if we don't have an active device yet, just use one of
|
||||||
switch (radeon_encoder->encoder_id) {
|
* the connectors tied to the encoder.
|
||||||
case ENCODER_OBJECT_ID_INTERNAL_UNIPHY:
|
*/
|
||||||
case ENCODER_OBJECT_ID_INTERNAL_UNIPHY1:
|
if (!connector)
|
||||||
case ENCODER_OBJECT_ID_INTERNAL_UNIPHY2:
|
connector = radeon_get_connector_for_encoder_init(encoder);
|
||||||
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);
|
radeon_connector = to_radeon_connector(connector);
|
||||||
|
|
||||||
switch (connector->connector_type) {
|
switch (connector->connector_type) {
|
||||||
|
|
Загрузка…
Ссылка в новой задаче