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 at gmail.com> Cc: stable <stable at kernel.org> --- drivers/gpu/drm/radeon/radeon_connectors.c | 5 +++++ 1 files changed, 5 insertions(+), 0 deletions(-) diff --git a/drivers/gpu/drm/radeon/radeon_connectors.c b/drivers/gpu/drm/radeon/radeon_connectors.c index 5c5776d..c489346 100644 --- a/drivers/gpu/drm/radeon/radeon_connectors.c +++ b/drivers/gpu/drm/radeon/radeon_connectors.c @@ -162,12 +162,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; @@ -177,6 +179,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)); -- 1.5.6.3 --001517475482766cee048449ff51 Content-Type: text/x-diff; charset=US-ASCII; name="0001-drm-radeon-kms-fix-tv-dac-conflict-resolver.patch" Content-Disposition: attachment; filename="0001-drm-radeon-kms-fix-tv-dac-conflict-resolver.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_g81uwb8p0 RnJvbSA4MzdmZWIxNDdjNTMxMjE5YzczMTU4NTdhNmYxN2UxNDVhZjhmNzUwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGV4IERldWNoZXIgPGFsZXhkZXVjaGVyQGdtYWlsLmNvbT4K RGF0ZTogVGh1LCAxNSBBcHIgMjAxMCAxMzozMToxMiAtMDQwMApTdWJqZWN0OiBbUEFUQ0hdIGRy bS9yYWRlb24va21zOiBmaXggdHYgZGFjIGNvbmZsaWN0IHJlc29sdmVyCgpPbiBzeXN0ZW1zIHdp dGggdGhlIHR2IGRhYyBzaGFyZWQgYmV0d2VlbiBEVkkgYW5kIFRWLAp3ZSBjYW4gb25seSB1c2Ug dGhlIGRhYyBmb3Igb25lIG9mIHRoZSBjb25uZWN0b3JzLgpIb3dldmVyLCB3aGVuIHVzaW5nIGEg ZGlnaXRhbCBtb25pdG9yIG9uIHRoZSBEVkkgcG9ydCwKeW91IGNhbiB1c2UgdGhlIGRhYyBmb3Ig dGhlIFRWIGNvbm5lY3RvciBqdXN0IGZpbmUuCkNoZWNrIHRoZSB1c2VfZGlnaXRhbCBzdGF0dXMg d2hlbiByZXNvbHZpbmcgdGhlIGNvbmZsaWN0LgoKRml4ZXMgZmRvIGJ1ZyAyNzY0OSwgcG9zc2li bHkgb3RoZXJzLgoKU2lnbmVkLW9mZi1ieTogQWxleCBEZXVjaGVyIDxhbGV4ZGV1Y2hlckBnbWFp bC5jb20+CkNjOiBzdGFibGUgPHN0YWJsZUBrZXJuZWwub3JnPgotLS0KIGRyaXZlcnMvZ3B1L2Ry bS9yYWRlb24vcmFkZW9uX2Nvbm5lY3RvcnMuYyB8ICAgIDUgKysrKysKIDEgZmlsZXMgY2hhbmdl ZCwgNSBpbnNlcnRpb25zKCspLCAwIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9yYWRlb24vcmFkZW9uX2Nvbm5lY3RvcnMuYyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRl b24vcmFkZW9uX2Nvbm5lY3RvcnMuYwppbmRleCA1YzU3NzZkLi5jNDg5MzQ2IDEwMDY0NAotLS0g YS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9jb25uZWN0b3JzLmMKKysrIGIvZHJpdmVy cy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fY29ubmVjdG9ycy5jCkBAIC0xNjIsMTIgKzE2MiwxNCBA QCByYWRlb25fY29ubmVjdG9yX2FuYWxvZ19lbmNvZGVyX2NvbmZsaWN0X3NvbHZlKHN0cnVjdCBk cm1fY29ubmVjdG9yICpjb25uZWN0b3IsCiB7CiAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGNv bm5lY3Rvci0+ZGV2OwogCXN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25mbGljdDsKKwlzdHJ1Y3Qg cmFkZW9uX2Nvbm5lY3RvciAqcmFkZW9uX2NvbmZsaWN0OwogCWludCBpOwogCiAJbGlzdF9mb3Jf ZWFjaF9lbnRyeShjb25mbGljdCwgJmRldi0+bW9kZV9jb25maWcuY29ubmVjdG9yX2xpc3QsIGhl YWQpIHsKIAkJaWYgKGNvbmZsaWN0ID09IGNvbm5lY3RvcikKIAkJCWNvbnRpbnVlOwogCisJCXJh ZGVvbl9jb25mbGljdCA9IHRvX3JhZGVvbl9jb25uZWN0b3IoY29uZmxpY3QpOwogCQlmb3IgKGkg PSAwOyBpIDwgRFJNX0NPTk5FQ1RPUl9NQVhfRU5DT0RFUjsgaSsrKSB7CiAJCQlpZiAoY29uZmxp Y3QtPmVuY29kZXJfaWRzW2ldID09IDApCiAJCQkJYnJlYWs7CkBAIC0xNzcsNiArMTc5LDkgQEAg cmFkZW9uX2Nvbm5lY3Rvcl9hbmFsb2dfZW5jb2Rlcl9jb25mbGljdF9zb2x2ZShzdHJ1Y3QgZHJt X2Nvbm5lY3RvciAqY29ubmVjdG9yLAogCQkJCWlmIChjb25mbGljdC0+c3RhdHVzICE9IGNvbm5l Y3Rvcl9zdGF0dXNfY29ubmVjdGVkKQogCQkJCQljb250aW51ZTsKIAorCQkJCWlmIChyYWRlb25f Y29uZmxpY3QtPnVzZV9kaWdpdGFsKQorCQkJCQljb250aW51ZTsKKwogCQkJCWlmIChwcmlvcml0 eSA9PSB0cnVlKSB7CiAJCQkJCURSTV9JTkZPKCIxOiBjb25mbGljdGluZyBlbmNvZGVycyBzd2l0 Y2hpbmcgb2ZmICVzXG4iLCBkcm1fZ2V0X2Nvbm5lY3Rvcl9uYW1lKGNvbmZsaWN0KSk7CiAJCQkJ CURSTV9JTkZPKCJpbiBmYXZvciBvZiAlc1xuIiwgZHJtX2dldF9jb25uZWN0b3JfbmFtZShjb25u ZWN0b3IpKTsKLS0gCjEuNS42LjMKCg== --001517475482766cee048449ff51--