From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dhinakaran Pandiyan Subject: [PATCH v3 5/8] drm/dp: Introduce MST topology state to track available link bandwidth Date: Wed, 8 Feb 2017 22:38:08 -0800 Message-ID: <1486622291-3524-6-git-send-email-dhinakaran.pandiyan@intel.com> References: <1486622291-3524-1-git-send-email-dhinakaran.pandiyan@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1486622291-3524-1-git-send-email-dhinakaran.pandiyan@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: intel-gfx@lists.freedesktop.org Cc: Daniel Vetter , dri-devel@lists.freedesktop.org, Dhinakaran Pandiyan , Alex Deucher , Harry Wentland , Maarten Lankhorst , Ben Skeggs List-Id: intel-gfx@lists.freedesktop.org TGluayBiYW5kd2lkdGggaXMgc2hhcmVkIGJldHdlZW4gbXVsdGlwbGUgZGlzcGxheSBzdHJlYW1z IGluIERQIE1TVApjb25maWd1cmF0aW9ucy4gVGhlIERQIE1TVCB0b3BvbG9neSBtYW5hZ2VyIHN0 cnVjdHVyZSBtYWludGFpbnMgdGhlCnNoYXJlZCBsaW5rIGJhbmR3aWR0aCBmb3IgYSBwcmltYXJ5 IGxpbmsgZGlyZWN0bHkgY29ubmVjdGVkIHRvIHRoZSBHUFUuIEZvcgphdG9taWMgbW9kZXNldHRp bmcgZHJpdmVycywgY2hlY2tpbmcgaWYgdGhlcmUgaXMgc3VmZmljaWVudCBsaW5rIGJhbmR3aWR0 aApmb3IgYSBtb2RlIG5lZWRzIHRvIGJlIGRvbmUgZHVyaW5nIHRoZSBhdG9taWNfY2hlY2sgcGhh c2UgdG8gYXZvaWQgZmFpbGVkCm1vZGVzZXRzLiBMZXQncyBlbmNhcHN1bGF0ZSB0aGUgYXZhaWxh YmxlIGxpbmsgYncgaW5mb3JtYXRpb24gaW4gYQpwcml2YXRlIHN0YXRlIHN0cnVjdHVyZSBzbyB0 aGF0IGJ3IGNhbiBiZSBhbGxvY2F0ZWQgYW5kIHJlbGVhc2VkIGF0b21pY2FsbHkKZm9yIGVhY2gg b2YgdGhlIHBvcnRzIHNoYXJpbmcgdGhlIHByaW1hcnkgbGluay4KCnYyOiBJbmNsdWRlZCBrZXJu ZWwgZG9jLCBtb3ZlZCBzdGF0ZSBpbml0aWFsaXphdGlvbiBhbmQgc3dpdGNoZWQgdG8Ka21lbWR1 cCgpIGZvciBhbGxvY2F0aW9uIChEYW5pZWwpCgpTaWduZWQtb2ZmLWJ5OiBEaGluYWthcmFuIFBh bmRpeWFuIDxkaGluYWthcmFuLnBhbmRpeWFuQGludGVsLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9k cm0vZHJtX2RwX21zdF90b3BvbG9neS5jIHwgNzEgKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysKIGluY2x1ZGUvZHJtL2RybV9kcF9tc3RfaGVscGVyLmggICAgICAgfCAyMCArKysr KysrKysrCiAyIGZpbGVzIGNoYW5nZWQsIDkxIGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vZHJtX2RwX21zdF90b3BvbG9neS5jIGIvZHJpdmVycy9ncHUvZHJtL2Ry bV9kcF9tc3RfdG9wb2xvZ3kuYwppbmRleCAzNzQ4MmI3Li5hODkxYzM2IDEwMDY0NAotLS0gYS9k cml2ZXJzL2dwdS9kcm0vZHJtX2RwX21zdF90b3BvbG9neS5jCisrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9kcm1fZHBfbXN0X3RvcG9sb2d5LmMKQEAgLTI5MzYsNiArMjkzNiw2NSBAQCBzdGF0aWMgdm9p ZCBkcm1fZHBfZGVzdHJveV9jb25uZWN0b3Jfd29yayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmsp CiAJCSgqbWdyLT5jYnMtPmhvdHBsdWcpKG1ncik7CiB9CiAKK3ZvaWQgKmRybV9kcF9tc3RfZHVw bGljYXRlX3N0YXRlKHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSwgdm9pZCAqb2JqKQor eworCXN0cnVjdCBkcm1fZHBfbXN0X3RvcG9sb2d5X21nciAqbWdyID0gb2JqOworCXN0cnVjdCBk cm1fZHBfbXN0X3RvcG9sb2d5X3N0YXRlICpuZXdfbXN0X3N0YXRlOworCisJaWYgKFdBUk5fT04o IW1nci0+c3RhdGUpKQorCQlyZXR1cm4gTlVMTDsKKworCW5ld19tc3Rfc3RhdGUgPSBrbWVtZHVw KG1nci0+c3RhdGUsIHNpemVvZigqbmV3X21zdF9zdGF0ZSksIEdGUF9LRVJORUwpOworCWlmIChu ZXdfbXN0X3N0YXRlKQorCQluZXdfbXN0X3N0YXRlLT5zdGF0ZSA9IHN0YXRlOworCXJldHVybiBu ZXdfbXN0X3N0YXRlOworfQorCit2b2lkIGRybV9kcF9tc3Rfc3dhcF9zdGF0ZSh2b2lkICpvYmos IHZvaWQgKipvYmpfc3RhdGVfcHRyKQoreworCXN0cnVjdCBkcm1fZHBfbXN0X3RvcG9sb2d5X21n ciAqbWdyID0gb2JqOworCXN0cnVjdCBkcm1fZHBfbXN0X3RvcG9sb2d5X3N0YXRlICoqdG9wb2xv Z3lfc3RhdGVfcHRyOworCisJdG9wb2xvZ3lfc3RhdGVfcHRyID0gKHN0cnVjdCBkcm1fZHBfbXN0 X3RvcG9sb2d5X3N0YXRlICoqKW9ial9zdGF0ZV9wdHI7CisKKwltZ3ItPnN0YXRlLT5zdGF0ZSA9 ICgqdG9wb2xvZ3lfc3RhdGVfcHRyKS0+c3RhdGU7CisJc3dhcCgqdG9wb2xvZ3lfc3RhdGVfcHRy LCBtZ3ItPnN0YXRlKTsKKwltZ3ItPnN0YXRlLT5zdGF0ZSA9IE5VTEw7Cit9CisKK3ZvaWQgZHJt X2RwX21zdF9kZXN0cm95X3N0YXRlKHZvaWQgKm9ial9zdGF0ZSkKK3sKKwlrZnJlZShvYmpfc3Rh dGUpOworfQorCitzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9wcml2YXRlX3N0YXRlX2Z1bmNzIG1z dF9zdGF0ZV9mdW5jcyA9IHsKKwkuZHVwbGljYXRlX3N0YXRlID0gZHJtX2RwX21zdF9kdXBsaWNh dGVfc3RhdGUsCisJLnN3YXBfc3RhdGUgPSBkcm1fZHBfbXN0X3N3YXBfc3RhdGUsCisJLmRlc3Ry b3lfc3RhdGUgPSBkcm1fZHBfbXN0X2Rlc3Ryb3lfc3RhdGUsCit9OworCisvKioKKyAqIGRybV9h dG9taWNfZ2V0X21zdF90b3BvbG9neV9zdGF0ZTogZ2V0IE1TVCB0b3BvbG9neSBzdGF0ZQorICoK KyAqIEBzdGF0ZTogZ2xvYmFsIGF0b21pYyBzdGF0ZQorICogQG1ncjogTVNUIHRvcG9sb2d5IG1h bmFnZXIsIGFsc28gdGhlIHByaXZhdGUgb2JqZWN0IGluIHRoaXMgY2FzZQorICoKKyAqIFRoaXMg ZnVuY3Rpb24gd3JhcHMgZHJtX2F0b21pY19nZXRfcHJpdl9vYmpfc3RhdGUoKSBwYXNzaW5nIGlu IHRoZSBNU1QgYXRvbWljCisgKiBzdGF0ZSB2dGFibGUgc28gdGhhdCB0aGUgcHJpdmF0ZSBvYmpl Y3Qgc3RhdGUgcmV0dXJuZWQgaXMgdGhhdCBvZiBhIE1TVAorICogdG9wb2xvZ3kgb2JqZWN0Lgor ICoKKyAqIFJFVFVSTlM6CisgKgorICogVGhlIE1TVCB0b3BvbG9neSBzdGF0ZSBvciBlcnJvciBw b2ludGVyLgorICovCitzdHJ1Y3QgZHJtX2RwX21zdF90b3BvbG9neV9zdGF0ZSAqZHJtX2F0b21p Y19nZXRfbXN0X3RvcG9sb2d5X3N0YXRlKHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSwK KwkJCQkJCQkJICAgIHN0cnVjdCBkcm1fZHBfbXN0X3RvcG9sb2d5X21nciAqbWdyKQoreworCQly ZXR1cm4gZHJtX2F0b21pY19nZXRfcHJpdmF0ZV9vYmpfc3RhdGUoc3RhdGUsIG1nciwKKwkJCQkJ CQkmbXN0X3N0YXRlX2Z1bmNzKTsKK30KK0VYUE9SVF9TWU1CT0woZHJtX2F0b21pY19nZXRfbXN0 X3RvcG9sb2d5X3N0YXRlKTsKKwogLyoqCiAgKiBkcm1fZHBfbXN0X3RvcG9sb2d5X21ncl9pbml0 IC0gaW5pdGlhbGlzZSBhIHRvcG9sb2d5IG1hbmFnZXIKICAqIEBtZ3I6IG1hbmFnZXIgc3RydWN0 IHRvIGluaXRpYWxpc2UKQEAgLTI5ODAsNiArMzAzOSwxNSBAQCBpbnQgZHJtX2RwX21zdF90b3Bv bG9neV9tZ3JfaW5pdChzdHJ1Y3QgZHJtX2RwX21zdF90b3BvbG9neV9tZ3IgKm1nciwKIAlpZiAo dGVzdF9jYWxjX3Bibl9tb2RlKCkgPCAwKQogCQlEUk1fRVJST1IoIk1TVCBQQk4gc2VsZi10ZXN0 IGZhaWxlZFxuIik7CiAKKwltZ3ItPnN0YXRlID0ga3phbGxvYyhzaXplb2YoKm1nci0+c3RhdGUp LCBHRlBfS0VSTkVMKTsKKwlpZiAobWdyLT5zdGF0ZSA9PSBOVUxMKQorCQlyZXR1cm4gLUVOT01F TTsKKwltZ3ItPnN0YXRlLT5tZ3IgPSBtZ3I7CisKKwkvKiBtYXguIHRpbWUgc2xvdHMgLSBvbmUg c2xvdCBmb3IgTVRQIGhlYWRlciAqLworCW1nci0+c3RhdGUtPmF2YWlsX3Nsb3RzID0gNjM7CisJ bWdyLT5mdW5jcyA9ICZtc3Rfc3RhdGVfZnVuY3M7CisKIAlyZXR1cm4gMDsKIH0KIEVYUE9SVF9T WU1CT0woZHJtX2RwX21zdF90b3BvbG9neV9tZ3JfaW5pdCk7CkBAIC0zMDAwLDYgKzMwNjgsOSBA QCB2b2lkIGRybV9kcF9tc3RfdG9wb2xvZ3lfbWdyX2Rlc3Ryb3koc3RydWN0IGRybV9kcF9tc3Rf dG9wb2xvZ3lfbWdyICptZ3IpCiAJbXV0ZXhfdW5sb2NrKCZtZ3ItPnBheWxvYWRfbG9jayk7CiAJ bWdyLT5kZXYgPSBOVUxMOwogCW1nci0+YXV4ID0gTlVMTDsKKwlrZnJlZShtZ3ItPnN0YXRlKTsK KwltZ3ItPnN0YXRlID0gTlVMTDsKKwltZ3ItPmZ1bmNzID0gTlVMTDsKIH0KIEVYUE9SVF9TWU1C T0woZHJtX2RwX21zdF90b3BvbG9neV9tZ3JfZGVzdHJveSk7CiAKZGlmZiAtLWdpdCBhL2luY2x1 ZGUvZHJtL2RybV9kcF9tc3RfaGVscGVyLmggYi9pbmNsdWRlL2RybS9kcm1fZHBfbXN0X2hlbHBl ci5oCmluZGV4IDViMDI0NzYuLjBiMzcxZGYgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvZHJtL2RybV9k cF9tc3RfaGVscGVyLmgKKysrIGIvaW5jbHVkZS9kcm0vZHJtX2RwX21zdF9oZWxwZXIuaApAQCAt MjQsNiArMjQsNyBAQAogCiAjaW5jbHVkZSA8bGludXgvdHlwZXMuaD4KICNpbmNsdWRlIDxkcm0v ZHJtX2RwX2hlbHBlci5oPgorI2luY2x1ZGUgPGRybS9kcm1fYXRvbWljLmg+CiAKIHN0cnVjdCBk cm1fZHBfbXN0X2JyYW5jaDsKIApAQCAtNDAzLDYgKzQwNCwxMiBAQCBzdHJ1Y3QgZHJtX2RwX3Bh eWxvYWQgewogCWludCB2Y3BpOwogfTsKIAorc3RydWN0IGRybV9kcF9tc3RfdG9wb2xvZ3lfc3Rh dGUgeworCWludCBhdmFpbF9zbG90czsKKwlzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGU7 CisJc3RydWN0IGRybV9kcF9tc3RfdG9wb2xvZ3lfbWdyICptZ3I7Cit9OworCiAvKioKICAqIHN0 cnVjdCBkcm1fZHBfbXN0X3RvcG9sb2d5X21nciAtIERpc3BsYXlQb3J0IE1TVCBtYW5hZ2VyCiAg KgpAQCAtNDgxLDYgKzQ4OCwxNiBAQCBzdHJ1Y3QgZHJtX2RwX21zdF90b3BvbG9neV9tZ3Igewog CWludCBwYm5fZGl2OwogCiAJLyoqCisJICogQHN0YXRlOiBTdGF0ZSBpbmZvcm1hdGlvbiBmb3Ig dG9wb2xvZ3kgbWFuYWdlcgorCSAqLworCXN0cnVjdCBkcm1fZHBfbXN0X3RvcG9sb2d5X3N0YXRl ICpzdGF0ZTsKKworCS8qKgorCSAqIEBmdW5jczogQXRvbWljIGhlbHBlciBjYWxsYmFja3MKKwkg Ki8KKwljb25zdCBzdHJ1Y3QgZHJtX3ByaXZhdGVfc3RhdGVfZnVuY3MgKmZ1bmNzOworCisJLyoq CiAJICogQHFsb2NrOiBwcm90ZWN0cyBAdHhfbXNnX2Rvd25xLCB0aGUgJmRybV9kcF9tc3RfYnJh bmNoLnR4c2xvc3QgYW5kCiAJICogJmRybV9kcF9zaWRlYmFuZF9tc2dfdHguc3RhdGUgb25jZSB0 aGV5IGFyZSBxdWV1ZWQKIAkgKi8KQEAgLTU5Niw0ICs2MTMsNyBAQCB2b2lkIGRybV9kcF9tc3Rf ZHVtcF90b3BvbG9neShzdHJ1Y3Qgc2VxX2ZpbGUgKm0sCiAKIHZvaWQgZHJtX2RwX21zdF90b3Bv bG9neV9tZ3Jfc3VzcGVuZChzdHJ1Y3QgZHJtX2RwX21zdF90b3BvbG9neV9tZ3IgKm1ncik7CiBp bnQgZHJtX2RwX21zdF90b3BvbG9neV9tZ3JfcmVzdW1lKHN0cnVjdCBkcm1fZHBfbXN0X3RvcG9s b2d5X21nciAqbWdyKTsKK3N0cnVjdCBkcm1fZHBfbXN0X3RvcG9sb2d5X3N0YXRlICpkcm1fYXRv bWljX2dldF9tc3RfdG9wb2xvZ3lfc3RhdGUoc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRl LAorCQkJCQkJCQkgICAgc3RydWN0IGRybV9kcF9tc3RfdG9wb2xvZ3lfbWdyICptZ3IpOworCiAj ZW5kaWYKLS0gCjIuNy40CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3Rv cC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRl bC1nZngK