From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dhinakaran Pandiyan Subject: [PATCH v3 6/8] drm/dp: Add DP MST helpers to atomically find and release vcpi slots Date: Wed, 8 Feb 2017 22:38:09 -0800 Message-ID: <1486622291-3524-7-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 ZHJtX2RwX2F0b21pY19maW5kX3ZjcGlfc2xvdHMoKSBzaG91bGQgYmUgY2FsbGVkIGZyb20gLT5h dG9taWNfY2hlY2soKSB0bwpjaGVjayB0aGVyZSBhcmUgc3VmZmljaWVudCB2Y3BpIHNsb3RzIGZv ciBhIG1vZGUgYW5kIHRvIGFkZCB0aGF0IHRvIHRoZQpzdGF0ZS4gVGhpcyBzaG91bGQgYmUgZm9s bG93ZWQgYnkgYSBjYWxsIHRvIGRybV9kcF9tc3RfYWxsb2NhdGVfdmNwaSgpCmluIC0+YXRvbWlj X2NvbW1pdCgpIHRvIGluaXRpYWxpemUgYSBzdHJ1Y3QgdmNwaSBmb3IgdGhlIHBvcnQuCgpkcm1f ZHBfYXRvbWljX3JlbGVhc2VfdmNwaV9zbG90cygpIHNob3VsZCBiZSBjYWxsZWQgZnJvbQotPmF0 b21pY19jaGVjaygpIHRvIHJlbGVhc2UgYSBwb3J0J3MgdmNwaSBzbG90IGFsbG9jYXRpb24gZnJv bSB0aGUKc3RhdGUuCgpEcml2ZXJzIHRoYXQgZG8gbm90IG1ha2UgdXNlIG9mIHRoaXMgYXRvbWlj IGhlbHBlciBhcmUgZXhwZWN0ZWQgdG8gY2FsbApkcm1fZHBfZmluZF92Y3BpX3Nsb3RzKCkgaW5z dGVhZCBiZWZvcmUgY2FsbGluZwpkcm1fZHBfbXN0X2FsbG9jYXRlX3ZjcGkoKS4KCnYyOgpBZGRl ZCBjaGVja3MgZm9yIHZlcmlmeWluZyB0aGUgcG9ydCByZWZlcmVuY2UgaXMgdmFsaWQKTW92ZWQg Z2V0X21zdF90b3BvbG9neV9zdGF0ZSgpIGludG8gdGhlIGhlbHBlcnMgKERhbmllbCkKQ2hhbmdl ZCBmaW5kX3ZjcGlfc2xvdHMoKSB0byBub3QgZGVwZW5kIG9uIGN1cnJlbnQgYWxsb2NhdGlvbgoK U2lnbmVkLW9mZi1ieTogRGhpbmFrYXJhbiBQYW5kaXlhbiA8ZGhpbmFrYXJhbi5wYW5kaXlhbkBp bnRlbC5jb20+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2RybV9kcF9tc3RfdG9wb2xvZ3kuYyB8IDc1 ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiBpbmNsdWRlL2RybS9kcm1fZHBf bXN0X2hlbHBlci5oICAgICAgIHwgIDYgKysrCiAyIGZpbGVzIGNoYW5nZWQsIDgxIGluc2VydGlv bnMoKykKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2RwX21zdF90b3BvbG9neS5j IGIvZHJpdmVycy9ncHUvZHJtL2RybV9kcF9tc3RfdG9wb2xvZ3kuYwppbmRleCBhODkxYzM2Li45 M2RlMjU3IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2RwX21zdF90b3BvbG9neS5j CisrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fZHBfbXN0X3RvcG9sb2d5LmMKQEAgLTI0OTgsNiAr MjQ5OCw4MSBAQCBzdGF0aWMgaW50IGRybV9kcF9pbml0X3ZjcGkoc3RydWN0IGRybV9kcF9tc3Rf dG9wb2xvZ3lfbWdyICptZ3IsCiB9CiAKIC8qKgorICogZHJtX2RwX2F0b21pY19maW5kX3ZjcGlf c2xvdHMoKSAtIEZpbmQgYW5kIGFkZCB2Y3BpIHNsb3RzIHRvIHRoZSBzdGF0ZQorICogQHN0YXRl OiBnbG9iYWwgYXRvbWljIHN0YXRlCisgKiBAbWdyOiBNU1QgdG9wb2xvZ3kgbWFuYWdlciBmb3Ig dGhlIHBvcnQKKyAqIEBwb3J0OiBwb3J0IHRvIGZpbmQgdmNwaSBzbG90cyBmb3IKKyAqIEBwYm46 IGJhbmR3aWR0aCByZXF1aXJlZCBmb3IgdGhlIG1vZGUgaW4gUEJOCisgKgorICogUkVUVVJOUzoK KyAqIFRvdGFsIHNsb3RzIGluIHRoZSBhdG9taWMgc3RhdGUgYXNzaWduZWQgZm9yIHRoaXMgcG9y dCBvciBlcnJvcgorICovCitpbnQgZHJtX2RwX2F0b21pY19maW5kX3ZjcGlfc2xvdHMoc3RydWN0 IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlLAorCQkJCSAgc3RydWN0IGRybV9kcF9tc3RfdG9wb2xv Z3lfbWdyICptZ3IsCisJCQkJICBzdHJ1Y3QgZHJtX2RwX21zdF9wb3J0ICpwb3J0LCBpbnQgcGJu KQoreworCXN0cnVjdCBkcm1fZHBfbXN0X3RvcG9sb2d5X3N0YXRlICp0b3BvbG9neV9zdGF0ZTsK KwlpbnQgcmVxX3Nsb3RzOworCisJdG9wb2xvZ3lfc3RhdGUgPSBkcm1fYXRvbWljX2dldF9tc3Rf dG9wb2xvZ3lfc3RhdGUoc3RhdGUsIG1ncik7CisJaWYgKHRvcG9sb2d5X3N0YXRlID09IE5VTEwp CisJCXJldHVybiAtRU5PTUVNOworCisJcG9ydCA9IGRybV9kcF9nZXRfdmFsaWRhdGVkX3BvcnRf cmVmKG1nciwgcG9ydCk7CisJaWYgKHBvcnQgPT0gTlVMTCkKKwkJcmV0dXJuIC1FSU5WQUw7CisJ cmVxX3Nsb3RzID0gRElWX1JPVU5EX1VQKHBibiwgbWdyLT5wYm5fZGl2KTsKKwlEUk1fREVCVUdf S01TKCJ2Y3BpIHNsb3RzIHJlcT0lZCwgYXZhaWw9JWRcbiIsCisJCQlyZXFfc2xvdHMsIHRvcG9s b2d5X3N0YXRlLT5hdmFpbF9zbG90cyk7CisKKwlpZiAocmVxX3Nsb3RzID4gdG9wb2xvZ3lfc3Rh dGUtPmF2YWlsX3Nsb3RzKSB7CisJCWRybV9kcF9wdXRfcG9ydChwb3J0KTsKKwkJcmV0dXJuIC1F Tk9TUEM7CisJfQorCisJdG9wb2xvZ3lfc3RhdGUtPmF2YWlsX3Nsb3RzIC09IHJlcV9zbG90czsK KwlEUk1fREVCVUdfS01TKCJ2Y3BpIHNsb3RzIGF2YWlsPSVkIiwgdG9wb2xvZ3lfc3RhdGUtPmF2 YWlsX3Nsb3RzKTsKKworCWRybV9kcF9wdXRfcG9ydChwb3J0KTsKKwlyZXR1cm4gcmVxX3Nsb3Rz OworfQorRVhQT1JUX1NZTUJPTChkcm1fZHBfYXRvbWljX2ZpbmRfdmNwaV9zbG90cyk7CisKKy8q KgorICogZHJtX2RwX2F0b21pY19yZWxlYXNlX3ZjcGlfc2xvdHMoKSAtIFJlbGVhc2UgYWxsb2Nh dGVkIHZjcGkgc2xvdHMKKyAqIEBzdGF0ZTogZ2xvYmFsIGF0b21pYyBzdGF0ZQorICogQG1ncjog TVNUIHRvcG9sb2d5IG1hbmFnZXIgZm9yIHRoZSBwb3J0CisgKiBAcG9ydDogcG9ydCB0byByZWxl YXNlIHRoZSB2Y3BpIHNsb3RzIGZvcgorICoKKyAqIFJFVFVSTlM6CisgKiBOdW1iZXIgb2Ygc2xv dHMgcmVsZWFzZWQgZnJvbSB0aGUgYXRvbWljIHN0YXRlIGZvciB0aGlzIHBvcnQKKyAqLworaW50 IGRybV9kcF9hdG9taWNfcmVsZWFzZV92Y3BpX3Nsb3RzKHN0cnVjdCBkcm1fYXRvbWljX3N0YXRl ICpzdGF0ZSwKKwkJCQkgICAgIHN0cnVjdCBkcm1fZHBfbXN0X3RvcG9sb2d5X21nciAqbWdyLAor CQkJCSAgICAgc3RydWN0IGRybV9kcF9tc3RfcG9ydCAqcG9ydCkKK3sKKwlzdHJ1Y3QgZHJtX2Rw X21zdF90b3BvbG9neV9zdGF0ZSAqdG9wb2xvZ3lfc3RhdGU7CisJaW50IGN1cnJfc2xvdHM7CisK Kwl0b3BvbG9neV9zdGF0ZSA9IGRybV9hdG9taWNfZ2V0X21zdF90b3BvbG9neV9zdGF0ZShzdGF0 ZSwgbWdyKTsKKwlpZiAodG9wb2xvZ3lfc3RhdGUgPT0gTlVMTCkKKwkJcmV0dXJuIC1FTk9NRU07 CisKKwlwb3J0ID0gZHJtX2RwX2dldF92YWxpZGF0ZWRfcG9ydF9yZWYobWdyLCBwb3J0KTsKKwlp ZiAocG9ydCA9PSBOVUxMKQorCQlyZXR1cm4gLUVJTlZBTDsKKworCWN1cnJfc2xvdHMgPSBwb3J0 LT52Y3BpLm51bV9zbG90czsKKwl0b3BvbG9neV9zdGF0ZS0+YXZhaWxfc2xvdHMgKz0gY3Vycl9z bG90czsKKwlEUk1fREVCVUdfS01TKCJ2Y3BpIHNsb3RzIHJlbGVhc2VkPSVkLCBhdmFpbD0lZFxu IiwKKwkJCWN1cnJfc2xvdHMsIHRvcG9sb2d5X3N0YXRlLT5hdmFpbF9zbG90cyk7CisKKwlkcm1f ZHBfcHV0X3BvcnQocG9ydCk7CisJcmV0dXJuIGN1cnJfc2xvdHM7Cit9CitFWFBPUlRfU1lNQk9M KGRybV9kcF9hdG9taWNfcmVsZWFzZV92Y3BpX3Nsb3RzKTsKKworLyoqCiAgKiBkcm1fZHBfbXN0 X2FsbG9jYXRlX3ZjcGkoKSAtIEFsbG9jYXRlIGEgdmlydHVhbCBjaGFubmVsCiAgKiBAbWdyOiBt YW5hZ2VyIGZvciB0aGlzIHBvcnQKICAqIEBwb3J0OiBwb3J0IHRvIGFsbG9jYXRlIGEgdmlydHVh bCBjaGFubmVsIGZvci4KZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJtL2RybV9kcF9tc3RfaGVscGVy LmggYi9pbmNsdWRlL2RybS9kcm1fZHBfbXN0X2hlbHBlci5oCmluZGV4IDBiMzcxZGYuLjY0ZTdk YWMgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvZHJtL2RybV9kcF9tc3RfaGVscGVyLmgKKysrIGIvaW5j bHVkZS9kcm0vZHJtX2RwX21zdF9oZWxwZXIuaApAQCAtNjE1LDUgKzYxNSwxMSBAQCB2b2lkIGRy bV9kcF9tc3RfdG9wb2xvZ3lfbWdyX3N1c3BlbmQoc3RydWN0IGRybV9kcF9tc3RfdG9wb2xvZ3lf bWdyICptZ3IpOwogaW50IGRybV9kcF9tc3RfdG9wb2xvZ3lfbWdyX3Jlc3VtZShzdHJ1Y3QgZHJt X2RwX21zdF90b3BvbG9neV9tZ3IgKm1ncik7CiBzdHJ1Y3QgZHJtX2RwX21zdF90b3BvbG9neV9z dGF0ZSAqZHJtX2F0b21pY19nZXRfbXN0X3RvcG9sb2d5X3N0YXRlKHN0cnVjdCBkcm1fYXRvbWlj X3N0YXRlICpzdGF0ZSwKIAkJCQkJCQkJICAgIHN0cnVjdCBkcm1fZHBfbXN0X3RvcG9sb2d5X21n ciAqbWdyKTsKK2ludCBkcm1fZHBfYXRvbWljX2ZpbmRfdmNwaV9zbG90cyhzdHJ1Y3QgZHJtX2F0 b21pY19zdGF0ZSAqc3RhdGUsCisJCQkJICBzdHJ1Y3QgZHJtX2RwX21zdF90b3BvbG9neV9tZ3Ig Km1nciwKKwkJCQkgIHN0cnVjdCBkcm1fZHBfbXN0X3BvcnQgKnBvcnQsIGludCBwYm4pOworaW50 IGRybV9kcF9hdG9taWNfcmVsZWFzZV92Y3BpX3Nsb3RzKHN0cnVjdCBkcm1fYXRvbWljX3N0YXRl ICpzdGF0ZSwKKwkJCQkgICAgIHN0cnVjdCBkcm1fZHBfbXN0X3RvcG9sb2d5X21nciAqbWdyLAor CQkJCSAgICAgc3RydWN0IGRybV9kcF9tc3RfcG9ydCAqcG9ydCk7CiAKICNlbmRpZgotLSAKMi43 LjQKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVs LWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczov L2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=