From mboxrd@z Thu Jan 1 00:00:00 1970 From: Subject: [PATCH 2/7] drm/dp_mst: Register AUX devices for MST ports Date: Thu, 16 May 2019 11:17:58 -0400 Message-ID: <1558019883-12397-3-git-send-email-sunpeng.li@amd.com> References: <1558019883-12397-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: <1558019883-12397-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 , =?UTF-8?q?Ville=20Syrj=C3=A4l=C3=A4?= RnJvbTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KCkFs bCBhdmFpbGFibGUgZG93bnN0cmVhbSBwb3J0cyAtIHBoeXNpY2FsIGFuZCBsb2dpY2FsIC0gYXJl IGV4cG9zZWQgZm9yCmVhY2ggTVNUIGRldmljZS4gVGhleSBhcmUgbGlzdGVkIGluIC9kZXYvLCBm b2xsb3dpbmcgdGhlIHNhbWUgbmFtaW5nCnNjaGVtZSBhcyBTU1QgZGV2aWNlcyBieSBhcHBlbmRp bmcgYW4gaW5jcmVtZW50YWwgSUQuCgpBbHRob3VnaCBhbGwgZG93bnN0cmVhbSBwb3J0cyBhcmUg ZXhwb3NlZCwgb25seSBzb21lIHdpbGwgd29yayBhcwpleHBlY3RlZC4gQ29uc2lkZXIgdGhlIGZv bGxvd2luZyB0b3BvbG9neToKCiAgICAgICAgICAgICAgICstLS0tLS0tLS0rCiAgICAgICAgICAg ICAgIHwgIEFTSUMgICB8CiAgICAgICAgICAgICAgICstLS0tLS0tLS0rCiAgICAgICAgICAgICAg Q29ubi0wfAogICAgICAgICAgICAgICAgICAgIHwKICAgICAgICAgICAgICAgKy0tLS12LS0tLSsK ICAgICAgICAgICstLS0tfCBNU1QgSFVCIHwtLS0tKwogICAgICAgICAgfCAgICArLS0tLS0tLS0t KyAgICB8CiAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgIHwKICAgICAgICAgIHxQb3J0LTEg ICAgICAgUG9ydC0yfAogICAgKy0tLS0tdi0tLS0tKyAgICAgICArLS0tLS12LS0tLS0rCiAgICB8 ICBNU1QgICAgICB8ICAgICAgIHwgIFNTVCAgICAgIHwKICAgIHwgIERpc3BsYXkgIHwgICAgICAg fCAgRGlzcGxheSAgfAogICAgKy0tLS0tLS0tLS0tKyAgICAgICArLS0tLS0tLS0tLS0rCiAgICAg ICAgICB8UG9ydC0xCiAgICAgICAgICB4CgogTVNUIFBhdGggIHwgTVNUIERldmljZQogLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBzc3Q6MCAgICAgfCBNU1Qg SHViCiBtc3Q6MC0xICAgfCBNU1QgRGlzcGxheQogbXN0OjAtMS0xIHwgTVNUIERpc3BsYXkncyBk aXNjb25uZWN0ZWQgRFAgb3V0CiBtc3Q6MC0xLTggfCBNU1QgRGlzcGxheSdzIGludGVybmFsIHNp bmsKIG1zdDowLTIgICB8IFNTVCBEaXNwbGF5CgpPbiBjZXJ0YWluIE1TVCBkaXNwbGF5cywgdGhl IHVwc3RyZWFtIHBoeXNpY2FsIHBvcnQgd2lsbCBBQ0sgRFBDRCByZWFkcy4KSG93ZXZlciwgcmVh ZHMgb24gdGhlIGxvY2FsIGxvZ2ljYWwgcG9ydCB0byB0aGUgaW50ZXJuYWwgc2luayB3aWxsCipO QUsqLiBpLmUuIHJlYWRpbmcgbXN0OjAtMSBBQ0tzLCBidXQgbXN0OjAtMS04IE5BS3MuCgpUaGVy ZSBtYXkgYWxzbyBiZSBkdXBsaWNhdGVzLiBTb21lIGRpc3BsYXlzIHdpbGwgcmV0dXJuIHRoZSBz YW1lIEdVSUQKd2hlbiByZWFkaW5nIERQQ0QgZnJvbSBib3RoIG1zdDowLTEgYW5kIG1zdDowLTEt OC4KClRoZXJlIGFyZSBzb21lIGRldmljZS1kZXBlbmRlbnQgYmVoYXZpb3IgYXMgd2VsbC4gVGhl IE1TVCBodWIgdXNlZApkdXJpbmcgdGVzdGluZyB3aWxsIGFjdHVhbGx5ICpBQ0sqIHJlYWQgcmVx dWVzdHMgb24gYSBkaXNjb25uZWN0ZWQKcGh5c2ljYWwgcG9ydCwgd2hlcmVhcyB0aGUgTVNUIGRp c3BsYXlzIHdpbGwgTkFLLgoKSW4gbGlnaHQgb2YgdGhlc2UgZGlzY3JlcGFuY2llcywgaXQncyBz aW1wbGVyIHRvIGV4cG9zZSBhbGwgZG93bnN0cmVhbQpwb3J0cyAtIGJvdGggcGh5c2ljYWwgYW5k IGxvZ2ljYWwgLSBhbmQgbGV0IHRoZSB1c2VyIGRlY2lkZSB3aGF0IHRvIHVzZS4KCkNjOiBMeXVk ZSBQYXVsIDxseXVkZUByZWRoYXQuY29tPgpTaWduZWQtb2ZmLWJ5OiBWaWxsZSBTeXJqw6Rsw6Qg PHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBMZW8gTGkgPHN1 bnBlbmcubGlAYW1kLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vZHJtX2RwX2F1eF9kZXYuYyAg ICAgIHwgIDE0ICsrKystCiBkcml2ZXJzL2dwdS9kcm0vZHJtX2RwX21zdF90b3BvbG9neS5jIHwg MTAzICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0KIGluY2x1ZGUvZHJtL2RybV9k cF9oZWxwZXIuaCAgICAgICAgICAgfCAgIDQgKysKIGluY2x1ZGUvZHJtL2RybV9kcF9tc3RfaGVs cGVyLmggICAgICAgfCAgIDYgKysKIDQgZmlsZXMgY2hhbmdlZCwgMTEyIGluc2VydGlvbnMoKyks IDE1IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fZHBfYXV4 X2Rldi5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9kcF9hdXhfZGV2LmMKaW5kZXggNmQ4NDYxMS4u MDFjMDJiOSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9kcF9hdXhfZGV2LmMKKysr IGIvZHJpdmVycy9ncHUvZHJtL2RybV9kcF9hdXhfZGV2LmMKQEAgLTM0LDYgKzM0LDcgQEAKICNp bmNsdWRlIDxsaW51eC91YWNjZXNzLmg+CiAjaW5jbHVkZSA8bGludXgvdWlvLmg+CiAjaW5jbHVk ZSA8ZHJtL2RybV9kcF9oZWxwZXIuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX2RwX21zdF9oZWxwZXIu aD4KICNpbmNsdWRlIDxkcm0vZHJtX2NydGMuaD4KICNpbmNsdWRlIDxkcm0vZHJtUC5oPgogCkBA IC0xMTQsNiArMTE1LDcgQEAgc3RhdGljIHNzaXplX3QgbmFtZV9zaG93KHN0cnVjdCBkZXZpY2Ug KmRldiwKIAogCXJldHVybiByZXM7CiB9CisKIHN0YXRpYyBERVZJQ0VfQVRUUl9STyhuYW1lKTsK IAogc3RhdGljIHN0cnVjdCBhdHRyaWJ1dGUgKmRybV9kcF9hdXhfYXR0cnNbXSA9IHsKQEAgLTE2 MCw3ICsxNjIsMTEgQEAgc3RhdGljIHNzaXplX3QgYXV4ZGV2X3JlYWRfaXRlcihzdHJ1Y3Qga2lv Y2IgKmlvY2IsIHN0cnVjdCBpb3ZfaXRlciAqdG8pCiAJCQlicmVhazsKIAkJfQogCi0JCXJlcyA9 IGRybV9kcF9kcGNkX3JlYWQoYXV4X2Rldi0+YXV4LCBwb3MsIGJ1ZiwgdG9kbyk7CisJCWlmIChh dXhfZGV2LT5hdXgtPmlzX3JlbW90ZSkKKwkJCXJlcyA9IGRybV9kcF9tc3RfZHBjZF9yZWFkKGF1 eF9kZXYtPmF1eCwgcG9zLCBidWYsIHRvZG8pOworCQllbHNlCisJCQlyZXMgPSBkcm1fZHBfZHBj ZF9yZWFkKGF1eF9kZXYtPmF1eCwgcG9zLCBidWYsIHRvZG8pOworCiAJCWlmIChyZXMgPD0gMCkK IAkJCWJyZWFrOwogCkBAIC0yMDcsNyArMjEzLDExIEBAIHN0YXRpYyBzc2l6ZV90IGF1eGRldl93 cml0ZV9pdGVyKHN0cnVjdCBraW9jYiAqaW9jYiwgc3RydWN0IGlvdl9pdGVyICpmcm9tKQogCQkJ YnJlYWs7CiAJCX0KIAotCQlyZXMgPSBkcm1fZHBfZHBjZF93cml0ZShhdXhfZGV2LT5hdXgsIHBv cywgYnVmLCB0b2RvKTsKKwkJaWYgKGF1eF9kZXYtPmF1eC0+aXNfcmVtb3RlKQorCQkJcmVzID0g ZHJtX2RwX21zdF9kcGNkX3dyaXRlKGF1eF9kZXYtPmF1eCwgcG9zLCBidWYsIHRvZG8pOworCQll bHNlCisJCQlyZXMgPSBkcm1fZHBfZHBjZF93cml0ZShhdXhfZGV2LT5hdXgsIHBvcywgYnVmLCB0 b2RvKTsKKwogCQlpZiAocmVzIDw9IDApCiAJCQlicmVhazsKIApkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2RybV9kcF9tc3RfdG9wb2xvZ3kuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fZHBf bXN0X3RvcG9sb2d5LmMKaW5kZXggMmFiMTZjOS4uNTRkYTY4ZSAxMDA2NDQKLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2RybV9kcF9tc3RfdG9wb2xvZ3kuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJt X2RwX21zdF90b3BvbG9neS5jCkBAIC0zNSw2ICszNSw4IEBACiAjaW5jbHVkZSA8ZHJtL2RybV9h dG9taWNfaGVscGVyLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9jcnRjX2hlbHBlci5oPgogCisjaW5j bHVkZSAiZHJtX2NydGNfaGVscGVyX2ludGVybmFsLmgiCisKIC8qKgogICogRE9DOiBkcCBtc3Qg aGVscGVyCiAgKgpAQCAtNTIsNiArNTQsOSBAQCBzdGF0aWMgaW50IGRybV9kcF9kcGNkX3dyaXRl X3BheWxvYWQoc3RydWN0IGRybV9kcF9tc3RfdG9wb2xvZ3lfbWdyICptZ3IsCiAJCQkJICAgICBp bnQgaWQsCiAJCQkJICAgICBzdHJ1Y3QgZHJtX2RwX3BheWxvYWQgKnBheWxvYWQpOwogCitzdGF0 aWMgaW50IGRybV9kcF9zZW5kX2RwY2RfcmVhZChzdHJ1Y3QgZHJtX2RwX21zdF90b3BvbG9neV9t Z3IgKm1nciwKKwkJCQkgc3RydWN0IGRybV9kcF9tc3RfcG9ydCAqcG9ydCwKKwkJCQkgaW50IG9m ZnNldCwgaW50IHNpemUsIHU4ICpieXRlcyk7CiBzdGF0aWMgaW50IGRybV9kcF9zZW5kX2RwY2Rf d3JpdGUoc3RydWN0IGRybV9kcF9tc3RfdG9wb2xvZ3lfbWdyICptZ3IsCiAJCQkJICBzdHJ1Y3Qg ZHJtX2RwX21zdF9wb3J0ICpwb3J0LAogCQkJCSAgaW50IG9mZnNldCwgaW50IHNpemUsIHU4ICpi eXRlcyk7CkBAIC05NDEsNiArOTQ2LDggQEAgc3RhdGljIHZvaWQgZHJtX2RwX2Rlc3Ryb3lfcG9y dChzdHJ1Y3Qga3JlZiAqa3JlZikKIAlzdHJ1Y3QgZHJtX2RwX21zdF90b3BvbG9neV9tZ3IgKm1n ciA9IHBvcnQtPm1ncjsKIAogCWlmICghcG9ydC0+aW5wdXQpIHsKKwkJZHJtX2RwX2F1eF91bnJl Z2lzdGVyX2Rldm5vZGUoJnBvcnQtPmF1eCk7CisKIAkJcG9ydC0+dmNwaS5udW1fc2xvdHMgPSAw OwogCiAJCWtmcmVlKHBvcnQtPmNhY2hlZF9lZGlkKTsKQEAgLTEwOTUsNiArMTEwMiw0NiBAQCBz dGF0aWMgYm9vbCBkcm1fZHBfcG9ydF9zZXR1cF9wZHQoc3RydWN0IGRybV9kcF9tc3RfcG9ydCAq cG9ydCkKIAlyZXR1cm4gc2VuZF9saW5rOwogfQogCisvKioKKyAqIGRybV9kcF9tc3RfZHBjZF9y ZWFkKCkgLSByZWFkIGEgc2VyaWVzIG9mIGJ5dGVzIGZyb20gdGhlIERQQ0QgdmlhIHNpZGViYW5k CisgKiBAYXV4OiBGYWtlIHNpZGViYW5kIEFVWCBDSAorICogQG9mZnNldDogYWRkcmVzcyBvZiB0 aGUgKGZpcnN0KSByZWdpc3RlciB0byByZWFkCisgKiBAYnVmZmVyOiBidWZmZXIgdG8gc3RvcmUg dGhlIHJlZ2lzdGVyIHZhbHVlcworICogQHNpemU6IG51bWJlciBvZiBieXRlcyBpbiBAYnVmZmVy CisgKgorICogUGVyZm9ybXMgdGhlIHNhbWUgZnVuY3Rpb25hbGl0eSBmb3IgcmVtb3RlIGRldmlj ZXMgdmlhCisgKiBzaWRlYmFuZCBtZXNzYWdpbmcgYXMgZHJtX2RwX2RwY2RfcmVhZCgpIGRvZXMg Zm9yIGxvY2FsCisgKiBkZXZpY2VzIHZpYSBhY3R1YWwgQVVYIENILgorICovCitzc2l6ZV90IGRy bV9kcF9tc3RfZHBjZF9yZWFkKHN0cnVjdCBkcm1fZHBfYXV4ICphdXgsCisJCQkgICAgIHVuc2ln bmVkIGludCBvZmZzZXQsIHZvaWQgKmJ1ZmZlciwgc2l6ZV90IHNpemUpCit7CisJc3RydWN0IGRy bV9kcF9tc3RfcG9ydCAqcG9ydCA9IGNvbnRhaW5lcl9vZihhdXgsIHN0cnVjdCBkcm1fZHBfbXN0 X3BvcnQsIGF1eCk7CisKKwlyZXR1cm4gZHJtX2RwX3NlbmRfZHBjZF9yZWFkKHBvcnQtPm1nciwg cG9ydCwKKwkJCQkgICAgIG9mZnNldCwgc2l6ZSwgYnVmZmVyKTsKK30KKworLyoqCisgKiBkcm1f ZHBfbXN0X2RwY2Rfd3JpdGUoKSAtIHdyaXRlIGEgc2VyaWVzIG9mIGJ5dGVzIHRvIHRoZSBEUENE IHZpYSBzaWRlYmFuZAorICogQGF1eDogRmFrZSBzaWRlYmFuZCBBVVggQ0gKKyAqIEBvZmZzZXQ6 IGFkZHJlc3Mgb2YgdGhlIChmaXJzdCkgcmVnaXN0ZXIgdG8gd3JpdGUKKyAqIEBidWZmZXI6IGJ1 ZmZlciBjb250YWluaW5nIHRoZSB2YWx1ZXMgdG8gd3JpdGUKKyAqIEBzaXplOiBudW1iZXIgb2Yg Ynl0ZXMgaW4gQGJ1ZmZlcgorICoKKyAqIFBlcmZvcm1zIHRoZSBzYW1lIGZ1bmN0aW9uYWxpdHkg Zm9yIHJlbW90ZSBkZXZpY2VzIHZpYQorICogc2lkZWJhbmQgbWVzc2FnaW5nIGFzIGRybV9kcF9k cGNkX3dyaXRlKCkgZG9lcyBmb3IgbG9jYWwKKyAqIGRldmljZXMgdmlhIGFjdHVhbCBBVVggQ0gu CisgKi8KK3NzaXplX3QgZHJtX2RwX21zdF9kcGNkX3dyaXRlKHN0cnVjdCBkcm1fZHBfYXV4ICph dXgsCisJCQkgICAgICB1bnNpZ25lZCBpbnQgb2Zmc2V0LCB2b2lkICpidWZmZXIsIHNpemVfdCBz aXplKQoreworCXN0cnVjdCBkcm1fZHBfbXN0X3BvcnQgKnBvcnQgPSBjb250YWluZXJfb2YoYXV4 LCBzdHJ1Y3QgZHJtX2RwX21zdF9wb3J0LCBhdXgpOworCisJcmV0dXJuIGRybV9kcF9zZW5kX2Rw Y2Rfd3JpdGUocG9ydC0+bWdyLCBwb3J0LAorCQkJCSAgICAgIG9mZnNldCwgc2l6ZSwgYnVmZmVy KTsKK30KKwogc3RhdGljIHZvaWQgZHJtX2RwX2NoZWNrX21zdGJfZ3VpZChzdHJ1Y3QgZHJtX2Rw X21zdF9icmFuY2ggKm1zdGIsIHU4ICpndWlkKQogewogCWludCByZXQ7CkBAIC0xMTU4LDYgKzEy MDUsNyBAQCBzdGF0aWMgdm9pZCBkcm1fZHBfYWRkX3BvcnQoc3RydWN0IGRybV9kcF9tc3RfYnJh bmNoICptc3RiLAogCQlwb3J0LT5tZ3IgPSBtc3RiLT5tZ3I7CiAJCXBvcnQtPmF1eC5uYW1lID0g IkRQTVNUIjsKIAkJcG9ydC0+YXV4LmRldiA9IGRldi0+ZGV2OworCQlwb3J0LT5hdXguaXNfcmVt b3RlID0gdHJ1ZTsKIAkJY3JlYXRlZCA9IHRydWU7CiAJfSBlbHNlIHsKIAkJb2xkX3BkdCA9IHBv cnQtPnBkdDsKQEAgLTExODgsNyArMTIzNiw3IEBAIHN0YXRpYyB2b2lkIGRybV9kcF9hZGRfcG9y dChzdHJ1Y3QgZHJtX2RwX21zdF9icmFuY2ggKm1zdGIsCiAJCQkJZHJtX2RwX3NlbmRfZW51bV9w YXRoX3Jlc291cmNlcyhtc3RiLT5tZ3IsIG1zdGIsIHBvcnQpOwogCQl9IGVsc2UgewogCQkJcG9y dC0+YXZhaWxhYmxlX3BibiA9IDA7Ci0JCQl9CisJCX0KIAl9CiAKIAlpZiAob2xkX3BkdCAhPSBw b3J0LT5wZHQgJiYgIXBvcnQtPmlucHV0KSB7CkBAIC0xMjIwLDYgKzEyNjgsOCBAQCBzdGF0aWMg dm9pZCBkcm1fZHBfYWRkX3BvcnQoc3RydWN0IGRybV9kcF9tc3RfYnJhbmNoICptc3RiLAogCQkJ ZHJtX2Nvbm5lY3Rvcl9zZXRfdGlsZV9wcm9wZXJ0eShwb3J0LT5jb25uZWN0b3IpOwogCQl9CiAJ CSgqbXN0Yi0+bWdyLT5jYnMtPnJlZ2lzdGVyX2Nvbm5lY3RvcikocG9ydC0+Y29ubmVjdG9yKTsK KworCQlkcm1fZHBfYXV4X3JlZ2lzdGVyX2Rldm5vZGUoJnBvcnQtPmF1eCk7CiAJfQogCiBvdXQ6 CkBAIC0xNDA0LDcgKzE0NTQsNiBAQCBzdGF0aWMgYm9vbCBkcm1fZHBfdmFsaWRhdGVfZ3VpZChz dHJ1Y3QgZHJtX2RwX21zdF90b3BvbG9neV9tZ3IgKm1nciwKIAlyZXR1cm4gZmFsc2U7CiB9CiAK LSNpZiAwCiBzdGF0aWMgaW50IGJ1aWxkX2RwY2RfcmVhZChzdHJ1Y3QgZHJtX2RwX3NpZGViYW5k X21zZ190eCAqbXNnLCB1OCBwb3J0X251bSwgdTMyIG9mZnNldCwgdTggbnVtX2J5dGVzKQogewog CXN0cnVjdCBkcm1fZHBfc2lkZWJhbmRfbXNnX3JlcV9ib2R5IHJlcTsKQEAgLTE0MTcsNyArMTQ2 Niw2IEBAIHN0YXRpYyBpbnQgYnVpbGRfZHBjZF9yZWFkKHN0cnVjdCBkcm1fZHBfc2lkZWJhbmRf bXNnX3R4ICptc2csIHU4IHBvcnRfbnVtLCB1MzIKIAogCXJldHVybiAwOwogfQotI2VuZGlmCiAK IHN0YXRpYyBpbnQgZHJtX2RwX3NlbmRfc2lkZWJhbmRfbXNnKHN0cnVjdCBkcm1fZHBfbXN0X3Rv cG9sb2d5X21nciAqbWdyLAogCQkJCSAgICBib29sIHVwLCB1OCAqbXNnLCBpbnQgbGVuKQpAQCAt MTk5NCwyNiArMjA0Miw1NSBAQCBpbnQgZHJtX2RwX3VwZGF0ZV9wYXlsb2FkX3BhcnQyKHN0cnVj dCBkcm1fZHBfbXN0X3RvcG9sb2d5X21nciAqbWdyKQogfQogRVhQT1JUX1NZTUJPTChkcm1fZHBf dXBkYXRlX3BheWxvYWRfcGFydDIpOwogCi0jaWYgMCAvKiB1bnVzZWQgYXMgb2YgeWV0ICovCiBz dGF0aWMgaW50IGRybV9kcF9zZW5kX2RwY2RfcmVhZChzdHJ1Y3QgZHJtX2RwX21zdF90b3BvbG9n eV9tZ3IgKm1nciwKIAkJCQkgc3RydWN0IGRybV9kcF9tc3RfcG9ydCAqcG9ydCwKLQkJCQkgaW50 IG9mZnNldCwgaW50IHNpemUpCisJCQkJIGludCBvZmZzZXQsIGludCBzaXplLCB1OCAqYnl0ZXMp CiB7CiAJaW50IGxlbjsKKwlpbnQgcmV0ID0gMDsKIAlzdHJ1Y3QgZHJtX2RwX3NpZGViYW5kX21z Z190eCAqdHhtc2c7CisJc3RydWN0IGRybV9kcF9tc3RfYnJhbmNoICptc3RiOworCisJbXN0YiA9 IGRybV9kcF9nZXRfdmFsaWRhdGVkX21zdGJfcmVmKG1nciwgcG9ydC0+cGFyZW50KTsKKwlpZiAo IW1zdGIpCisJCXJldHVybiAtRUlOVkFMOwogCiAJdHhtc2cgPSBremFsbG9jKHNpemVvZigqdHht c2cpLCBHRlBfS0VSTkVMKTsKLQlpZiAoIXR4bXNnKQotCQlyZXR1cm4gLUVOT01FTTsKKwlpZiAo IXR4bXNnKSB7CisJCXJldCA9IC1FTk9NRU07CisJCWdvdG8gZmFpbF9wdXQ7CisJfQogCi0JbGVu ID0gYnVpbGRfZHBjZF9yZWFkKHR4bXNnLCBwb3J0LT5wb3J0X251bSwgMCwgOCk7CisJbGVuID0g YnVpbGRfZHBjZF9yZWFkKHR4bXNnLCBwb3J0LT5wb3J0X251bSwgb2Zmc2V0LCBzaXplKTsKIAl0 eG1zZy0+ZHN0ID0gcG9ydC0+cGFyZW50OwogCiAJZHJtX2RwX3F1ZXVlX2Rvd25fdHgobWdyLCB0 eG1zZyk7CiAKLQlyZXR1cm4gMDsKKwlyZXQgPSBkcm1fZHBfbXN0X3dhaXRfdHhfcmVwbHkobXN0 YiwgdHhtc2cpOworCWlmIChyZXQgPCAwKQorCQlnb3RvIGZhaWxfZnJlZTsKKworCS8qIERQQ0Qg cmVhZCBzaG91bGQgbmV2ZXIgYmUgTkFDS2VkICovCisJaWYgKFdBUk5fT05fT05DRSh0eG1zZy0+ cmVwbHkucmVwbHlfdHlwZSA9PSAxKSkgeworCQlyZXQgPSAtRUlPOworCQlnb3RvIGZhaWxfZnJl ZTsKKwl9CisKKwlpZiAodHhtc2ctPnJlcGx5LnUucmVtb3RlX2RwY2RfcmVhZF9hY2subnVtX2J5 dGVzICE9IHNpemUpIHsKKwkJcmV0ID0gLUVQUk9UTzsKKwkJZ290byBmYWlsX2ZyZWU7CisJfQor CisJcmV0ID0gbWluX3Qoc2l6ZV90LCB0eG1zZy0+cmVwbHkudS5yZW1vdGVfZHBjZF9yZWFkX2Fj ay5udW1fYnl0ZXMsIHNpemUpOworCW1lbWNweShieXRlcywgdHhtc2ctPnJlcGx5LnUucmVtb3Rl X2RwY2RfcmVhZF9hY2suYnl0ZXMsIHJldCk7CisKK2ZhaWxfZnJlZToKKwlrZnJlZSh0eG1zZyk7 CitmYWlsX3B1dDoKKwlkcm1fZHBfcHV0X21zdF9icmFuY2hfZGV2aWNlKG1zdGIpOworCisJcmV0 dXJuIHJldDsKIH0KLSNlbmRpZgogCiBzdGF0aWMgaW50IGRybV9kcF9zZW5kX2RwY2Rfd3JpdGUo c3RydWN0IGRybV9kcF9tc3RfdG9wb2xvZ3lfbWdyICptZ3IsCiAJCQkJICBzdHJ1Y3QgZHJtX2Rw X21zdF9wb3J0ICpwb3J0LApAQCAtMjA0MSw5ICsyMTE4LDkgQEAgc3RhdGljIGludCBkcm1fZHBf c2VuZF9kcGNkX3dyaXRlKHN0cnVjdCBkcm1fZHBfbXN0X3RvcG9sb2d5X21nciAqbWdyLAogCiAJ cmV0ID0gZHJtX2RwX21zdF93YWl0X3R4X3JlcGx5KG1zdGIsIHR4bXNnKTsKIAlpZiAocmV0ID4g MCkgewotCQlpZiAodHhtc2ctPnJlcGx5LnJlcGx5X3R5cGUgPT0gMSkgewotCQkJcmV0ID0gLUVJ TlZBTDsKLQkJfSBlbHNlCisJCWlmICh0eG1zZy0+cmVwbHkucmVwbHlfdHlwZSA9PSAxKQorCQkJ cmV0ID0gLUVJTzsKKwkJZWxzZQogCQkJcmV0ID0gMDsKIAl9CiAJa2ZyZWUodHhtc2cpOwpkaWZm IC0tZ2l0IGEvaW5jbHVkZS9kcm0vZHJtX2RwX2hlbHBlci5oIGIvaW5jbHVkZS9kcm0vZHJtX2Rw X2hlbHBlci5oCmluZGV4IDUwOTY2N2UuLjZkZWE3NmEgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvZHJt L2RybV9kcF9oZWxwZXIuaAorKysgYi9pbmNsdWRlL2RybS9kcm1fZHBfaGVscGVyLmgKQEAgLTEy NjUsNiArMTI2NSwxMCBAQCBzdHJ1Y3QgZHJtX2RwX2F1eCB7CiAJICogQGNlYzogc3RydWN0IGNv bnRhaW5pbmcgZmllbGRzIHVzZWQgZm9yIENFQy1UdW5uZWxpbmctb3Zlci1BVVguCiAJICovCiAJ c3RydWN0IGRybV9kcF9hdXhfY2VjIGNlYzsKKwkvKioKKwkgKiBAaXNfcmVtb3RlOiBJcyB0aGlz ICJBVVggQ0giIGFjdHVhbGx5IHVzaW5nIHNpZGViYW5kIG1lc3NhZ2luZy4KKwkgKi8KKwlib29s IGlzX3JlbW90ZTsKIH07CiAKIHNzaXplX3QgZHJtX2RwX2RwY2RfcmVhZChzdHJ1Y3QgZHJtX2Rw X2F1eCAqYXV4LCB1bnNpZ25lZCBpbnQgb2Zmc2V0LApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0v ZHJtX2RwX21zdF9oZWxwZXIuaCBiL2luY2x1ZGUvZHJtL2RybV9kcF9tc3RfaGVscGVyLmgKaW5k ZXggMzcxY2MyOC4uMzBmOGMxMSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9kcm0vZHJtX2RwX21zdF9o ZWxwZXIuaAorKysgYi9pbmNsdWRlL2RybS9kcm1fZHBfbXN0X2hlbHBlci5oCkBAIC02MTUsNiAr NjE1LDEyIEBAIHZvaWQgZHJtX2RwX21zdF9kdW1wX3RvcG9sb2d5KHN0cnVjdCBzZXFfZmlsZSAq bSwKIAogdm9pZCBkcm1fZHBfbXN0X3RvcG9sb2d5X21ncl9zdXNwZW5kKHN0cnVjdCBkcm1fZHBf bXN0X3RvcG9sb2d5X21nciAqbWdyKTsKIGludCBkcm1fZHBfbXN0X3RvcG9sb2d5X21ncl9yZXN1 bWUoc3RydWN0IGRybV9kcF9tc3RfdG9wb2xvZ3lfbWdyICptZ3IpOworCitzc2l6ZV90IGRybV9k cF9tc3RfZHBjZF9yZWFkKHN0cnVjdCBkcm1fZHBfYXV4ICphdXgsCisJCQkgICAgIHVuc2lnbmVk IGludCBvZmZzZXQsIHZvaWQgKmJ1ZmZlciwgc2l6ZV90IHNpemUpOworc3NpemVfdCBkcm1fZHBf bXN0X2RwY2Rfd3JpdGUoc3RydWN0IGRybV9kcF9hdXggKmF1eCwKKwkJCSAgICAgIHVuc2lnbmVk IGludCBvZmZzZXQsIHZvaWQgKmJ1ZmZlciwgc2l6ZV90IHNpemUpOworCiBzdHJ1Y3QgZHJtX2Rw X21zdF90b3BvbG9neV9zdGF0ZSAqZHJtX2F0b21pY19nZXRfbXN0X3RvcG9sb2d5X3N0YXRlKHN0 cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSwKIAkJCQkJCQkJICAgIHN0cnVjdCBkcm1fZHBf bXN0X3RvcG9sb2d5X21nciAqbWdyKTsKIGludCBkcm1fZHBfYXRvbWljX2ZpbmRfdmNwaV9zbG90 cyhzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUsCi0tIAoyLjcuNAoKX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KYW1kLWdmeCBtYWlsaW5nIGxpc3QK YW1kLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5v cmcvbWFpbG1hbi9saXN0aW5mby9hbWQtZ2Z4