Date:2010-04-15 19:31:12 (12 years 5 months ago)
Author:Alex Deucher
Commit:08d075116db3592db218bfe0f554cd93c9e12505
Message:drm/radeon/kms: fix tv dac conflict resolver

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>
Cc: stable <stable@kernel.org>
Signed-off-by: Dave Airlie <airlied@redhat.com>
Files: drivers/gpu/drm/radeon/radeon_connectors.c (2 diffs)

Change Details

drivers/gpu/drm/radeon/radeon_connectors.c
162162{
163163    struct drm_device *dev = connector->dev;
164164    struct drm_connector *conflict;
165    struct radeon_connector *radeon_conflict;
165166    int i;
166167
167168    list_for_each_entry(conflict, &dev->mode_config.connector_list, head) {
168169        if (conflict == connector)
169170            continue;
170171
172        radeon_conflict = to_radeon_connector(conflict);
171173        for (i = 0; i < DRM_CONNECTOR_MAX_ENCODER; i++) {
172174            if (conflict->encoder_ids[i] == 0)
173175                break;
...... 
177179                if (conflict->status != connector_status_connected)
178180                    continue;
179181
182                if (radeon_conflict->use_digital)
183                    continue;
184
180185                if (priority == true) {
181186                    DRM_INFO("1: conflicting encoders switching off %s\n", drm_get_connector_name(conflict));
182187                    DRM_INFO("in favor of %s\n", drm_get_connector_name(connector));

Archive Download the corresponding diff file



interactive