From mboxrd@z Thu Jan 1 00:00:00 1970 From: Subject: [PATCH 2/2] drm/dp_mst: Register aux-dev nodes for MST ports Date: Fri, 12 Apr 2019 12:05:31 -0400 Message-ID: <1555085131-8716-3-git-send-email-sunpeng.li@amd.com> References: <1555085131-8716-1-git-send-email-sunpeng.li@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1555085131-8716-1-git-send-email-sunpeng.li-5C7GfCeVMHo@public.gmane.org> List-Id: Discussion list for AMD gfx List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: amd-gfx-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "amd-gfx" To: amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Cc: Leo Li , harry.wentland-5C7GfCeVMHo@public.gmane.org, jerry.zuo-5C7GfCeVMHo@public.gmane.org, ville.syrjala-VuQAYsv1563Yd54FQh9/CA@public.gmane.org RnJvbTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KCkV4 cG9zZSBBVVggZGV2aWNlcyBmb3IgTVNUIHBvcnRzLCBzaW1pbGFyIHRvIGhvdyB0aGV5IGFyZSBl eHBvc2VkIGZvcgpTU1QuCgpUaGUgcmVnaXN0ZXJlZCBkZXZpY2Ugd2lsbCBoYXZlIGl0J3MgTVNU IHBvcnQgcGF0aCBhcHBlbmRlZCBpbiBvcmRlciB0bwppZGVudGlmeSBpdC4gaS5lLiAvZGV2L2Ry bV9kcF9hdXg0X21zdDowLTItMQoKU28gZm9yIGEgTVNUIHRvcG9sb2d5IGxpa2Ugc286CgogICAg ICAgICAgICAgICArLS0tLS0tLS0tKwogICAgICAgICAgICAgICB8ICBBU0lDICAgfAogICAgICAg ICAgICAgICArLS0tLS0tLS0tKwogICAgICAgICAgICAgIENvbm4tMHwKICAgICAgICAgICAgICAg ICAgICB8CiAgICAgICAgICAgICAgICstLS0tdi0tLS0rCiAgICAgICAgICArLS0tLXwgTVNUIEhV QiB8LS0tLSsKICAgICAgICAgIHwgICAgKy0tLS0tLS0tLSsgICAgfAogICAgICAgICAgfCAgICAg ICAgICAgICAgICAgICB8CiAgICAgICAgICB8UG9ydC0xICAgICAgIFBvcnQtMnwKICAgICstLS0t LXYtLS0tLSsgICAgICAgKy0tLS0tdi0tLS0tKwogICAgfCAgTVNUICAgICAgfCAgICAgICB8ICBT U1QgICAgICB8CiAgICB8ICBEaXNwbGF5ICB8ICAgICAgIHwgIERpc3BsYXkgIHwKICAgICstLS0t LS0tLS0tLSsgICAgICAgKy0tLS0tLS0tLS0tKwogICAgICAgICAgfFBvcnQtMQogICAgICAgICAg eAoKVGhlIGxpc3Qgb2YgQVVYIGRldmljZSBuYW1lcyB3aWxsIGxvb2sgbGlrZToKCkFVWCBEZXZp Y2UgTmFtZSAgICAgICB8IE1TVCBEZXZpY2UKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCmRybV9kcF9hdXgwICAgICAgICAgICB8IE1TVCBI dWIKZHJtX2RwX2F1eDFfbXN0OjAtMS0xIHwgTVNUIERpc3BsYXkncyBkaXNjb25uZWN0ZWQgRFAg b3V0CmRybV9kcF9hdXgyX21zdDowLTEgICB8IE1TVCBEaXNwbGF5CmRybV9kcF9hdXgzX21zdDow LTIgICB8IFNTVCBEaXNwbGF5CgpOb3RlIHRoYXQgYXV4IGRldmljZXMgYXJlIG9ubHkgY3JlYXRl ZCBmb3IgUGh5c2ljYWwgUG9ydHMuIExvZ2ljYWwgUG9ydHMKYXJlIGxlZnQgb3V0LCBzaW5jZSB0 aGV5IGFyZSBpbnRlcm5hbGx5IGNvbm5lY3RlZCB3aXRoaW4gdGhlIE1TVCBkZXZpY2UKKG5vdCBj b25uZWN0ZWQgdG8gYSBEUCBSWCBvciBUWCkuCgpMZW8gTGk6CiogQWRkIG1pc3NpbmcgZHJtX2Ny dGNfaGVscGVyX2ludGVybmFsLmggaW5jbHVkZQoqIEZpeCBoYXJkLWNvZGVkIG9mZnNldCBhbmQg c2l6ZSBpbiBkcm1fZHBfc2VuZF9kcGNkX3JlYWQoKQoqIE9ubHkgY3JlYXRlIGF1eCBkZXZpY2Vz IGZvciBwaHlzaWNhbCBwb3J0cy4KClNpZ25lZC1vZmYtYnk6IFZpbGxlIFN5cmrDpGzDpCA8dmls bGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20+ClNpZ25lZC1vZmYtYnk6IExlbyBMaSA8c3VucGVu Zy5saUBhbWQuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9kcm1fZHBfYXV4X2Rldi5jICAgICAg fCAgMTMgKysrLQogZHJpdmVycy9ncHUvZHJtL2RybV9kcF9tc3RfdG9wb2xvZ3kuYyB8IDEwOSAr KysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tCiBpbmNsdWRlL2RybS9kcm1fZHBfaGVs cGVyLmggICAgICAgICAgIHwgICA0ICsrCiBpbmNsdWRlL2RybS9kcm1fZHBfbXN0X2hlbHBlci5o ICAgICAgIHwgICA2ICsrCiA0IGZpbGVzIGNoYW5nZWQsIDExNyBpbnNlcnRpb25zKCspLCAxNSBk ZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2RwX2F1eF9kZXYu YyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fZHBfYXV4X2Rldi5jCmluZGV4IDIzMTBhNjcuLmYxMjQx ZDEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fZHBfYXV4X2Rldi5jCisrKyBiL2Ry aXZlcnMvZ3B1L2RybS9kcm1fZHBfYXV4X2Rldi5jCkBAIC0zNCw2ICszNCw3IEBACiAjaW5jbHVk ZSA8bGludXgvdWFjY2Vzcy5oPgogI2luY2x1ZGUgPGxpbnV4L3Vpby5oPgogI2luY2x1ZGUgPGRy bS9kcm1fZHBfaGVscGVyLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9kcF9tc3RfaGVscGVyLmg+CiAj aW5jbHVkZSA8ZHJtL2RybV9jcnRjLmg+CiAjaW5jbHVkZSA8ZHJtL2RybVAuaD4KIApAQCAtMTYw LDcgKzE2MSwxMSBAQCBzdGF0aWMgc3NpemVfdCBhdXhkZXZfcmVhZF9pdGVyKHN0cnVjdCBraW9j YiAqaW9jYiwgc3RydWN0IGlvdl9pdGVyICp0bykKIAkJCWJyZWFrOwogCQl9CiAKLQkJcmVzID0g ZHJtX2RwX2RwY2RfcmVhZChhdXhfZGV2LT5hdXgsIHBvcywgYnVmLCB0b2RvKTsKKwkJaWYgKGF1 eF9kZXYtPmF1eC0+aXNfcmVtb3RlKQorCQkJcmVzID0gZHJtX2RwX21zdF9kcGNkX3JlYWQoYXV4 X2Rldi0+YXV4LCBwb3MsIGJ1ZiwgdG9kbyk7CisJCWVsc2UKKwkJCXJlcyA9IGRybV9kcF9kcGNk X3JlYWQoYXV4X2Rldi0+YXV4LCBwb3MsIGJ1ZiwgdG9kbyk7CisKIAkJaWYgKHJlcyA8PSAwKQog CQkJYnJlYWs7CiAKQEAgLTIwNyw3ICsyMTIsMTEgQEAgc3RhdGljIHNzaXplX3QgYXV4ZGV2X3dy aXRlX2l0ZXIoc3RydWN0IGtpb2NiICppb2NiLCBzdHJ1Y3QgaW92X2l0ZXIgKmZyb20pCiAJCQli cmVhazsKIAkJfQogCi0JCXJlcyA9IGRybV9kcF9kcGNkX3dyaXRlKGF1eF9kZXYtPmF1eCwgcG9z LCBidWYsIHRvZG8pOworCQlpZiAoYXV4X2Rldi0+YXV4LT5pc19yZW1vdGUpCisJCQlyZXMgPSBk cm1fZHBfbXN0X2RwY2Rfd3JpdGUoYXV4X2Rldi0+YXV4LCBwb3MsIGJ1ZiwgdG9kbyk7CisJCWVs c2UKKwkJCXJlcyA9IGRybV9kcF9kcGNkX3dyaXRlKGF1eF9kZXYtPmF1eCwgcG9zLCBidWYsIHRv ZG8pOworCiAJCWlmIChyZXMgPD0gMCkKIAkJCWJyZWFrOwogCmRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vZHJtX2RwX21zdF90b3BvbG9neS5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9kcF9t c3RfdG9wb2xvZ3kuYwppbmRleCAyYWIxNmM5Li5kNTI4MmRiIDEwMDY0NAotLS0gYS9kcml2ZXJz L2dwdS9kcm0vZHJtX2RwX21zdF90b3BvbG9neS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1f ZHBfbXN0X3RvcG9sb2d5LmMKQEAgLTM1LDYgKzM1LDggQEAKICNpbmNsdWRlIDxkcm0vZHJtX2F0 b21pY19oZWxwZXIuaD4KICNpbmNsdWRlIDxkcm0vZHJtX2NydGNfaGVscGVyLmg+CiAKKyNpbmNs dWRlICJkcm1fY3J0Y19oZWxwZXJfaW50ZXJuYWwuaCIKKwogLyoqCiAgKiBET0M6IGRwIG1zdCBo ZWxwZXIKICAqCkBAIC01Miw2ICs1NCw5IEBAIHN0YXRpYyBpbnQgZHJtX2RwX2RwY2Rfd3JpdGVf cGF5bG9hZChzdHJ1Y3QgZHJtX2RwX21zdF90b3BvbG9neV9tZ3IgKm1nciwKIAkJCQkgICAgIGlu dCBpZCwKIAkJCQkgICAgIHN0cnVjdCBkcm1fZHBfcGF5bG9hZCAqcGF5bG9hZCk7CiAKK3N0YXRp YyBpbnQgZHJtX2RwX3NlbmRfZHBjZF9yZWFkKHN0cnVjdCBkcm1fZHBfbXN0X3RvcG9sb2d5X21n ciAqbWdyLAorCQkJCSBzdHJ1Y3QgZHJtX2RwX21zdF9wb3J0ICpwb3J0LAorCQkJCSBpbnQgb2Zm c2V0LCBpbnQgc2l6ZSwgdTggKmJ5dGVzKTsKIHN0YXRpYyBpbnQgZHJtX2RwX3NlbmRfZHBjZF93 cml0ZShzdHJ1Y3QgZHJtX2RwX21zdF90b3BvbG9neV9tZ3IgKm1nciwKIAkJCQkgIHN0cnVjdCBk cm1fZHBfbXN0X3BvcnQgKnBvcnQsCiAJCQkJICBpbnQgb2Zmc2V0LCBpbnQgc2l6ZSwgdTggKmJ5 dGVzKTsKQEAgLTk0MSw2ICs5NDYsOCBAQCBzdGF0aWMgdm9pZCBkcm1fZHBfZGVzdHJveV9wb3J0 KHN0cnVjdCBrcmVmICprcmVmKQogCXN0cnVjdCBkcm1fZHBfbXN0X3RvcG9sb2d5X21nciAqbWdy ID0gcG9ydC0+bWdyOwogCiAJaWYgKCFwb3J0LT5pbnB1dCkgeworCQlkcm1fZHBfYXV4X3VucmVn aXN0ZXJfZGV2bm9kZSgmcG9ydC0+YXV4KTsKKwogCQlwb3J0LT52Y3BpLm51bV9zbG90cyA9IDA7 CiAKIAkJa2ZyZWUocG9ydC0+Y2FjaGVkX2VkaWQpOwpAQCAtMTA5NSw2ICsxMTAyLDQ2IEBAIHN0 YXRpYyBib29sIGRybV9kcF9wb3J0X3NldHVwX3BkdChzdHJ1Y3QgZHJtX2RwX21zdF9wb3J0ICpw b3J0KQogCXJldHVybiBzZW5kX2xpbms7CiB9CiAKKy8qKgorICogZHJtX2RwX21zdF9kcGNkX3Jl YWQoKSAtIHJlYWQgYSBzZXJpZXMgb2YgYnl0ZXMgZnJvbSB0aGUgRFBDRCB2aWEgc2lkZWJhbmQK KyAqIEBhdXg6IEZha2Ugc2lkZWJhbmQgQVVYIENICisgKiBAb2Zmc2V0OiBhZGRyZXNzIG9mIHRo ZSAoZmlyc3QpIHJlZ2lzdGVyIHRvIHJlYWQKKyAqIEBidWZmZXI6IGJ1ZmZlciB0byBzdG9yZSB0 aGUgcmVnaXN0ZXIgdmFsdWVzCisgKiBAc2l6ZTogbnVtYmVyIG9mIGJ5dGVzIGluIEBidWZmZXIK KyAqCisgKiBQZXJmb3JtcyB0aGUgc2FtZSBmdW5jdGlvbmFsaXR5IGZvciByZW1vdGUgZGV2aWNl cyB2aWEKKyAqIHNpZGViYW5kIG1lc3NhZ2luZyBhcyBkcm1fZHBfZHBjZF9yZWFkKCkgZG9lcyBm b3IgbG9jYWwKKyAqIGRldmljZXMgdmlhIGFjdHVhbCBBVVggQ0guCisgKi8KK3NzaXplX3QgZHJt X2RwX21zdF9kcGNkX3JlYWQoc3RydWN0IGRybV9kcF9hdXggKmF1eCwKKwkJCSAgICAgdW5zaWdu ZWQgaW50IG9mZnNldCwgdm9pZCAqYnVmZmVyLCBzaXplX3Qgc2l6ZSkKK3sKKwlzdHJ1Y3QgZHJt X2RwX21zdF9wb3J0ICpwb3J0ID0gY29udGFpbmVyX29mKGF1eCwgc3RydWN0IGRybV9kcF9tc3Rf cG9ydCwgYXV4KTsKKworCXJldHVybiBkcm1fZHBfc2VuZF9kcGNkX3JlYWQocG9ydC0+bWdyLCBw b3J0LAorCQkJCSAgICAgb2Zmc2V0LCBzaXplLCBidWZmZXIpOworfQorCisvKioKKyAqIGRybV9k cF9tc3RfZHBjZF93cml0ZSgpIC0gd3JpdGUgYSBzZXJpZXMgb2YgYnl0ZXMgdG8gdGhlIERQQ0Qg dmlhIHNpZGViYW5kCisgKiBAYXV4OiBGYWtlIHNpZGViYW5kIEFVWCBDSAorICogQG9mZnNldDog YWRkcmVzcyBvZiB0aGUgKGZpcnN0KSByZWdpc3RlciB0byB3cml0ZQorICogQGJ1ZmZlcjogYnVm ZmVyIGNvbnRhaW5pbmcgdGhlIHZhbHVlcyB0byB3cml0ZQorICogQHNpemU6IG51bWJlciBvZiBi eXRlcyBpbiBAYnVmZmVyCisgKgorICogUGVyZm9ybXMgdGhlIHNhbWUgZnVuY3Rpb25hbGl0eSBm b3IgcmVtb3RlIGRldmljZXMgdmlhCisgKiBzaWRlYmFuZCBtZXNzYWdpbmcgYXMgZHJtX2RwX2Rw Y2Rfd3JpdGUoKSBkb2VzIGZvciBsb2NhbAorICogZGV2aWNlcyB2aWEgYWN0dWFsIEFVWCBDSC4K KyAqLworc3NpemVfdCBkcm1fZHBfbXN0X2RwY2Rfd3JpdGUoc3RydWN0IGRybV9kcF9hdXggKmF1 eCwKKwkJCSAgICAgIHVuc2lnbmVkIGludCBvZmZzZXQsIHZvaWQgKmJ1ZmZlciwgc2l6ZV90IHNp emUpCit7CisJc3RydWN0IGRybV9kcF9tc3RfcG9ydCAqcG9ydCA9IGNvbnRhaW5lcl9vZihhdXgs IHN0cnVjdCBkcm1fZHBfbXN0X3BvcnQsIGF1eCk7CisKKwlyZXR1cm4gZHJtX2RwX3NlbmRfZHBj ZF93cml0ZShwb3J0LT5tZ3IsIHBvcnQsCisJCQkJICAgICAgb2Zmc2V0LCBzaXplLCBidWZmZXIp OworfQorCiBzdGF0aWMgdm9pZCBkcm1fZHBfY2hlY2tfbXN0Yl9ndWlkKHN0cnVjdCBkcm1fZHBf bXN0X2JyYW5jaCAqbXN0YiwgdTggKmd1aWQpCiB7CiAJaW50IHJldDsKQEAgLTExNTgsNiArMTIw NSw3IEBAIHN0YXRpYyB2b2lkIGRybV9kcF9hZGRfcG9ydChzdHJ1Y3QgZHJtX2RwX21zdF9icmFu Y2ggKm1zdGIsCiAJCXBvcnQtPm1nciA9IG1zdGItPm1ncjsKIAkJcG9ydC0+YXV4Lm5hbWUgPSAi RFBNU1QiOwogCQlwb3J0LT5hdXguZGV2ID0gZGV2LT5kZXY7CisJCXBvcnQtPmF1eC5pc19yZW1v dGUgPSB0cnVlOwogCQljcmVhdGVkID0gdHJ1ZTsKIAl9IGVsc2UgewogCQlvbGRfcGR0ID0gcG9y dC0+cGR0OwpAQCAtMTE4OCw3ICsxMjM2LDcgQEAgc3RhdGljIHZvaWQgZHJtX2RwX2FkZF9wb3J0 KHN0cnVjdCBkcm1fZHBfbXN0X2JyYW5jaCAqbXN0YiwKIAkJCQlkcm1fZHBfc2VuZF9lbnVtX3Bh dGhfcmVzb3VyY2VzKG1zdGItPm1nciwgbXN0YiwgcG9ydCk7CiAJCX0gZWxzZSB7CiAJCQlwb3J0 LT5hdmFpbGFibGVfcGJuID0gMDsKLQkJCX0KKwkJfQogCX0KIAogCWlmIChvbGRfcGR0ICE9IHBv cnQtPnBkdCAmJiAhcG9ydC0+aW5wdXQpIHsKQEAgLTEyMjAsNiArMTI2OCwxNCBAQCBzdGF0aWMg dm9pZCBkcm1fZHBfYWRkX3BvcnQoc3RydWN0IGRybV9kcF9tc3RfYnJhbmNoICptc3RiLAogCQkJ ZHJtX2Nvbm5lY3Rvcl9zZXRfdGlsZV9wcm9wZXJ0eShwb3J0LT5jb25uZWN0b3IpOwogCQl9CiAJ CSgqbXN0Yi0+bWdyLT5jYnMtPnJlZ2lzdGVyX2Nvbm5lY3RvcikocG9ydC0+Y29ubmVjdG9yKTsK KworCQkvKiBQcmVwZW5kIGFuICdfJyBpbiBmcm9udCB0byBzdWZmaXggdGhlIGF1eCBkZXZpY2Ug ZmlsZW5hbWUgKi8KKwkJbWVtbW92ZShwcm9wcGF0aCArIDEsIHByb3BwYXRoLCBzaXplb2YocHJv cHBhdGgpIC0gMSk7CisJCXByb3BwYXRoWzBdID0gJ18nOworCisJCS8qIE9ubHkgY3JlYXRlIGF1 eCBkZXZpY2VzIGZvciBwaHlzaWNhbCBwb3J0cyB3aXRoIGEgVFggb3IgUlgqLworCQlpZiAocG9y dC0+cG9ydF9udW0gPCBEUF9NU1RfTE9HSUNBTF9QT1JUXzApCisJCQlkcm1fZHBfYXV4X3JlZ2lz dGVyX2Rldm5vZGUoJnBvcnQtPmF1eCwgcHJvcHBhdGgpOwogCX0KIAogb3V0OgpAQCAtMTQwNCw3 ICsxNDYwLDYgQEAgc3RhdGljIGJvb2wgZHJtX2RwX3ZhbGlkYXRlX2d1aWQoc3RydWN0IGRybV9k cF9tc3RfdG9wb2xvZ3lfbWdyICptZ3IsCiAJcmV0dXJuIGZhbHNlOwogfQogCi0jaWYgMAogc3Rh dGljIGludCBidWlsZF9kcGNkX3JlYWQoc3RydWN0IGRybV9kcF9zaWRlYmFuZF9tc2dfdHggKm1z ZywgdTggcG9ydF9udW0sIHUzMiBvZmZzZXQsIHU4IG51bV9ieXRlcykKIHsKIAlzdHJ1Y3QgZHJt X2RwX3NpZGViYW5kX21zZ19yZXFfYm9keSByZXE7CkBAIC0xNDE3LDcgKzE0NzIsNiBAQCBzdGF0 aWMgaW50IGJ1aWxkX2RwY2RfcmVhZChzdHJ1Y3QgZHJtX2RwX3NpZGViYW5kX21zZ190eCAqbXNn LCB1OCBwb3J0X251bSwgdTMyCiAKIAlyZXR1cm4gMDsKIH0KLSNlbmRpZgogCiBzdGF0aWMgaW50 IGRybV9kcF9zZW5kX3NpZGViYW5kX21zZyhzdHJ1Y3QgZHJtX2RwX21zdF90b3BvbG9neV9tZ3Ig Km1nciwKIAkJCQkgICAgYm9vbCB1cCwgdTggKm1zZywgaW50IGxlbikKQEAgLTE5OTQsMjYgKzIw NDgsNTUgQEAgaW50IGRybV9kcF91cGRhdGVfcGF5bG9hZF9wYXJ0MihzdHJ1Y3QgZHJtX2RwX21z dF90b3BvbG9neV9tZ3IgKm1ncikKIH0KIEVYUE9SVF9TWU1CT0woZHJtX2RwX3VwZGF0ZV9wYXls b2FkX3BhcnQyKTsKIAotI2lmIDAgLyogdW51c2VkIGFzIG9mIHlldCAqLwogc3RhdGljIGludCBk cm1fZHBfc2VuZF9kcGNkX3JlYWQoc3RydWN0IGRybV9kcF9tc3RfdG9wb2xvZ3lfbWdyICptZ3Is CiAJCQkJIHN0cnVjdCBkcm1fZHBfbXN0X3BvcnQgKnBvcnQsCi0JCQkJIGludCBvZmZzZXQsIGlu dCBzaXplKQorCQkJCSBpbnQgb2Zmc2V0LCBpbnQgc2l6ZSwgdTggKmJ5dGVzKQogewogCWludCBs ZW47CisJaW50IHJldCA9IDA7CiAJc3RydWN0IGRybV9kcF9zaWRlYmFuZF9tc2dfdHggKnR4bXNn OworCXN0cnVjdCBkcm1fZHBfbXN0X2JyYW5jaCAqbXN0YjsKKworCW1zdGIgPSBkcm1fZHBfZ2V0 X3ZhbGlkYXRlZF9tc3RiX3JlZihtZ3IsIHBvcnQtPnBhcmVudCk7CisJaWYgKCFtc3RiKQorCQly ZXR1cm4gLUVJTlZBTDsKIAogCXR4bXNnID0ga3phbGxvYyhzaXplb2YoKnR4bXNnKSwgR0ZQX0tF Uk5FTCk7Ci0JaWYgKCF0eG1zZykKLQkJcmV0dXJuIC1FTk9NRU07CisJaWYgKCF0eG1zZykgewor CQlyZXQgPSAtRU5PTUVNOworCQlnb3RvIGZhaWxfcHV0OworCX0KIAotCWxlbiA9IGJ1aWxkX2Rw Y2RfcmVhZCh0eG1zZywgcG9ydC0+cG9ydF9udW0sIDAsIDgpOworCWxlbiA9IGJ1aWxkX2RwY2Rf cmVhZCh0eG1zZywgcG9ydC0+cG9ydF9udW0sIG9mZnNldCwgc2l6ZSk7CiAJdHhtc2ctPmRzdCA9 IHBvcnQtPnBhcmVudDsKIAogCWRybV9kcF9xdWV1ZV9kb3duX3R4KG1nciwgdHhtc2cpOwogCi0J cmV0dXJuIDA7CisJcmV0ID0gZHJtX2RwX21zdF93YWl0X3R4X3JlcGx5KG1zdGIsIHR4bXNnKTsK KwlpZiAocmV0IDwgMCkKKwkJZ290byBmYWlsX2ZyZWU7CisKKwkvKiBEUENEIHJlYWQgc2hvdWxk IG5ldmVyIGJlIE5BQ0tlZCAqLworCWlmIChXQVJOX09OX09OQ0UodHhtc2ctPnJlcGx5LnJlcGx5 X3R5cGUgPT0gMSkpIHsKKwkJcmV0ID0gLUVJTzsKKwkJZ290byBmYWlsX2ZyZWU7CisJfQorCisJ aWYgKHR4bXNnLT5yZXBseS51LnJlbW90ZV9kcGNkX3JlYWRfYWNrLm51bV9ieXRlcyAhPSBzaXpl KSB7CisJCXJldCA9IC1FUFJPVE87CisJCWdvdG8gZmFpbF9mcmVlOworCX0KKworCXJldCA9IG1p bl90KHNpemVfdCwgdHhtc2ctPnJlcGx5LnUucmVtb3RlX2RwY2RfcmVhZF9hY2subnVtX2J5dGVz LCBzaXplKTsKKwltZW1jcHkoYnl0ZXMsIHR4bXNnLT5yZXBseS51LnJlbW90ZV9kcGNkX3JlYWRf YWNrLmJ5dGVzLCByZXQpOworCitmYWlsX2ZyZWU6CisJa2ZyZWUodHhtc2cpOworZmFpbF9wdXQ6 CisJZHJtX2RwX3B1dF9tc3RfYnJhbmNoX2RldmljZShtc3RiKTsKKworCXJldHVybiByZXQ7CiB9 Ci0jZW5kaWYKIAogc3RhdGljIGludCBkcm1fZHBfc2VuZF9kcGNkX3dyaXRlKHN0cnVjdCBkcm1f ZHBfbXN0X3RvcG9sb2d5X21nciAqbWdyLAogCQkJCSAgc3RydWN0IGRybV9kcF9tc3RfcG9ydCAq cG9ydCwKQEAgLTIwNDEsOSArMjEyNCw5IEBAIHN0YXRpYyBpbnQgZHJtX2RwX3NlbmRfZHBjZF93 cml0ZShzdHJ1Y3QgZHJtX2RwX21zdF90b3BvbG9neV9tZ3IgKm1nciwKIAogCXJldCA9IGRybV9k cF9tc3Rfd2FpdF90eF9yZXBseShtc3RiLCB0eG1zZyk7CiAJaWYgKHJldCA+IDApIHsKLQkJaWYg KHR4bXNnLT5yZXBseS5yZXBseV90eXBlID09IDEpIHsKLQkJCXJldCA9IC1FSU5WQUw7Ci0JCX0g ZWxzZQorCQlpZiAodHhtc2ctPnJlcGx5LnJlcGx5X3R5cGUgPT0gMSkKKwkJCXJldCA9IC1FSU87 CisJCWVsc2UKIAkJCXJldCA9IDA7CiAJfQogCWtmcmVlKHR4bXNnKTsKZGlmZiAtLWdpdCBhL2lu Y2x1ZGUvZHJtL2RybV9kcF9oZWxwZXIuaCBiL2luY2x1ZGUvZHJtL2RybV9kcF9oZWxwZXIuaApp bmRleCA1MDk2NjdlLi42ZGVhNzZhIDEwMDY0NAotLS0gYS9pbmNsdWRlL2RybS9kcm1fZHBfaGVs cGVyLmgKKysrIGIvaW5jbHVkZS9kcm0vZHJtX2RwX2hlbHBlci5oCkBAIC0xMjY1LDYgKzEyNjUs MTAgQEAgc3RydWN0IGRybV9kcF9hdXggewogCSAqIEBjZWM6IHN0cnVjdCBjb250YWluaW5nIGZp ZWxkcyB1c2VkIGZvciBDRUMtVHVubmVsaW5nLW92ZXItQVVYLgogCSAqLwogCXN0cnVjdCBkcm1f ZHBfYXV4X2NlYyBjZWM7CisJLyoqCisJICogQGlzX3JlbW90ZTogSXMgdGhpcyAiQVVYIENIIiBh Y3R1YWxseSB1c2luZyBzaWRlYmFuZCBtZXNzYWdpbmcuCisJICovCisJYm9vbCBpc19yZW1vdGU7 CiB9OwogCiBzc2l6ZV90IGRybV9kcF9kcGNkX3JlYWQoc3RydWN0IGRybV9kcF9hdXggKmF1eCwg dW5zaWduZWQgaW50IG9mZnNldCwKZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJtL2RybV9kcF9tc3Rf aGVscGVyLmggYi9pbmNsdWRlL2RybS9kcm1fZHBfbXN0X2hlbHBlci5oCmluZGV4IDM3MWNjMjgu LjMwZjhjMTEgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvZHJtL2RybV9kcF9tc3RfaGVscGVyLmgKKysr IGIvaW5jbHVkZS9kcm0vZHJtX2RwX21zdF9oZWxwZXIuaApAQCAtNjE1LDYgKzYxNSwxMiBAQCB2 b2lkIGRybV9kcF9tc3RfZHVtcF90b3BvbG9neShzdHJ1Y3Qgc2VxX2ZpbGUgKm0sCiAKIHZvaWQg ZHJtX2RwX21zdF90b3BvbG9neV9tZ3Jfc3VzcGVuZChzdHJ1Y3QgZHJtX2RwX21zdF90b3BvbG9n eV9tZ3IgKm1ncik7CiBpbnQgZHJtX2RwX21zdF90b3BvbG9neV9tZ3JfcmVzdW1lKHN0cnVjdCBk cm1fZHBfbXN0X3RvcG9sb2d5X21nciAqbWdyKTsKKworc3NpemVfdCBkcm1fZHBfbXN0X2RwY2Rf cmVhZChzdHJ1Y3QgZHJtX2RwX2F1eCAqYXV4LAorCQkJICAgICB1bnNpZ25lZCBpbnQgb2Zmc2V0 LCB2b2lkICpidWZmZXIsIHNpemVfdCBzaXplKTsKK3NzaXplX3QgZHJtX2RwX21zdF9kcGNkX3dy aXRlKHN0cnVjdCBkcm1fZHBfYXV4ICphdXgsCisJCQkgICAgICB1bnNpZ25lZCBpbnQgb2Zmc2V0 LCB2b2lkICpidWZmZXIsIHNpemVfdCBzaXplKTsKKwogc3RydWN0IGRybV9kcF9tc3RfdG9wb2xv Z3lfc3RhdGUgKmRybV9hdG9taWNfZ2V0X21zdF90b3BvbG9neV9zdGF0ZShzdHJ1Y3QgZHJtX2F0 b21pY19zdGF0ZSAqc3RhdGUsCiAJCQkJCQkJCSAgICBzdHJ1Y3QgZHJtX2RwX21zdF90b3BvbG9n eV9tZ3IgKm1ncik7CiBpbnQgZHJtX2RwX2F0b21pY19maW5kX3ZjcGlfc2xvdHMoc3RydWN0IGRy bV9hdG9taWNfc3RhdGUgKnN0YXRlLAotLSAKMi43LjQKCl9fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fCmFtZC1nZnggbWFpbGluZyBsaXN0CmFtZC1nZnhAbGlz dHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4v bGlzdGluZm8vYW1kLWdmeA==