From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dhinakaran Pandiyan Subject: [PATCH v6 3/5] drm/dp: Add DP MST helpers to atomically find and release vcpi slots Date: Tue, 4 Apr 2017 12:30:43 -0700 Message-ID: <1491334245-17194-3-git-send-email-dhinakaran.pandiyan@intel.com> References: <7d2ff402-2b58-bc16-4b16-97b288ae387d@linux.intel.com> <1491334245-17194-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: <1491334245-17194-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: Archit Taneja , Daniel Vetter , dri-devel@lists.freedesktop.org, "Pandiyan, Dhinakaran" , Harry Wentland List-Id: dri-devel@lists.freedesktop.org RnJvbTogIlBhbmRpeWFuLCBEaGluYWthcmFuIiA8ZGhpbmFrYXJhbi5wYW5kaXlhbkBpbnRlbC5j b20+Cgpkcm1fZHBfYXRvbWljX2ZpbmRfdmNwaV9zbG90cygpIHNob3VsZCBiZSBjYWxsZWQgZnJv bSAtPmF0b21pY19jaGVjaygpIHRvCmNoZWNrIHRoZXJlIGFyZSBzdWZmaWNpZW50IHZjcGkgc2xv dHMgZm9yIGEgbW9kZSBhbmQgdG8gYWRkIHRoYXQgdG8gdGhlCnN0YXRlLiBUaGlzIHNob3VsZCBi ZSBmb2xsb3dlZCBieSBhIGNhbGwgdG8gZHJtX2RwX21zdF9hbGxvY2F0ZV92Y3BpKCkKaW4gLT5h dG9taWNfY29tbWl0KCkgdG8gaW5pdGlhbGl6ZSBhIHN0cnVjdCB2Y3BpIGZvciB0aGUgcG9ydC4K CmRybV9kcF9hdG9taWNfcmVsZWFzZV92Y3BpX3Nsb3RzKCkgc2hvdWxkIGJlIGNhbGxlZCBmcm9t Ci0+YXRvbWljX2NoZWNrKCkgdG8gcmVsZWFzZSBhIHBvcnQncyB2Y3BpIHNsb3QgYWxsb2NhdGlv biBmcm9tIHRoZQpzdGF0ZS4KCkRyaXZlcnMgdGhhdCBkbyBub3QgbWFrZSB1c2Ugb2YgdGhpcyBh dG9taWMgaGVscGVyIGFyZSBleHBlY3RlZCB0byBjYWxsCmRybV9kcF9maW5kX3ZjcGlfc2xvdHMo KSBpbnN0ZWFkIGJlZm9yZSBjYWxsaW5nCmRybV9kcF9tc3RfYWxsb2NhdGVfdmNwaSgpLgoKdjM6 IGRybV9kcF9hdG9taWNfcmVsZWFzZV92Y3BpX3Nsb3RzKCkgbm93IG5lZWRzIHRvIGtub3cgaG93 IG1hbnkgc2xvdHMKICAgIHRvIHJlbGVhc2UgYXMgd2UgbWF5IG5vdCBoYXZlIGEgdmFsaWQgcmVm ZXJlbmNlIHRvIHBvcnQuCnYyOgpBZGRlZCBjaGVja3MgZm9yIHZlcmlmeWluZyB0aGUgcG9ydCBy ZWZlcmVuY2UgaXMgdmFsaWQKTW92ZWQgZ2V0X21zdF90b3BvbG9neV9zdGF0ZSgpIGludG8gdGhl IGhlbHBlcnMgKERhbmllbCkKQ2hhbmdlZCBmaW5kX3ZjcGlfc2xvdHMoKSB0byBub3QgZGVwZW5k IG9uIGN1cnJlbnQgYWxsb2NhdGlvbgoKQ2M6IERhbmllbCBWZXR0ZXIgPGRhbmllbC52ZXR0ZXJA ZmZ3bGwuY2g+CkNjOiBNYWFydGVuIExhbmtob3JzdCA8bWFhcnRlbi5sYW5raG9yc3RAbGludXgu aW50ZWwuY29tPgpDYzogQXJjaGl0IFRhbmVqYSA8YXJjaGl0dEBjb2RlYXVyb3JhLm9yZz4KQ2M6 IENocmlzIFdpbHNvbiA8Y2hyaXNAY2hyaXMtd2lsc29uLmNvLnVrPgpDYzogSGFycnkgV2VudGxh bmQgPEhhcnJ5LndlbnRsYW5kQGFtZC5jb20+ClJldmlld2VkLWJ5OiBNYWFydGVuIExhbmtob3Jz dCA8bWFhcnRlbi5sYW5raG9yc3RAbGludXguaW50ZWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBEaGlu YWthcmFuIFBhbmRpeWFuIDxkaGluYWthcmFuLnBhbmRpeWFuQGludGVsLmNvbT4KLS0tCiBkcml2 ZXJzL2dwdS9kcm0vZHJtX2RwX21zdF90b3BvbG9neS5jIHwgNzYgKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysKIGluY2x1ZGUvZHJtL2RybV9kcF9tc3RfaGVscGVyLmggICAgICAg fCAgNiArKysKIDIgZmlsZXMgY2hhbmdlZCwgODIgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9kcm1fZHBfbXN0X3RvcG9sb2d5LmMgYi9kcml2ZXJzL2dwdS9kcm0v ZHJtX2RwX21zdF90b3BvbG9neS5jCmluZGV4IDBhZDBiYWEuLmNmMDFlZDMgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvZ3B1L2RybS9kcm1fZHBfbXN0X3RvcG9sb2d5LmMKKysrIGIvZHJpdmVycy9ncHUv ZHJtL2RybV9kcF9tc3RfdG9wb2xvZ3kuYwpAQCAtMjQ5OCw2ICsyNDk4LDgyIEBAIHN0YXRpYyBp bnQgZHJtX2RwX2luaXRfdmNwaShzdHJ1Y3QgZHJtX2RwX21zdF90b3BvbG9neV9tZ3IgKm1nciwK IH0KIAogLyoqCisgKiBkcm1fZHBfYXRvbWljX2ZpbmRfdmNwaV9zbG90cygpIC0gRmluZCBhbmQg YWRkIHZjcGkgc2xvdHMgdG8gdGhlIHN0YXRlCisgKiBAc3RhdGU6IGdsb2JhbCBhdG9taWMgc3Rh dGUKKyAqIEBtZ3I6IE1TVCB0b3BvbG9neSBtYW5hZ2VyIGZvciB0aGUgcG9ydAorICogQHBvcnQ6 IHBvcnQgdG8gZmluZCB2Y3BpIHNsb3RzIGZvcgorICogQHBibjogYmFuZHdpZHRoIHJlcXVpcmVk IGZvciB0aGUgbW9kZSBpbiBQQk4KKyAqCisgKiBSRVRVUk5TOgorICogVG90YWwgc2xvdHMgaW4g dGhlIGF0b21pYyBzdGF0ZSBhc3NpZ25lZCBmb3IgdGhpcyBwb3J0IG9yIGVycm9yCisgKi8KK2lu dCBkcm1fZHBfYXRvbWljX2ZpbmRfdmNwaV9zbG90cyhzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAq c3RhdGUsCisJCQkJICBzdHJ1Y3QgZHJtX2RwX21zdF90b3BvbG9neV9tZ3IgKm1nciwKKwkJCQkg IHN0cnVjdCBkcm1fZHBfbXN0X3BvcnQgKnBvcnQsIGludCBwYm4pCit7CisJc3RydWN0IGRybV9k cF9tc3RfdG9wb2xvZ3lfc3RhdGUgKnRvcG9sb2d5X3N0YXRlOworCWludCByZXFfc2xvdHM7CisK Kwl0b3BvbG9neV9zdGF0ZSA9IGRybV9hdG9taWNfZ2V0X21zdF90b3BvbG9neV9zdGF0ZShzdGF0 ZSwgbWdyKTsKKwlpZiAodG9wb2xvZ3lfc3RhdGUgPT0gTlVMTCkKKwkJcmV0dXJuIC1FTk9NRU07 CisKKwlwb3J0ID0gZHJtX2RwX2dldF92YWxpZGF0ZWRfcG9ydF9yZWYobWdyLCBwb3J0KTsKKwlp ZiAocG9ydCA9PSBOVUxMKQorCQlyZXR1cm4gLUVJTlZBTDsKKwlyZXFfc2xvdHMgPSBESVZfUk9V TkRfVVAocGJuLCBtZ3ItPnBibl9kaXYpOworCURSTV9ERUJVR19LTVMoInZjcGkgc2xvdHMgcmVx PSVkLCBhdmFpbD0lZFxuIiwKKwkJCXJlcV9zbG90cywgdG9wb2xvZ3lfc3RhdGUtPmF2YWlsX3Ns b3RzKTsKKworCWlmIChyZXFfc2xvdHMgPiB0b3BvbG9neV9zdGF0ZS0+YXZhaWxfc2xvdHMpIHsK KwkJZHJtX2RwX3B1dF9wb3J0KHBvcnQpOworCQlyZXR1cm4gLUVOT1NQQzsKKwl9CisKKwl0b3Bv bG9neV9zdGF0ZS0+YXZhaWxfc2xvdHMgLT0gcmVxX3Nsb3RzOworCURSTV9ERUJVR19LTVMoInZj cGkgc2xvdHMgYXZhaWw9JWQiLCB0b3BvbG9neV9zdGF0ZS0+YXZhaWxfc2xvdHMpOworCisJZHJt X2RwX3B1dF9wb3J0KHBvcnQpOworCXJldHVybiByZXFfc2xvdHM7Cit9CitFWFBPUlRfU1lNQk9M KGRybV9kcF9hdG9taWNfZmluZF92Y3BpX3Nsb3RzKTsKKworLyoqCisgKiBkcm1fZHBfYXRvbWlj X3JlbGVhc2VfdmNwaV9zbG90cygpIC0gUmVsZWFzZSBhbGxvY2F0ZWQgdmNwaSBzbG90cworICog QHN0YXRlOiBnbG9iYWwgYXRvbWljIHN0YXRlCisgKiBAbWdyOiBNU1QgdG9wb2xvZ3kgbWFuYWdl ciBmb3IgdGhlIHBvcnQKKyAqIEBwb3J0OiBwb3J0IHRvIHJlbGVhc2UgdGhlIHZjcGkgc2xvdHMg Zm9yCisgKiBAc2xvdHM6IG51bWJlciBvZiB2Y3BpIHNsb3RzIHRvIHJlbGVhc2UgZm9yIEBwb3J0 CisgKgorICogUkVUVVJOUzoKKyAqIDAgaWYgQHNsb3RzIHdlcmUgYWRkZWQgYmFjayB0byAmZHJt X2RwX21zdF90b3BvbG9neV9zdGF0ZS0+YXZhaWxfc2xvdHMgb3IKKyAqIG5lZ2F0aXZlIGVycm9y IGNvZGUKKyAqLworaW50IGRybV9kcF9hdG9taWNfcmVsZWFzZV92Y3BpX3Nsb3RzKHN0cnVjdCBk cm1fYXRvbWljX3N0YXRlICpzdGF0ZSwKKwkJCQkgICAgIHN0cnVjdCBkcm1fZHBfbXN0X3RvcG9s b2d5X21nciAqbWdyLAorCQkJCSAgICAgc3RydWN0IGRybV9kcF9tc3RfcG9ydCAqcG9ydCwgaW50 IHNsb3RzKQoreworCXN0cnVjdCBkcm1fZHBfbXN0X3RvcG9sb2d5X3N0YXRlICp0b3BvbG9neV9z dGF0ZTsKKworCXRvcG9sb2d5X3N0YXRlID0gZHJtX2F0b21pY19nZXRfbXN0X3RvcG9sb2d5X3N0 YXRlKHN0YXRlLCBtZ3IpOworCWlmICh0b3BvbG9neV9zdGF0ZSA9PSBOVUxMKQorCQlyZXR1cm4g LUVOT01FTTsKKworCS8qIFdlIGNhbm5vdCByZWx5IG9uIHBvcnQtPnZjcGkubnVtX3Nsb3RzIHRv IHVwZGF0ZQorCSAqIHRvcG9sb2d5X3N0YXRlLT5hdmFpbF9zbG90cyBhcyB0aGUgcG9ydCBtYXkg bm90IGV4aXN0IGlmIHRoZSBwYXJlbnQKKwkgKiBicmFuY2ggZGV2aWNlIHdhcyB1bnBsdWdnZWQu IFRoaXMgc2hvdWxkIGJlIGZpeGVkIGJ5IHRyYWNraW5nCisJICogcGVyLXBvcnQgc2xvdCBhbGxv Y2F0aW9uIGluIGRybV9kcF9tc3RfdG9wb2xvZ3lfc3RhdGUgaW5zdGVhZCBvZgorCSAqIGRlcGVu ZGluZyBvbiB0aGUgY2FsbGVyIHRvIHRlbGwgdXMgaG93IG1hbnkgc2xvdHMgdG8gcmVsZWFzZS4K KwkgKi8KKwl0b3BvbG9neV9zdGF0ZS0+YXZhaWxfc2xvdHMgKz0gc2xvdHM7CisJRFJNX0RFQlVH X0tNUygidmNwaSBzbG90cyByZWxlYXNlZD0lZCwgYXZhaWw9JWRcbiIsCisJCQlzbG90cywgdG9w b2xvZ3lfc3RhdGUtPmF2YWlsX3Nsb3RzKTsKKworCXJldHVybiAwOworfQorRVhQT1JUX1NZTUJP TChkcm1fZHBfYXRvbWljX3JlbGVhc2VfdmNwaV9zbG90cyk7CisKKy8qKgogICogZHJtX2RwX21z dF9hbGxvY2F0ZV92Y3BpKCkgLSBBbGxvY2F0ZSBhIHZpcnR1YWwgY2hhbm5lbAogICogQG1ncjog bWFuYWdlciBmb3IgdGhpcyBwb3J0CiAgKiBAcG9ydDogcG9ydCB0byBhbGxvY2F0ZSBhIHZpcnR1 YWwgY2hhbm5lbCBmb3IuCmRpZmYgLS1naXQgYS9pbmNsdWRlL2RybS9kcm1fZHBfbXN0X2hlbHBl ci5oIGIvaW5jbHVkZS9kcm0vZHJtX2RwX21zdF9oZWxwZXIuaAppbmRleCAwYjM3MWRmLi5jNzgx ZmY3IDEwMDY0NAotLS0gYS9pbmNsdWRlL2RybS9kcm1fZHBfbXN0X2hlbHBlci5oCisrKyBiL2lu Y2x1ZGUvZHJtL2RybV9kcF9tc3RfaGVscGVyLmgKQEAgLTYxNSw1ICs2MTUsMTEgQEAgdm9pZCBk cm1fZHBfbXN0X3RvcG9sb2d5X21ncl9zdXNwZW5kKHN0cnVjdCBkcm1fZHBfbXN0X3RvcG9sb2d5 X21nciAqbWdyKTsKIGludCBkcm1fZHBfbXN0X3RvcG9sb2d5X21ncl9yZXN1bWUoc3RydWN0IGRy bV9kcF9tc3RfdG9wb2xvZ3lfbWdyICptZ3IpOwogc3RydWN0IGRybV9kcF9tc3RfdG9wb2xvZ3lf c3RhdGUgKmRybV9hdG9taWNfZ2V0X21zdF90b3BvbG9neV9zdGF0ZShzdHJ1Y3QgZHJtX2F0b21p Y19zdGF0ZSAqc3RhdGUsCiAJCQkJCQkJCSAgICBzdHJ1Y3QgZHJtX2RwX21zdF90b3BvbG9neV9t Z3IgKm1ncik7CitpbnQgZHJtX2RwX2F0b21pY19maW5kX3ZjcGlfc2xvdHMoc3RydWN0IGRybV9h dG9taWNfc3RhdGUgKnN0YXRlLAorCQkJCSAgc3RydWN0IGRybV9kcF9tc3RfdG9wb2xvZ3lfbWdy ICptZ3IsCisJCQkJICBzdHJ1Y3QgZHJtX2RwX21zdF9wb3J0ICpwb3J0LCBpbnQgcGJuKTsKK2lu dCBkcm1fZHBfYXRvbWljX3JlbGVhc2VfdmNwaV9zbG90cyhzdHJ1Y3QgZHJtX2F0b21pY19zdGF0 ZSAqc3RhdGUsCisJCQkJICAgICBzdHJ1Y3QgZHJtX2RwX21zdF90b3BvbG9neV9tZ3IgKm1nciwK KwkJCQkgICAgIHN0cnVjdCBkcm1fZHBfbXN0X3BvcnQgKnBvcnQsIGludCBzbG90cyk7CiAKICNl bmRpZgotLSAKMi43LjQKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9w Lm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVs LWdmeAo=