From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jeykumar Sankaran Subject: [PATCH 22/25] drm/msm/dpu: make crtc and encoder specific HW reservation Date: Mon, 8 Oct 2018 21:27:39 -0700 Message-ID: <1539059262-8326-23-git-send-email-jsanka@codeaurora.org> References: <1539059262-8326-1-git-send-email-jsanka@codeaurora.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1539059262-8326-1-git-send-email-jsanka-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: freedreno-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "Freedreno" To: dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, freedreno-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, linux-arm-msm-u79uwXL29TY76Z2rM5mHXA@public.gmane.org Cc: hoegsberg-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org, Jeykumar Sankaran , jcrouse-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org, seanpaul-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org, robdclark-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org List-Id: linux-arm-msm@vger.kernel.org SW5zdGVhZCBvZiBsZXR0aW5nIGVuY29kZXIgbWFrZSBhIGNlbnRyYWxpemVkIHJlc2VydmF0aW9u IGZvcgphbGwgb2YgaXRzIGRpc3BsYXkgRFJNIGNvbXBvbmVudHMsIHRoaXMgcGF0aCBzcGxpdHMg dGhlCnJlc3BvbnNpYmlsaXR5IGJldHdlZW4gQ1JUQyBhbmQgRW5jb2RlciwgZWFjaCByZXF1ZXN0 aW5nClJNIGZvciB0aGUgSFcgbWFwcGluZyBvZiBpdHMgb3duIGRvbWFpbi4KClNpZ25lZC1vZmYt Ynk6IEpleWt1bWFyIFNhbmthcmFuIDxqc2Fua2FAY29kZWF1cm9yYS5vcmc+Ci0tLQogZHJpdmVy cy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2NydGMuYyAgICB8IDMxICsrKysrKysrKysrKysK IGRyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9lbmNvZGVyLmMgfCAxNCArKy0tLS0K IGRyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9ybS5jICAgICAgfCA2OSArKysrKysr KysrKysrKysrKysrKysrKystLS0tLQogZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1 X3JtLmggICAgICB8IDM2ICsrKysrKysrKysrLS0tLQogNCBmaWxlcyBjaGFuZ2VkLCAxMTkgaW5z ZXJ0aW9ucygrKSwgMzEgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L21zbS9kaXNwL2RwdTEvZHB1X2NydGMuYyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUx L2RwdV9jcnRjLmMKaW5kZXggMDYyNWY1Ni4uMDUzNmI4YSAxMDA2NDQKLS0tIGEvZHJpdmVycy9n cHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2NydGMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vbXNt L2Rpc3AvZHB1MS9kcHVfY3J0Yy5jCkBAIC00Nyw2ICs0Nyw4IEBACiAjZGVmaW5lIExFRlRfTUlY RVIgMAogI2RlZmluZSBSSUdIVF9NSVhFUiAxCiAKKyNkZWZpbmUgTUFYX1ZESVNQTEFZX1NQTElU IDEwODAKKwogc3RhdGljIGlubGluZSBpbnQgX2RwdV9jcnRjX2dldF9taXhlcl93aWR0aChzdHJ1 Y3QgZHB1X2NydGNfc3RhdGUgKmNzdGF0ZSwKIAkJCQkJICAgIHN0cnVjdCBkcm1fZGlzcGxheV9t b2RlICptb2RlKQogewpAQCAtNDQ4LDYgKzQ1MCw3IEBAIHN0YXRpYyB2b2lkIF9kcHVfY3J0Y19z ZXR1cF9sbV9ib3VuZHMoc3RydWN0IGRybV9jcnRjICpjcnRjLAogCiAJZm9yIChpID0gMDsgaSA8 IGNzdGF0ZS0+bnVtX21peGVyczsgaSsrKSB7CiAJCXN0cnVjdCBkcm1fcmVjdCAqciA9ICZjc3Rh dGUtPmxtX2JvdW5kc1tpXTsKKwogCQlyLT54MSA9IGNydGNfc3BsaXRfd2lkdGggKiBpOwogCQly LT55MSA9IDA7CiAJCXItPngyID0gci0+eDEgKyBjcnRjX3NwbGl0X3dpZHRoOwpAQCAtODg1LDYg Kzg4OCw3IEBAIHN0YXRpYyB2b2lkIGRwdV9jcnRjX2Rpc2FibGUoc3RydWN0IGRybV9jcnRjICpj cnRjKQogCXN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2RlOwogCXN0cnVjdCBkcm1fZW5jb2Rl ciAqZW5jb2RlcjsKIAlzdHJ1Y3QgbXNtX2RybV9wcml2YXRlICpwcml2OworCXN0cnVjdCBkcHVf a21zICpkcHVfa21zOwogCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CiAKIAlpZiAoIWNydGMgfHwgIWNy dGMtPmRldiB8fCAhY3J0Yy0+ZGV2LT5kZXZfcHJpdmF0ZSB8fCAhY3J0Yy0+c3RhdGUpIHsKQEAg LTg5NSw2ICs4OTksNyBAQCBzdGF0aWMgdm9pZCBkcHVfY3J0Y19kaXNhYmxlKHN0cnVjdCBkcm1f Y3J0YyAqY3J0YykKIAljc3RhdGUgPSB0b19kcHVfY3J0Y19zdGF0ZShjcnRjLT5zdGF0ZSk7CiAJ bW9kZSA9ICZjc3RhdGUtPmJhc2UuYWRqdXN0ZWRfbW9kZTsKIAlwcml2ID0gY3J0Yy0+ZGV2LT5k ZXZfcHJpdmF0ZTsKKwlkcHVfa21zID0gdG9fZHB1X2ttcyhwcml2LT5rbXMpOwogCiAJRFJNX0RF QlVHX0tNUygiY3J0YyVkXG4iLCBjcnRjLT5iYXNlLmlkKTsKIApAQCAtOTUzLDYgKzk1OCw4IEBA IHN0YXRpYyB2b2lkIGRwdV9jcnRjX2Rpc2FibGUoc3RydWN0IGRybV9jcnRjICpjcnRjKQogCQlj cnRjLT5zdGF0ZS0+ZXZlbnQgPSBOVUxMOwogCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZjcnRj LT5kZXYtPmV2ZW50X2xvY2ssIGZsYWdzKTsKIAl9CisKKwlkcHVfcm1fY3J0Y19yZWxlYXNlKCZk cHVfa21zLT5ybSwgY3J0Yy0+c3RhdGUpOwogfQogCiBzdGF0aWMgdm9pZCBkcHVfY3J0Y19lbmFi bGUoc3RydWN0IGRybV9jcnRjICpjcnRjLApAQCAtMTAwNCw2ICsxMDExLDIxIEBAIHN0cnVjdCBw bGFuZV9zdGF0ZSB7CiAJdTMyIHBpcGVfaWQ7CiB9OwogCitzdGF0aWMgdm9pZCBfZHB1X2NydGNf Z2V0X3RvcG9sb2d5KAorCQkJc3RydWN0IGRybV9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAorCQkJ c3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGUpCit7CisJc3RydWN0IGRwdV9jcnRjX3N0YXRl ICpkcHVfY3N0YXRlID0gdG9fZHB1X2NydGNfc3RhdGUoY3J0Y19zdGF0ZSk7CisKKwlkcHVfY3N0 YXRlLT5udW1fbWl4ZXJzID0gKG1vZGUtPnZkaXNwbGF5ID4gTUFYX1ZESVNQTEFZX1NQTElUKSA/ IDIgOiAxOworCisJLyoqCisJICogZW5jb2Rlci0+YXRvbWljX2NoZWNrIGlzIGludm9rZWQgYmVm b3JlIGNydGMtPmF0b21pY19jaGVjay4KKwkgKiBzbyBkcHVfY3N0YXRlLT5udW1faW50ZnMgc2hv dWxkIGhhdmUgYSBub24temVybyB2YWx1ZS4KKwkgKi8KKwlkcHVfY3N0YXRlLT5udW1fY3RscyA9 IGRwdV9jc3RhdGUtPm51bV9pbnRmczsKK30KKwogc3RhdGljIGludCBkcHVfY3J0Y19hdG9taWNf Y2hlY2soc3RydWN0IGRybV9jcnRjICpjcnRjLAogCQlzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKnN0 YXRlKQogewpAQCAtMTAxNCw2ICsxMDM2LDggQEAgc3RhdGljIGludCBkcHVfY3J0Y19hdG9taWNf Y2hlY2soc3RydWN0IGRybV9jcnRjICpjcnRjLAogCWNvbnN0IHN0cnVjdCBkcm1fcGxhbmVfc3Rh dGUgKnBzdGF0ZTsKIAlzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZTsKIAlzdHJ1Y3QgZHJtX2Rpc3Bs YXlfbW9kZSAqbW9kZTsKKwlzdHJ1Y3QgbXNtX2RybV9wcml2YXRlICpwcml2OworCXN0cnVjdCBk cHVfa21zICpkcHVfa21zOwogCiAJaW50IGNudCA9IDAsIHJjID0gMCwgbWl4ZXJfd2lkdGgsIGks IHpfcG9zOwogCkBAIC0xMDM5LDYgKzEwNjMsOSBAQCBzdGF0aWMgaW50IGRwdV9jcnRjX2F0b21p Y19jaGVjayhzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCiAJCWdvdG8gZW5kOwogCX0KIAorCXByaXYg PSBjcnRjLT5kZXYtPmRldl9wcml2YXRlOworCWRwdV9rbXMgPSB0b19kcHVfa21zKHByaXYtPmtt cyk7CisKIAltb2RlID0gJnN0YXRlLT5hZGp1c3RlZF9tb2RlOwogCURQVV9ERUJVRygiJXM6IGNo ZWNrIiwgZHB1X2NydGMtPm5hbWUpOwogCkBAIC0xMjI5LDYgKzEyNTYsMTAgQEAgc3RhdGljIGlu dCBkcHVfY3J0Y19hdG9taWNfY2hlY2soc3RydWN0IGRybV9jcnRjICpjcnRjLAogCQl9CiAJfQog CisJX2RwdV9jcnRjX2dldF90b3BvbG9neShzdGF0ZSwgbW9kZSk7CisJaWYgKGRybV9hdG9taWNf Y3J0Y19uZWVkc19tb2Rlc2V0KHN0YXRlKSkKKwkJcmMgPSBkcHVfcm1fY3J0Y19yZXNlcnZlKCZk cHVfa21zLT5ybSwgc3RhdGUpOworCiBlbmQ6CiAJa2ZyZWUocHN0YXRlcyk7CiAJcmV0dXJuIHJj OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2VuY29kZXIu YyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9lbmNvZGVyLmMKaW5kZXggNWQ1 MDFjOC4uY2U2NjMwOSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEv ZHB1X2VuY29kZXIuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfZW5j b2Rlci5jCkBAIC02Nyw4ICs2Nyw2IEBACiAKICNkZWZpbmUgSURMRV9TSE9SVF9USU1FT1VUCTEK IAotI2RlZmluZSBNQVhfVkRJU1BMQVlfU1BMSVQgMTA4MAotCiAvKioKICAqIGVudW0gZHB1X2Vu Y19yY19ldmVudHMgLSBldmVudHMgZm9yIHJlc291cmNlIGNvbnRyb2wgc3RhdGUgbWFjaGluZQog ICogQERQVV9FTkNfUkNfRVZFTlRfS0lDS09GRjoKQEAgLTU1NywxNCArNTU1LDEwIEBAIHN0YXRp YyB2b2lkIF9kcHVfZW5jb2Rlcl9hZGp1c3RfbW9kZShzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29u bmVjdG9yLAogCiBzdGF0aWMgdm9pZCBfZHB1X2VuY29kZXJfZ2V0X3RvcG9sb2d5KAogCQkJc3Ry dWN0IGRwdV9lbmNvZGVyX3ZpcnQgKmRwdV9lbmMsCi0JCQlzdHJ1Y3QgZHJtX2NydGNfc3RhdGUg KmNydGNfc3RhdGUsCi0JCQlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZSkKKwkJCXN0cnVj dCBkcm1fY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIHsKIAlzdHJ1Y3QgZHB1X2NydGNfc3RhdGUg KmRwdV9jc3RhdGUgPSB0b19kcHVfY3J0Y19zdGF0ZShjcnRjX3N0YXRlKTsKIAotCS8qIFVzZXIg c3BsaXQgdG9wb2xvZ3kgZm9yIHdpZHRoID4gMTA4MCAqLwotCWRwdV9jc3RhdGUtPm51bV9taXhl cnMgPSAobW9kZS0+dmRpc3BsYXkgPiBNQVhfVkRJU1BMQVlfU1BMSVQpID8gMiA6IDE7Ci0JZHB1 X2NzdGF0ZS0+bnVtX2N0bHMgPSBkcHVfZW5jLT5udW1fcGh5c19lbmNzOwogCWRwdV9jc3RhdGUt Pm51bV9pbnRmcyA9IGRwdV9lbmMtPm51bV9waHlzX2VuY3M7CiB9CiAKQEAgLTYyMyw5ICs2MTcs OSBAQCBzdGF0aWMgaW50IGRwdV9lbmNvZGVyX3ZpcnRfYXRvbWljX2NoZWNrKAogCQl9CiAJfQog Ci0JX2RwdV9lbmNvZGVyX2dldF90b3BvbG9neShkcHVfZW5jLCBjcnRjX3N0YXRlLCBhZGpfbW9k ZSk7CisJX2RwdV9lbmNvZGVyX2dldF90b3BvbG9neShkcHVfZW5jLCBjcnRjX3N0YXRlKTsKIAlp ZiAoIXJldCAmJiBkcm1fYXRvbWljX2NydGNfbmVlZHNfbW9kZXNldChjcnRjX3N0YXRlKSkKLQkJ cmV0ID0gZHB1X3JtX3Jlc2VydmUoJmRwdV9rbXMtPnJtLCBkcm1fZW5jLCBjcnRjX3N0YXRlKTsK KwkJcmV0ID0gZHB1X3JtX2VuY29kZXJfcmVzZXJ2ZSgmZHB1X2ttcy0+cm0sIGRybV9lbmMsIGNy dGNfc3RhdGUpOwogCiAJaWYgKCFyZXQpCiAJCWRybV9tb2RlX3NldF9jcnRjaW5mbyhhZGpfbW9k ZSwgMCk7CkBAIC0xMTg2LDcgKzExODAsNyBAQCBzdGF0aWMgdm9pZCBkcHVfZW5jb2Rlcl92aXJ0 X2Rpc2FibGUoc3RydWN0IGRybV9lbmNvZGVyICpkcm1fZW5jKQogCiAJRFBVX0RFQlVHX0VOQyhk cHVfZW5jLCAiZW5jb2RlciBkaXNhYmxlZFxuIik7CiAKLQlkcHVfcm1fcmVsZWFzZSgmZHB1X2tt cy0+cm0sIGRybV9lbmMtPmNydGMtPnN0YXRlKTsKKwlkcHVfcm1fZW5jb2Rlcl9yZWxlYXNlKCZk cHVfa21zLT5ybSwgZHJtX2VuYy0+Y3J0Yy0+c3RhdGUpOwogfQogCiBzdGF0aWMgZW51bSBkcHVf aW50ZiBkcHVfZW5jb2Rlcl9nZXRfaW50ZihzdHJ1Y3QgZHB1X21kc3NfY2ZnICpjYXRhbG9nLApk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X3JtLmMgYi9kcml2 ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfcm0uYwppbmRleCA1MzA0NTk3Li45MDFiMWZj IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfcm0uYworKysg Yi9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfcm0uYwpAQCAtNDM2LDggKzQzNiw4 IEBAIHN0YXRpYyBpbnQgX2RwdV9ybV9yZWxlYXNlX2h3KHN0cnVjdCBkcHVfcm0gKnJtLCBlbnVt IGRwdV9od19ibGtfdHlwZSB0eXBlLAogCXJldHVybiAtRUlOVkFMOwogfQogCi1zdGF0aWMgdm9p ZCBfZHB1X3JtX3JlbGVhc2VfcmVzZXJ2YXRpb24oc3RydWN0IGRwdV9ybSAqcm0sCi0JCQkJCXN0 cnVjdCBkcHVfY3J0Y19zdGF0ZSAqZHB1X2NzdGF0ZSkKK3N0YXRpYyB2b2lkIF9kcHVfcm1fY3J0 Y19yZWxlYXNlX3Jlc2VydmF0aW9uKHN0cnVjdCBkcHVfcm0gKnJtLAorCQkJCQkgICAgIHN0cnVj dCBkcHVfY3J0Y19zdGF0ZSAqZHB1X2NzdGF0ZSkKIHsKIAlpbnQgaTsKIApAQCAtNDY0LDYgKzQ2 NCwxMiBAQCBzdGF0aWMgdm9pZCBfZHB1X3JtX3JlbGVhc2VfcmVzZXJ2YXRpb24oc3RydWN0IGRw dV9ybSAqcm0sCiAJCQkJCWRwdV9jc3RhdGUtPmh3X2N0bHNbaV0tPmJhc2UuaWQpKQogCQkJZHB1 X2NzdGF0ZS0+aHdfY3Rsc1tpXSA9IE5VTEw7CiAJfQorfQorCitzdGF0aWMgdm9pZCBfZHB1X3Jt X2VuY29kZXJfcmVsZWFzZV9yZXNlcnZhdGlvbihzdHJ1Y3QgZHB1X3JtICpybSwKKwkJCQkJICAg ICAgc3RydWN0IGRwdV9jcnRjX3N0YXRlICpkcHVfY3N0YXRlKQoreworCWludCBpOwogCiAJZm9y IChpID0gMDsgaSA8IGRwdV9jc3RhdGUtPm51bV9pbnRmczsgaSsrKSB7CiAJCWlmICghZHB1X2Nz dGF0ZS0+aHdfaW50ZnNbaV0pCkBAIC00NzUsMjMgKzQ4MSwzMyBAQCBzdGF0aWMgdm9pZCBfZHB1 X3JtX3JlbGVhc2VfcmVzZXJ2YXRpb24oc3RydWN0IGRwdV9ybSAqcm0sCiAJfQogfQogCi12b2lk IGRwdV9ybV9yZWxlYXNlKHN0cnVjdCBkcHVfcm0gKnJtLCBzdHJ1Y3QgZHJtX2NydGNfc3RhdGUg KmNydGNfc3RhdGUpCit2b2lkIGRwdV9ybV9jcnRjX3JlbGVhc2Uoc3RydWN0IGRwdV9ybSAqcm0s IHN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIHsKIAlzdHJ1Y3QgZHB1X2NydGNf c3RhdGUgKmRwdV9jc3RhdGUgPSB0b19kcHVfY3J0Y19zdGF0ZShjcnRjX3N0YXRlKTsKIAogCW11 dGV4X2xvY2soJnJtLT5ybV9sb2NrKTsKIAotCV9kcHVfcm1fcmVsZWFzZV9yZXNlcnZhdGlvbihy bSwgZHB1X2NzdGF0ZSk7CisJX2RwdV9ybV9jcnRjX3JlbGVhc2VfcmVzZXJ2YXRpb24ocm0sIGRw dV9jc3RhdGUpOwogCiAJbXV0ZXhfdW5sb2NrKCZybS0+cm1fbG9jayk7CiB9CiAKLWludCBkcHVf cm1fcmVzZXJ2ZSgKK3ZvaWQgZHB1X3JtX2VuY29kZXJfcmVsZWFzZShzdHJ1Y3QgZHB1X3JtICpy bSwKKwkJCSAgICBzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCit7CisJc3RydWN0 IGRwdV9jcnRjX3N0YXRlICpkcHVfY3N0YXRlID0gdG9fZHB1X2NydGNfc3RhdGUoY3J0Y19zdGF0 ZSk7CisKKwltdXRleF9sb2NrKCZybS0+cm1fbG9jayk7CisKKwlfZHB1X3JtX2VuY29kZXJfcmVs ZWFzZV9yZXNlcnZhdGlvbihybSwgZHB1X2NzdGF0ZSk7CisKKwltdXRleF91bmxvY2soJnJtLT5y bV9sb2NrKTsKK30KKworaW50IGRwdV9ybV9jcnRjX3Jlc2VydmUoCiAJCXN0cnVjdCBkcHVfcm0g KnJtLAotCQlzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuYywKIAkJc3RydWN0IGRybV9jcnRjX3N0YXRl ICpjcnRjX3N0YXRlKQogewotCXN0cnVjdCBkcHVfZW5jb2Rlcl9od19yZXNvdXJjZXMgaHdfcmVz OwogCXN0cnVjdCBkcHVfY3J0Y19zdGF0ZSAqZHB1X2NzdGF0ZSA9IHRvX2RwdV9jcnRjX3N0YXRl KGNydGNfc3RhdGUpOwogCWludCByZXQ7CiAKQEAgLTQ5OSwxMiArNTE1LDEwIEBAIGludCBkcHVf cm1fcmVzZXJ2ZSgKIAlpZiAoIWRybV9hdG9taWNfY3J0Y19uZWVkc19tb2Rlc2V0KGNydGNfc3Rh dGUpKQogCQlyZXR1cm4gMDsKIAotCURSTV9ERUJVR19LTVMoInJlc2VydmluZyBodyBmb3IgZW5j ICVkIGNydGMgJWRcbiIsCi0JCSAgICAgIGVuYy0+YmFzZS5pZCwgY3J0Y19zdGF0ZS0+Y3J0Yy0+ YmFzZS5pZCk7CiAKLQltdXRleF9sb2NrKCZybS0+cm1fbG9jayk7CisJRFJNX0RFQlVHX0tNUygi cmVzZXJ2aW5nIGh3IGZvciBjcnRjICVkXG4iLCBjcnRjX3N0YXRlLT5jcnRjLT5iYXNlLmlkKTsK IAotCWRwdV9lbmNvZGVyX2dldF9od19yZXNvdXJjZXMoZW5jLCAmaHdfcmVzKTsKKwltdXRleF9s b2NrKCZybS0+cm1fbG9jayk7CiAKIAlyZXQgPSBfZHB1X3JtX3Jlc2VydmVfbG1zKHJtLCBkcHVf Y3N0YXRlKTsKIAlpZiAocmV0KSB7CkBAIC01MTgsNiArNTMyLDM3IEBAIGludCBkcHVfcm1fcmVz ZXJ2ZSgKIAkJZ290byBjbGVhbnVwX29uX2ZhaWw7CiAJfQogCisJbXV0ZXhfdW5sb2NrKCZybS0+ cm1fbG9jayk7CisKKwlyZXR1cm4gcmV0OworCitjbGVhbnVwX29uX2ZhaWw6CisJX2RwdV9ybV9j cnRjX3JlbGVhc2VfcmVzZXJ2YXRpb24ocm0sIGRwdV9jc3RhdGUpOworCisJbXV0ZXhfdW5sb2Nr KCZybS0+cm1fbG9jayk7CisKKwlyZXR1cm4gcmV0OworfQorCitpbnQgZHB1X3JtX2VuY29kZXJf cmVzZXJ2ZSgKKwkJc3RydWN0IGRwdV9ybSAqcm0sCisJCXN0cnVjdCBkcm1fZW5jb2RlciAqZW5j LAorCQlzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCit7CisJc3RydWN0IGRwdV9l bmNvZGVyX2h3X3Jlc291cmNlcyBod19yZXM7CisJc3RydWN0IGRwdV9jcnRjX3N0YXRlICpkcHVf Y3N0YXRlID0gdG9fZHB1X2NydGNfc3RhdGUoY3J0Y19zdGF0ZSk7CisJaW50IHJldDsKKworCS8q IENoZWNrIGlmIHRoaXMgaXMganVzdCBhIHBhZ2UtZmxpcCAqLworCWlmICghZHJtX2F0b21pY19j cnRjX25lZWRzX21vZGVzZXQoY3J0Y19zdGF0ZSkpCisJCXJldHVybiAwOworCisJRFJNX0RFQlVH X0tNUygicmVzZXJ2aW5nIGh3IGZvciBlbmMgJWRcbiIsIGVuYy0+YmFzZS5pZCk7CisKKwltdXRl eF9sb2NrKCZybS0+cm1fbG9jayk7CisKKwlkcHVfZW5jb2Rlcl9nZXRfaHdfcmVzb3VyY2VzKGVu YywgJmh3X3Jlcyk7CisKIAlyZXQgPSBfZHB1X3JtX3Jlc2VydmVfaW50ZnMocm0sIGRwdV9jc3Rh dGUsICZod19yZXMpOwogCWlmIChyZXQpIHsKIAkJRFBVX0VSUk9SKCJ1bmFibGUgdG8gZmluZCBh cHByb3ByaWF0ZSBJTlRGXG4iKTsKQEAgLTUyOSw3ICs1NzQsNyBAQCBpbnQgZHB1X3JtX3Jlc2Vy dmUoCiAJcmV0dXJuIHJldDsKIAogY2xlYW51cF9vbl9mYWlsOgotCV9kcHVfcm1fcmVsZWFzZV9y ZXNlcnZhdGlvbihybSwgZHB1X2NzdGF0ZSk7CisJX2RwdV9ybV9lbmNvZGVyX3JlbGVhc2VfcmVz ZXJ2YXRpb24ocm0sIGRwdV9jc3RhdGUpOwogCiAJbXV0ZXhfdW5sb2NrKCZybS0+cm1fbG9jayk7 CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9ybS5oIGIv ZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X3JtLmgKaW5kZXggMTYyNmNlZi4uMGIx ZGViMCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X3JtLmgK KysrIGIvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X3JtLmgKQEAgLTUzLDI3ICs1 Myw0NSBAQCBpbnQgZHB1X3JtX2luaXQoc3RydWN0IGRwdV9ybSAqcm0sCiBpbnQgZHB1X3JtX2Rl c3Ryb3koc3RydWN0IGRwdV9ybSAqcm0pOwogCiAvKioKLSAqIGRwdV9ybV9yZXNlcnZlIC0gR2l2 ZW4gYSBDUlRDLT5FbmNvZGVyLT5Db25uZWN0b3IgZGlzcGxheSBjaGFpbiwgYW5hbHl6ZQotICoJ dGhlIHVzZSBjb25uZWN0aW9ucyBhbmQgdXNlciByZXF1aXJlbWVudHMsIHNwZWNpZmllZCB0aHJv dWdoIHJlbGF0ZWQKKyAqIGRwdV9ybV9lbmNvZGVyX3Jlc2VydmUgLSBHaXZlbiBhbiBFbmNvZGVy LCBhbmFseXplIHRoZSB1c2UgY29ubmVjdGlvbnMKKyAqICAgICAgYW5kIHVzZXIgcmVxdWlyZW1l bnRzLCBzcGVjaWZpZWQgdGhyb3VnaCByZWxhdGVkCiAgKgl0b3BvbG9neSBjb250cm9sIHByb3Bl cnRpZXMsIGFuZCByZXNlcnZlIGhhcmR3YXJlIGJsb2NrcyB0byB0aGF0CiAgKglkaXNwbGF5IGNo YWluLgotICoJSFcgYmxvY2tzIGNhbiB0aGVuIGJlIGFjY2Vzc2VkIHRocm91Z2ggZHB1X3JtX2dl dF8qIGZ1bmN0aW9ucy4KLSAqCUhXIFJlc2VydmF0aW9ucyBzaG91bGQgYmUgcmVsZWFzZWQgdmlh IGRwdV9ybV9yZWxlYXNlX2h3LgogICogQHJtOiBEUFUgUmVzb3VyY2UgTWFuYWdlciBoYW5kbGUK ICAqIEBkcm1fZW5jOiBEUk0gRW5jb2RlciBoYW5kbGUKICAqIEBjcnRjX3N0YXRlOiBQcm9wb3Nl ZCBBdG9taWMgRFJNIENSVEMgU3RhdGUgaGFuZGxlCiAgKiBAUmV0dXJuOiAwIG9uIFN1Y2Nlc3Mg b3RoZXJ3aXNlIC1FUlJPUgogICovCi1pbnQgZHB1X3JtX3Jlc2VydmUoc3RydWN0IGRwdV9ybSAq cm0sCitpbnQgZHB1X3JtX2VuY29kZXJfcmVzZXJ2ZShzdHJ1Y3QgZHB1X3JtICpybSwKIAkJc3Ry dWN0IGRybV9lbmNvZGVyICpkcm1fZW5jLAogCQlzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKmNydGNf c3RhdGUpOwogCiAvKioKLSAqIGRwdV9ybV9yZWxlYXNlIC0gR2l2ZW4gdGhlIGVuY29kZXIgZm9y IHRoZSBkaXNwbGF5IGNoYWluLCByZWxlYXNlIGFueQotICoJSFcgYmxvY2tzIHByZXZpb3VzbHkg cmVzZXJ2ZWQgZm9yIHRoYXQgdXNlIGNhc2UuCisgKiBkcHVfcm1fY3J0Y19yZXNlcnZlIC0gR2l2 ZW4gYSBDUlRDLCBhbmFseXplIHRoZSB1c2UgY29ubmVjdGlvbnMKKyAqICAgICAgYW5kIHVzZXIg cmVxdWlyZW1lbnRzLCBzcGVjaWZpZWQgdGhyb3VnaCByZWxhdGVkCisgKgl0b3BvbG9neSBjb250 cm9sIHByb3BlcnRpZXMsIGFuZCByZXNlcnZlIGhhcmR3YXJlIGJsb2NrcyB0byB0aGF0CisgKglk aXNwbGF5IGNoYWluLgogICogQHJtOiBEUFUgUmVzb3VyY2UgTWFuYWdlciBoYW5kbGUKLSAqIEBj cnRjX3N0YXRlOiBhdG9taWMgRFJNIHN0YXRlIGhhbmRsZQorICogQGNydGNfc3RhdGU6IFByb3Bv c2VkIEF0b21pYyBEUk0gQ1JUQyBTdGF0ZSBoYW5kbGUKICAqIEBSZXR1cm46IDAgb24gU3VjY2Vz cyBvdGhlcndpc2UgLUVSUk9SCiAgKi8KLXZvaWQgZHB1X3JtX3JlbGVhc2Uoc3RydWN0IGRwdV9y bSAqcm0sIHN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSk7CitpbnQgZHB1X3JtX2Ny dGNfcmVzZXJ2ZShzdHJ1Y3QgZHB1X3JtICpybSwKKwkJc3RydWN0IGRybV9jcnRjX3N0YXRlICpj cnRjX3N0YXRlKTsKKworLyoqCisgKiBkcHVfcm1fZW5jb2Rlcl9yZWxlYXNlIC0gR2l2ZW4gdGhl IGVuY29kZXIsIHJlbGVhc2UgYW55CisgKglIVyBibG9ja3MgcHJldmlvdXNseSByZXNlcnZlZCBm b3IgdGhhdCB1c2UgY2FzZS4KKyAqIEBybTogRFBVIFJlc291cmNlIE1hbmFnZXIgaGFuZGxlCisg KiBAY3J0Y19zdGF0ZTogUHJvcG9zZWQgQXRvbWljIERSTSBDUlRDIFN0YXRlIGhhbmRsZQorICov Cit2b2lkIGRwdV9ybV9lbmNvZGVyX3JlbGVhc2Uoc3RydWN0IGRwdV9ybSAqcm0sCisJCQkgICAg c3RydWN0IGRybV9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKTsKKworLyoqCisgKiBkcHVfcm1fY3J0 Y19yZWxlYXNlIC0gR2l2ZW4gdGhlIGNydGMsIHJlbGVhc2UgYW55CisgKglIVyBibG9ja3MgcHJl dmlvdXNseSByZXNlcnZlZCBmb3IgdGhhdCB1c2UgY2FzZS4KKyAqIEBybTogRFBVIFJlc291cmNl IE1hbmFnZXIgaGFuZGxlCisgKiBAY3J0Y19zdGF0ZTogUHJvcG9zZWQgQXRvbWljIERSTSBDUlRD IFN0YXRlIGhhbmRsZQorICovCit2b2lkIGRwdV9ybV9jcnRjX3JlbGVhc2Uoc3RydWN0IGRwdV9y bSAqcm0sIHN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSk7CiAjZW5kaWYgLyogX19E UFVfUk1fSF9fICovCi0tIApUaGUgUXVhbGNvbW0gSW5ub3ZhdGlvbiBDZW50ZXIsIEluYy4gaXMg YSBtZW1iZXIgb2YgdGhlIENvZGUgQXVyb3JhIEZvcnVtLAphIExpbnV4IEZvdW5kYXRpb24gQ29s bGFib3JhdGl2ZSBQcm9qZWN0CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fXwpGcmVlZHJlbm8gbWFpbGluZyBsaXN0CkZyZWVkcmVub0BsaXN0cy5mcmVlZGVz a3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9m cmVlZHJlbm8K