From mboxrd@z Thu Jan 1 00:00:00 1970 From: Alex Deucher Subject: [PATCH 1/2] drm/amdgpu: fix dp link rate selection (v2) Date: Fri, 18 Dec 2015 17:31:11 -0500 Message-ID: <1450477872-19768-1-git-send-email-alexander.deucher@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-qg0-f41.google.com (mail-qg0-f41.google.com [209.85.192.41]) by gabe.freedesktop.org (Postfix) with ESMTPS id 1BA246E37E for ; Fri, 18 Dec 2015 14:31:22 -0800 (PST) Received: by mail-qg0-f41.google.com with SMTP id k90so65178395qge.0 for ; Fri, 18 Dec 2015 14:31:22 -0800 (PST) List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: dri-devel@lists.freedesktop.org Cc: Alex Deucher List-Id: dri-devel@lists.freedesktop.org TmVlZCB0byBwcm9wZXJseSBoYW5kbGUgdGhlIG1heCBsaW5rIHJhdGUgaW4gdGhlIGRwY2QuClRo aXMgcHJldmVudHMgc29tZSBjYXNlcyB3aGVyZSA1LjQgR2h6IGlzIHNlbGVjdGVkIHdoZW4KaXQg c2hvdWxkbid0IGJlLgoKdjI6IHNpbXBsaWZ5IGxvZ2ljLCBhZGQgYXJyYXkgYm91bmRzIGNoZWNr CgpTaWduZWQtb2ZmLWJ5OiBBbGV4IERldWNoZXIgPGFsZXhhbmRlci5kZXVjaGVyQGFtZC5jb20+ Ci0tLQogZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYXRvbWJpb3NfZHAuYyB8IDk2ICsrKysr KysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMzYgaW5zZXJ0aW9u cygrKSwgNjAgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9h bWRncHUvYXRvbWJpb3NfZHAuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2F0b21iaW9z X2RwLmMKaW5kZXggOTJiNmFjYS4uMjFhYWNjMSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJt L2FtZC9hbWRncHUvYXRvbWJpb3NfZHAuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdw dS9hdG9tYmlvc19kcC5jCkBAIC0yNDMsNyArMjQzLDcgQEAgc3RhdGljIHZvaWQgYW1kZ3B1X2F0 b21iaW9zX2RwX2dldF9hZGp1c3RfdHJhaW4oY29uc3QgdTggbGlua19zdGF0dXNbRFBfTElOS19T VEEKIAogLyogY29udmVydCBiaXRzIHBlciBjb2xvciB0byBiaXRzIHBlciBwaXhlbCAqLwogLyog Z2V0IGJwYyBmcm9tIHRoZSBFRElEICovCi1zdGF0aWMgaW50IGFtZGdwdV9hdG9tYmlvc19kcF9j b252ZXJ0X2JwY190b19icHAoaW50IGJwYykKK3N0YXRpYyB1bnNpZ25lZCBhbWRncHVfYXRvbWJp b3NfZHBfY29udmVydF9icGNfdG9fYnBwKGludCBicGMpCiB7CiAJaWYgKGJwYyA9PSAwKQogCQly ZXR1cm4gMjQ7CkBAIC0yNTEsNjQgKzI1MSwzMiBAQCBzdGF0aWMgaW50IGFtZGdwdV9hdG9tYmlv c19kcF9jb252ZXJ0X2JwY190b19icHAoaW50IGJwYykKIAkJcmV0dXJuIGJwYyAqIDM7CiB9CiAK LS8qIGdldCB0aGUgbWF4IHBpeCBjbG9jayBzdXBwb3J0ZWQgYnkgdGhlIGxpbmsgcmF0ZSBhbmQg bGFuZSBudW0gKi8KLXN0YXRpYyBpbnQgYW1kZ3B1X2F0b21iaW9zX2RwX2dldF9tYXhfZHBfcGl4 X2Nsb2NrKGludCBsaW5rX3JhdGUsCi0JCQkJCSAgICBpbnQgbGFuZV9udW0sCi0JCQkJCSAgICBp bnQgYnBwKQotewotCXJldHVybiAobGlua19yYXRlICogbGFuZV9udW0gKiA4KSAvIGJwcDsKLX0K LQogLyoqKioqIGFtZGdwdSBzcGVjaWZpYyBEUCBmdW5jdGlvbnMgKioqKiovCiAKLS8qIEZpcnN0 IGdldCB0aGUgbWluIGxhbmUjIHdoZW4gbG93IHJhdGUgaXMgdXNlZCBhY2NvcmRpbmcgdG8gcGl4 ZWwgY2xvY2sKLSAqIChwcmVmZXIgbG93IHJhdGUpLCBzZWNvbmQgY2hlY2sgbWF4IGxhbmUjIHN1 cHBvcnRlZCBieSBEUCBwYW5lbCwKLSAqIGlmIHRoZSBtYXggbGFuZSMgPCBsb3cgcmF0ZSBsYW5l IyB0aGVuIHVzZSBtYXggbGFuZSMgaW5zdGVhZC4KLSAqLwotc3RhdGljIGludCBhbWRncHVfYXRv bWJpb3NfZHBfZ2V0X2RwX2xhbmVfbnVtYmVyKHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0 b3IsCitzdGF0aWMgaW50IGFtZGdwdV9hdG9tYmlvc19kcF9nZXRfZHBfbGlua19jb25maWcoc3Ry dWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciwKIAkJCQkJCSBjb25zdCB1OCBkcGNkW0RQX0RQ Q0RfU0laRV0sCi0JCQkJCQkgaW50IHBpeF9jbG9jaykKLXsKLQlpbnQgYnBwID0gYW1kZ3B1X2F0 b21iaW9zX2RwX2NvbnZlcnRfYnBjX3RvX2JwcChhbWRncHVfY29ubmVjdG9yX2dldF9tb25pdG9y X2JwYyhjb25uZWN0b3IpKTsKLQlpbnQgbWF4X2xpbmtfcmF0ZSA9IGRybV9kcF9tYXhfbGlua19y YXRlKGRwY2QpOwotCWludCBtYXhfbGFuZV9udW0gPSBkcm1fZHBfbWF4X2xhbmVfY291bnQoZHBj ZCk7Ci0JaW50IGxhbmVfbnVtOwotCWludCBtYXhfZHBfcGl4X2Nsb2NrOwotCi0JZm9yIChsYW5l X251bSA9IDE7IGxhbmVfbnVtIDwgbWF4X2xhbmVfbnVtOyBsYW5lX251bSA8PD0gMSkgewotCQlt YXhfZHBfcGl4X2Nsb2NrID0gYW1kZ3B1X2F0b21iaW9zX2RwX2dldF9tYXhfZHBfcGl4X2Nsb2Nr KG1heF9saW5rX3JhdGUsIGxhbmVfbnVtLCBicHApOwotCQlpZiAocGl4X2Nsb2NrIDw9IG1heF9k cF9waXhfY2xvY2spCi0JCQlicmVhazsKLQl9Ci0KLQlyZXR1cm4gbGFuZV9udW07Ci19Ci0KLXN0 YXRpYyBpbnQgYW1kZ3B1X2F0b21iaW9zX2RwX2dldF9kcF9saW5rX2Nsb2NrKHN0cnVjdCBkcm1f Y29ubmVjdG9yICpjb25uZWN0b3IsCi0JCQkJCQljb25zdCB1OCBkcGNkW0RQX0RQQ0RfU0laRV0s Ci0JCQkJCQlpbnQgcGl4X2Nsb2NrKQorCQkJCQkJIHVuc2lnbmVkIHBpeF9jbG9jaywKKwkJCQkJ CSB1bnNpZ25lZCAqZHBfbGFuZXMsIHVuc2lnbmVkICpkcF9yYXRlKQogewotCWludCBicHAgPSBh bWRncHVfYXRvbWJpb3NfZHBfY29udmVydF9icGNfdG9fYnBwKGFtZGdwdV9jb25uZWN0b3JfZ2V0 X21vbml0b3JfYnBjKGNvbm5lY3RvcikpOwotCWludCBsYW5lX251bSwgbWF4X3BpeF9jbG9jazsK LQotCWlmIChhbWRncHVfY29ubmVjdG9yX2VuY29kZXJfZ2V0X2RwX2JyaWRnZV9lbmNvZGVyX2lk KGNvbm5lY3RvcikgPT0KLQkgICAgRU5DT0RFUl9PQkpFQ1RfSURfTlVUTUVHKQotCQlyZXR1cm4g MjcwMDAwOwotCi0JbGFuZV9udW0gPSBhbWRncHVfYXRvbWJpb3NfZHBfZ2V0X2RwX2xhbmVfbnVt YmVyKGNvbm5lY3RvciwgZHBjZCwgcGl4X2Nsb2NrKTsKLQltYXhfcGl4X2Nsb2NrID0gYW1kZ3B1 X2F0b21iaW9zX2RwX2dldF9tYXhfZHBfcGl4X2Nsb2NrKDE2MjAwMCwgbGFuZV9udW0sIGJwcCk7 Ci0JaWYgKHBpeF9jbG9jayA8PSBtYXhfcGl4X2Nsb2NrKQotCQlyZXR1cm4gMTYyMDAwOwotCW1h eF9waXhfY2xvY2sgPSBhbWRncHVfYXRvbWJpb3NfZHBfZ2V0X21heF9kcF9waXhfY2xvY2soMjcw MDAwLCBsYW5lX251bSwgYnBwKTsKLQlpZiAocGl4X2Nsb2NrIDw9IG1heF9waXhfY2xvY2spCi0J CXJldHVybiAyNzAwMDA7Ci0JaWYgKGFtZGdwdV9jb25uZWN0b3JfaXNfZHAxMl9jYXBhYmxlKGNv bm5lY3RvcikpIHsKLQkJbWF4X3BpeF9jbG9jayA9IGFtZGdwdV9hdG9tYmlvc19kcF9nZXRfbWF4 X2RwX3BpeF9jbG9jayg1NDAwMDAsIGxhbmVfbnVtLCBicHApOwotCQlpZiAocGl4X2Nsb2NrIDw9 IG1heF9waXhfY2xvY2spCi0JCQlyZXR1cm4gNTQwMDAwOworCXVuc2lnbmVkIGJwcCA9CisJCWFt ZGdwdV9hdG9tYmlvc19kcF9jb252ZXJ0X2JwY190b19icHAoYW1kZ3B1X2Nvbm5lY3Rvcl9nZXRf bW9uaXRvcl9icGMoY29ubmVjdG9yKSk7CisJc3RhdGljIGNvbnN0IHVuc2lnbmVkIGxpbmtfcmF0 ZXNbM10gPSB7IDE2MjAwMCwgMjcwMDAwLCA1NDAwMDAgfTsKKwl1bnNpZ25lZCBtYXhfbGlua19y YXRlID0gZHJtX2RwX21heF9saW5rX3JhdGUoZHBjZCk7CisJdW5zaWduZWQgbWF4X2xhbmVfbnVt ID0gZHJtX2RwX21heF9sYW5lX2NvdW50KGRwY2QpOworCXVuc2lnbmVkIGxhbmVfbnVtLCBpLCBt YXhfcGl4X2Nsb2NrOworCisJZm9yIChsYW5lX251bSA9IDE7IGxhbmVfbnVtIDw9IG1heF9sYW5l X251bTsgbGFuZV9udW0gPDw9IDEpIHsKKwkJZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUobGlu a19yYXRlcykgJiYgbGlua19yYXRlc1tpXSA8PSBtYXhfbGlua19yYXRlOyBpKyspIHsKKwkJCW1h eF9waXhfY2xvY2sgPSAobGFuZV9udW0gKiBsaW5rX3JhdGVzW2ldICogOCkgLyBicHA7CisJCQlp ZiAobWF4X3BpeF9jbG9jayA+PSBwaXhfY2xvY2spIHsKKwkJCQkqZHBfbGFuZXMgPSBsYW5lX251 bTsKKwkJCQkqZHBfcmF0ZSA9IGxpbmtfcmF0ZXNbaV07CisJCQkJcmV0dXJuIDA7CisJCQl9CisJ CX0KIAl9CiAKLQlyZXR1cm4gZHJtX2RwX21heF9saW5rX3JhdGUoZHBjZCk7CisJcmV0dXJuIC1F SU5WQUw7CiB9CiAKIHN0YXRpYyB1OCBhbWRncHVfYXRvbWJpb3NfZHBfZW5jb2Rlcl9zZXJ2aWNl KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LApAQCAtNDIyLDYgKzM5MCw3IEBAIHZvaWQgYW1k Z3B1X2F0b21iaW9zX2RwX3NldF9saW5rX2NvbmZpZyhzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29u bmVjdG9yLAogewogCXN0cnVjdCBhbWRncHVfY29ubmVjdG9yICphbWRncHVfY29ubmVjdG9yID0g dG9fYW1kZ3B1X2Nvbm5lY3Rvcihjb25uZWN0b3IpOwogCXN0cnVjdCBhbWRncHVfY29ubmVjdG9y X2F0b21fZGlnICpkaWdfY29ubmVjdG9yOworCWludCByZXQ7CiAKIAlpZiAoIWFtZGdwdV9jb25u ZWN0b3ItPmNvbl9wcml2KQogCQlyZXR1cm47CkBAIC00MjksMTAgKzM5OCwxNCBAQCB2b2lkIGFt ZGdwdV9hdG9tYmlvc19kcF9zZXRfbGlua19jb25maWcoc3RydWN0IGRybV9jb25uZWN0b3IgKmNv bm5lY3RvciwKIAogCWlmICgoZGlnX2Nvbm5lY3Rvci0+ZHBfc2lua190eXBlID09IENPTk5FQ1RP Ul9PQkpFQ1RfSURfRElTUExBWVBPUlQpIHx8CiAJICAgIChkaWdfY29ubmVjdG9yLT5kcF9zaW5r X3R5cGUgPT0gQ09OTkVDVE9SX09CSkVDVF9JRF9lRFApKSB7Ci0JCWRpZ19jb25uZWN0b3ItPmRw X2Nsb2NrID0KLQkJCWFtZGdwdV9hdG9tYmlvc19kcF9nZXRfZHBfbGlua19jbG9jayhjb25uZWN0 b3IsIGRpZ19jb25uZWN0b3ItPmRwY2QsIG1vZGUtPmNsb2NrKTsKLQkJZGlnX2Nvbm5lY3Rvci0+ ZHBfbGFuZV9jb3VudCA9Ci0JCQlhbWRncHVfYXRvbWJpb3NfZHBfZ2V0X2RwX2xhbmVfbnVtYmVy KGNvbm5lY3RvciwgZGlnX2Nvbm5lY3Rvci0+ZHBjZCwgbW9kZS0+Y2xvY2spOworCQlyZXQgPSBh bWRncHVfYXRvbWJpb3NfZHBfZ2V0X2RwX2xpbmtfY29uZmlnKGNvbm5lY3RvciwgZGlnX2Nvbm5l Y3Rvci0+ZHBjZCwKKwkJCQkJCQkgICAgbW9kZS0+Y2xvY2ssCisJCQkJCQkJICAgICZkaWdfY29u bmVjdG9yLT5kcF9sYW5lX2NvdW50LAorCQkJCQkJCSAgICAmZGlnX2Nvbm5lY3Rvci0+ZHBfY2xv Y2spOworCQlpZiAocmV0KSB7CisJCQlkaWdfY29ubmVjdG9yLT5kcF9jbG9jayA9IDA7CisJCQlk aWdfY29ubmVjdG9yLT5kcF9sYW5lX2NvdW50ID0gMDsKKwkJfQogCX0KIH0KIApAQCAtNDQxLDE0 ICs0MTQsMTcgQEAgaW50IGFtZGdwdV9hdG9tYmlvc19kcF9tb2RlX3ZhbGlkX2hlbHBlcihzdHJ1 Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLAogewogCXN0cnVjdCBhbWRncHVfY29ubmVjdG9y ICphbWRncHVfY29ubmVjdG9yID0gdG9fYW1kZ3B1X2Nvbm5lY3Rvcihjb25uZWN0b3IpOwogCXN0 cnVjdCBhbWRncHVfY29ubmVjdG9yX2F0b21fZGlnICpkaWdfY29ubmVjdG9yOwotCWludCBkcF9j bG9jazsKKwl1bnNpZ25lZCBkcF9sYW5lcywgZHBfY2xvY2s7CisJaW50IHJldDsKIAogCWlmICgh YW1kZ3B1X2Nvbm5lY3Rvci0+Y29uX3ByaXYpCiAJCXJldHVybiBNT0RFX0NMT0NLX0hJR0g7CiAJ ZGlnX2Nvbm5lY3RvciA9IGFtZGdwdV9jb25uZWN0b3ItPmNvbl9wcml2OwogCi0JZHBfY2xvY2sg PQotCQlhbWRncHVfYXRvbWJpb3NfZHBfZ2V0X2RwX2xpbmtfY2xvY2soY29ubmVjdG9yLCBkaWdf Y29ubmVjdG9yLT5kcGNkLCBtb2RlLT5jbG9jayk7CisJcmV0ID0gYW1kZ3B1X2F0b21iaW9zX2Rw X2dldF9kcF9saW5rX2NvbmZpZyhjb25uZWN0b3IsIGRpZ19jb25uZWN0b3ItPmRwY2QsCisJCQkJ CQkgICAgbW9kZS0+Y2xvY2ssICZkcF9sYW5lcywgJmRwX2Nsb2NrKTsKKwlpZiAocmV0KQorCQly ZXR1cm4gTU9ERV9DTE9DS19ISUdIOwogCiAJaWYgKChkcF9jbG9jayA9PSA1NDAwMDApICYmCiAJ ICAgICghYW1kZ3B1X2Nvbm5lY3Rvcl9pc19kcDEyX2NhcGFibGUoY29ubmVjdG9yKSkpCi0tIAoy LjUuMAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJp LWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6 Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK