drm/radeon/kms: fix tv dac conflict resolver
commit 08d075116d upstream.
On systems with the tv dac shared between DVI and TV,
we can only use the dac for one of the connectors.
However, when using a digital monitor on the DVI port,
you can use the dac for the TV connector just fine.
Check the use_digital status when resolving the conflict.
Fixes fdo bug 27649, possibly others.
Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This commit is contained in:
parent
84dd80b43d
commit
1ffdb5a345
1 changed files with 5 additions and 0 deletions
|
|
@ -140,12 +140,14 @@ radeon_connector_analog_encoder_conflict_solve(struct drm_connector *connector,
|
|||
{
|
||||
struct drm_device *dev = connector->dev;
|
||||
struct drm_connector *conflict;
|
||||
struct radeon_connector *radeon_conflict;
|
||||
int i;
|
||||
|
||||
list_for_each_entry(conflict, &dev->mode_config.connector_list, head) {
|
||||
if (conflict == connector)
|
||||
continue;
|
||||
|
||||
radeon_conflict = to_radeon_connector(conflict);
|
||||
for (i = 0; i < DRM_CONNECTOR_MAX_ENCODER; i++) {
|
||||
if (conflict->encoder_ids[i] == 0)
|
||||
break;
|
||||
|
|
@ -155,6 +157,9 @@ radeon_connector_analog_encoder_conflict_solve(struct drm_connector *connector,
|
|||
if (conflict->status != connector_status_connected)
|
||||
continue;
|
||||
|
||||
if (radeon_conflict->use_digital)
|
||||
continue;
|
||||
|
||||
if (priority == true) {
|
||||
DRM_INFO("1: conflicting encoders switching off %s\n", drm_get_connector_name(conflict));
|
||||
DRM_INFO("in favor of %s\n", drm_get_connector_name(connector));
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue