From mboxrd@z Thu Jan 1 00:00:00 1970 From: Lyude Paul Subject: [PATCH v2 12/27] drm/dp_mst: Refactor drm_dp_mst_handle_up_req() Date: Tue, 3 Sep 2019 16:45:50 -0400 Message-ID: <20190903204645.25487-13-lyude@redhat.com> References: <20190903204645.25487-1-lyude@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20190903204645.25487-1-lyude-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: nouveau-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "Nouveau" To: dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, nouveau-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Cc: Sean Paul , David Airlie , Imre Deak , Maarten Lankhorst , linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, Maxime Ripard , Juston Li , Daniel Vetter , Harry Wentland , =?UTF-8?q?Ville=20Syrj=C3=A4l=C3=A4?= List-Id: amd-gfx.lists.freedesktop.org VGhlcmUncyBhIGNvdXBsZSBvZiBjaGFuZ2VzIGhlcmUsIHNvIHRvIHN1bW1hcml6ZToKCiogUmVt b3ZlIHRoZSBiaWcgdWdseSBtZ3ItPnVwX3JlcV9yZWN2LmhhdmVfZW9tdCBjb25kaXRpb25hbCB0 byBzYXZlIG9uCiAgaW5kZW50aW5nCiogU3RvcmUgJm1nci0+dXBfcmVxX3JlY3YuaW5pdGlhbF9o ZHIgaW4gYSB2YXJpYWJsZSBzbyB3ZSBkb24ndCBrZWVwCiAgZ29pbmcgb3ZlciA4MCBjaGFyYWN0 ZXIgbG9uZyBsaW5lcwoqIERlLWR1cGxpY2F0ZSBjb2RlIGZvciBjYWxsaW5nIGRybV9kcF9zZW5k X3VwX2Fja19yZXBseSgpIGFuZCBnZXR0aW5nCiAgdGhlIE1TVEIgdmlhIGl0J3MgR1VJRAoqIFJl bW92ZSBhbGwgb2YgdGhlIGR1cGxpY2F0ZSBjYWxscyB0byBtZW1zZXQoKSBhbmQganVzdCB1c2Ug YSBnb3RvCiAgaW5zdGVhZAoqIEFjdHVhbGx5IGRvIGxpbmUgd3JhcHBpbmcKKiBSZW1vdmUgdGhl IHVubmVjZXNzYXJ5IGlmIChtc3RiKSBjaGVjayBiZWZvcmUgY2FsbGluZwogIGRybV9kcF9tc3Rf dG9wb2xvZ3lfcHV0X21zdGIoKSAtIHdlIGFyZSBndWFyYW50ZWVkIHRvIGFsd2F5cyBoYXZlCiAg bXN0YiAhPSBOVUxMIGF0IHRoYXQgcG9pbnQgaW4gdGhlIGZ1bmN0aW9uCgpDYzogSnVzdG9uIExp IDxqdXN0b24ubGlAaW50ZWwuY29tPgpDYzogSW1yZSBEZWFrIDxpbXJlLmRlYWtAaW50ZWwuY29t PgpDYzogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KQ2M6 IEhhcnJ5IFdlbnRsYW5kIDxod2VudGxhbkBhbWQuY29tPgpSZXZpZXdlZC1ieTogRGFuaWVsIFZl dHRlciA8ZGFuaWVsLnZldHRlckBmZndsbC5jaD4KU2lnbmVkLW9mZi1ieTogTHl1ZGUgUGF1bCA8 bHl1ZGVAcmVkaGF0LmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vZHJtX2RwX21zdF90b3BvbG9n eS5jIHwgNzUgKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMzgg aW5zZXJ0aW9ucygrKSwgMzcgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2RybV9kcF9tc3RfdG9wb2xvZ3kuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fZHBfbXN0X3Rv cG9sb2d5LmMKaW5kZXggYjQ0ZDM2OTZjMDlhLi42NDQ4NzA5ODE1OGEgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9kcm1fZHBfbXN0X3RvcG9sb2d5LmMKKysrIGIvZHJpdmVycy9ncHUvZHJt L2RybV9kcF9tc3RfdG9wb2xvZ3kuYwpAQCAtMzI0Niw2OCArMzI0Niw2OSBAQCBzdGF0aWMgaW50 IGRybV9kcF9tc3RfaGFuZGxlX2Rvd25fcmVwKHN0cnVjdCBkcm1fZHBfbXN0X3RvcG9sb2d5X21n ciAqbWdyKQogc3RhdGljIGludCBkcm1fZHBfbXN0X2hhbmRsZV91cF9yZXEoc3RydWN0IGRybV9k cF9tc3RfdG9wb2xvZ3lfbWdyICptZ3IpCiB7CiAJc3RydWN0IGRybV9kcF9zaWRlYmFuZF9tc2df cmVxX2JvZHkgbXNnOworCXN0cnVjdCBkcm1fZHBfc2lkZWJhbmRfbXNnX2hkciAqaGRyID0gJm1n ci0+dXBfcmVxX3JlY3YuaW5pdGlhbF9oZHI7CiAJc3RydWN0IGRybV9kcF9tc3RfYnJhbmNoICpt c3RiID0gTlVMTDsKKwljb25zdCB1OCAqZ3VpZDsKIAlib29sIHNlcW5vOwogCi0JaWYgKCFkcm1f ZHBfZ2V0X29uZV9zYl9tc2cobWdyLCB0cnVlKSkgewotCQltZW1zZXQoJm1nci0+dXBfcmVxX3Jl Y3YsIDAsCi0JCSAgICAgICBzaXplb2Yoc3RydWN0IGRybV9kcF9zaWRlYmFuZF9tc2dfcngpKTsK LQkJcmV0dXJuIDA7Ci0JfQorCWlmICghZHJtX2RwX2dldF9vbmVfc2JfbXNnKG1nciwgdHJ1ZSkp CisJCWdvdG8gb3V0OwogCiAJaWYgKCFtZ3ItPnVwX3JlcV9yZWN2LmhhdmVfZW9tdCkKIAkJcmV0 dXJuIDA7CiAKLQlpZiAoIW1nci0+dXBfcmVxX3JlY3YuaW5pdGlhbF9oZHIuYnJvYWRjYXN0KSB7 Ci0JCW1zdGIgPSBkcm1fZHBfZ2V0X21zdF9icmFuY2hfZGV2aWNlKG1nciwKLQkJCQkJCSAgICBt Z3ItPnVwX3JlcV9yZWN2LmluaXRpYWxfaGRyLmxjdCwKLQkJCQkJCSAgICBtZ3ItPnVwX3JlcV9y ZWN2LmluaXRpYWxfaGRyLnJhZCk7CisJaWYgKCFoZHItPmJyb2FkY2FzdCkgeworCQltc3RiID0g ZHJtX2RwX2dldF9tc3RfYnJhbmNoX2RldmljZShtZ3IsIGhkci0+bGN0LCBoZHItPnJhZCk7CiAJ CWlmICghbXN0YikgewotCQkJRFJNX0RFQlVHX0tNUygiR290IE1TVCByZXBseSBmcm9tIHVua25v d24gZGV2aWNlICVkXG4iLCBtZ3ItPnVwX3JlcV9yZWN2LmluaXRpYWxfaGRyLmxjdCk7Ci0JCQlt ZW1zZXQoJm1nci0+dXBfcmVxX3JlY3YsIDAsIHNpemVvZihzdHJ1Y3QgZHJtX2RwX3NpZGViYW5k X21zZ19yeCkpOwotCQkJcmV0dXJuIDA7CisJCQlEUk1fREVCVUdfS01TKCJHb3QgTVNUIHJlcGx5 IGZyb20gdW5rbm93biBkZXZpY2UgJWRcbiIsCisJCQkJICAgICAgaGRyLT5sY3QpOworCQkJZ290 byBvdXQ7CiAJCX0KIAl9CiAKLQlzZXFubyA9IG1nci0+dXBfcmVxX3JlY3YuaW5pdGlhbF9oZHIu c2Vxbm87CisJc2Vxbm8gPSBoZHItPnNlcW5vOwogCWRybV9kcF9zaWRlYmFuZF9wYXJzZV9yZXEo Jm1nci0+dXBfcmVxX3JlY3YsICZtc2cpOwogCi0JaWYgKG1zZy5yZXFfdHlwZSA9PSBEUF9DT05O RUNUSU9OX1NUQVRVU19OT1RJRlkpIHsKLQkJZHJtX2RwX3NlbmRfdXBfYWNrX3JlcGx5KG1nciwg bWdyLT5tc3RfcHJpbWFyeSwgbXNnLnJlcV90eXBlLCBzZXFubywgZmFsc2UpOworCWlmIChtc2cu cmVxX3R5cGUgPT0gRFBfQ09OTkVDVElPTl9TVEFUVVNfTk9USUZZKQorCQlndWlkID0gbXNnLnUu Y29ubl9zdGF0Lmd1aWQ7CisJZWxzZSBpZiAobXNnLnJlcV90eXBlID09IERQX1JFU09VUkNFX1NU QVRVU19OT1RJRlkpCisJCWd1aWQgPSBtc2cudS5yZXNvdXJjZV9zdGF0Lmd1aWQ7CisJZWxzZQor CQlnb3RvIG91dDsKIAotCQlpZiAoIW1zdGIpCi0JCQltc3RiID0gZHJtX2RwX2dldF9tc3RfYnJh bmNoX2RldmljZV9ieV9ndWlkKG1nciwgbXNnLnUuY29ubl9zdGF0Lmd1aWQpOworCWRybV9kcF9z ZW5kX3VwX2Fja19yZXBseShtZ3IsIG1nci0+bXN0X3ByaW1hcnksIG1zZy5yZXFfdHlwZSwgc2Vx bm8sCisJCQkJIGZhbHNlKTsKIAorCWlmICghbXN0YikgeworCQltc3RiID0gZHJtX2RwX2dldF9t c3RfYnJhbmNoX2RldmljZV9ieV9ndWlkKG1nciwgZ3VpZCk7CiAJCWlmICghbXN0YikgewotCQkJ RFJNX0RFQlVHX0tNUygiR290IE1TVCByZXBseSBmcm9tIHVua25vd24gZGV2aWNlICVkXG4iLCBt Z3ItPnVwX3JlcV9yZWN2LmluaXRpYWxfaGRyLmxjdCk7Ci0JCQltZW1zZXQoJm1nci0+dXBfcmVx X3JlY3YsIDAsIHNpemVvZihzdHJ1Y3QgZHJtX2RwX3NpZGViYW5kX21zZ19yeCkpOwotCQkJcmV0 dXJuIDA7CisJCQlEUk1fREVCVUdfS01TKCJHb3QgTVNUIHJlcGx5IGZyb20gdW5rbm93biBkZXZp Y2UgJWRcbiIsCisJCQkJICAgICAgaGRyLT5sY3QpOworCQkJZ290byBvdXQ7CiAJCX0KKwl9CiAK KwlpZiAobXNnLnJlcV90eXBlID09IERQX0NPTk5FQ1RJT05fU1RBVFVTX05PVElGWSkgewogCQlk cm1fZHBfdXBkYXRlX3BvcnQobXN0YiwgJm1zZy51LmNvbm5fc3RhdCk7CiAKLQkJRFJNX0RFQlVH X0tNUygiR290IENTTjogcG46ICVkIGxkcHM6JWQgZGRwczogJWQgbWNzOiAlZCBpcDogJWQgcGR0 OiAlZFxuIiwgbXNnLnUuY29ubl9zdGF0LnBvcnRfbnVtYmVyLCBtc2cudS5jb25uX3N0YXQubGVn YWN5X2RldmljZV9wbHVnX3N0YXR1cywgbXNnLnUuY29ubl9zdGF0LmRpc3BsYXlwb3J0X2Rldmlj ZV9wbHVnX3N0YXR1cywgbXNnLnUuY29ubl9zdGF0Lm1lc3NhZ2VfY2FwYWJpbGl0eV9zdGF0dXMs IG1zZy51LmNvbm5fc3RhdC5pbnB1dF9wb3J0LCBtc2cudS5jb25uX3N0YXQucGVlcl9kZXZpY2Vf dHlwZSk7Ci0JCWRybV9rbXNfaGVscGVyX2hvdHBsdWdfZXZlbnQobWdyLT5kZXYpOworCQlEUk1f REVCVUdfS01TKCJHb3QgQ1NOOiBwbjogJWQgbGRwczolZCBkZHBzOiAlZCBtY3M6ICVkIGlwOiAl ZCBwZHQ6ICVkXG4iLAorCQkJICAgICAgbXNnLnUuY29ubl9zdGF0LnBvcnRfbnVtYmVyLAorCQkJ ICAgICAgbXNnLnUuY29ubl9zdGF0LmxlZ2FjeV9kZXZpY2VfcGx1Z19zdGF0dXMsCisJCQkgICAg ICBtc2cudS5jb25uX3N0YXQuZGlzcGxheXBvcnRfZGV2aWNlX3BsdWdfc3RhdHVzLAorCQkJICAg ICAgbXNnLnUuY29ubl9zdGF0Lm1lc3NhZ2VfY2FwYWJpbGl0eV9zdGF0dXMsCisJCQkgICAgICBt c2cudS5jb25uX3N0YXQuaW5wdXRfcG9ydCwKKwkJCSAgICAgIG1zZy51LmNvbm5fc3RhdC5wZWVy X2RldmljZV90eXBlKTsKIAorCQlkcm1fa21zX2hlbHBlcl9ob3RwbHVnX2V2ZW50KG1nci0+ZGV2 KTsKIAl9IGVsc2UgaWYgKG1zZy5yZXFfdHlwZSA9PSBEUF9SRVNPVVJDRV9TVEFUVVNfTk9USUZZ KSB7Ci0JCWRybV9kcF9zZW5kX3VwX2Fja19yZXBseShtZ3IsIG1nci0+bXN0X3ByaW1hcnksIG1z Zy5yZXFfdHlwZSwgc2Vxbm8sIGZhbHNlKTsKLQkJaWYgKCFtc3RiKQotCQkJbXN0YiA9IGRybV9k cF9nZXRfbXN0X2JyYW5jaF9kZXZpY2VfYnlfZ3VpZChtZ3IsIG1zZy51LnJlc291cmNlX3N0YXQu Z3VpZCk7Ci0KLQkJaWYgKCFtc3RiKSB7Ci0JCQlEUk1fREVCVUdfS01TKCJHb3QgTVNUIHJlcGx5 IGZyb20gdW5rbm93biBkZXZpY2UgJWRcbiIsIG1nci0+dXBfcmVxX3JlY3YuaW5pdGlhbF9oZHIu bGN0KTsKLQkJCW1lbXNldCgmbWdyLT51cF9yZXFfcmVjdiwgMCwgc2l6ZW9mKHN0cnVjdCBkcm1f ZHBfc2lkZWJhbmRfbXNnX3J4KSk7Ci0JCQlyZXR1cm4gMDsKLQkJfQotCi0JCURSTV9ERUJVR19L TVMoIkdvdCBSU046IHBuOiAlZCBhdmFpbF9wYm4gJWRcbiIsIG1zZy51LnJlc291cmNlX3N0YXQu cG9ydF9udW1iZXIsIG1zZy51LnJlc291cmNlX3N0YXQuYXZhaWxhYmxlX3Bibik7CisJCURSTV9E RUJVR19LTVMoIkdvdCBSU046IHBuOiAlZCBhdmFpbF9wYm4gJWRcbiIsCisJCQkgICAgICBtc2cu dS5yZXNvdXJjZV9zdGF0LnBvcnRfbnVtYmVyLAorCQkJICAgICAgbXNnLnUucmVzb3VyY2Vfc3Rh dC5hdmFpbGFibGVfcGJuKTsKIAl9CiAKLQlpZiAobXN0YikKLQkJZHJtX2RwX21zdF90b3BvbG9n eV9wdXRfbXN0Yihtc3RiKTsKLQorCWRybV9kcF9tc3RfdG9wb2xvZ3lfcHV0X21zdGIobXN0Yik7 CitvdXQ6CiAJbWVtc2V0KCZtZ3ItPnVwX3JlcV9yZWN2LCAwLCBzaXplb2Yoc3RydWN0IGRybV9k cF9zaWRlYmFuZF9tc2dfcngpKTsKLQogCXJldHVybiAwOwogfQogCi0tIAoyLjIxLjAKCl9fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCk5vdXZlYXUgbWFpbGlu ZyBsaXN0Ck5vdXZlYXVAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRl c2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vbm91dmVhdQ==