From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 Subject: [v7] staging: typec: handle vendor defined part and modify drp toggling flow From: ShuFanLee Message-Id: <1520301032-10109-1-git-send-email-leechu729@gmail.com> Date: Tue, 6 Mar 2018 09:50:32 +0800 To: heikki.krogerus@linux.intel.com, linux@roeck-us.net, greg@kroah.com Cc: shufan_lee@richtek.com, cy_huang@richtek.com, jun.li@nxp.com, linux-kernel@vger.kernel.org, linux-usb@vger.kernel.org List-ID: RnJvbTogU2h1RmFuIExlZSA8c2h1ZmFuX2xlZUByaWNodGVrLmNvbT4KCkhhbmRsZSB2ZW5kb3Ig ZGVmaW5lZCBiZWhhdmlvciBpbiB0Y3BjaV9pbml0LCB0Y3BjaV9zZXRfdmNvbm4sIHRjcGNpX3N0 YXJ0X2RycF90b2dnbGluZwphbmQgZXhwb3J0IHRjcGNpX2lycS4gTW9yZSBvcGVyYXRpb25zIGNh biBiZSBleHRlbmRlZCBpbiB0Y3BjaV9kYXRhIGlmIG5lZWRlZC4KQWNjb3JkaW5nIHRvIFRDUENJ IHNwZWNpZmljYXRpb24sIDQuNC41LjIgUk9MRV9DT05UUk9MLApUQ1BDIHNoYWxsIG5vdCBzdGFy dCBEUlAgdG9nZ2xpbmcgdW50aWwgc3Vic2VxdWVudGx5IHRoZSBUQ1BNCndyaXRlcyB0byB0aGUg Q09NTUFORCByZWdpc3RlciB0byBzdGFydCBEUlAgdG9nZ2xpbmcuCkRSUCB0b2dnbGluZyBmbG93 IGlzIGNoYW5nZWQgYXMgZm9sbG93aW5nOgogIC0gV3JpdGUgRFJQID0gMSwgUnAgbGV2ZWwgYW5k IFJDLkNDeCB0byBSZC9SZCBvciBScC9ScAogIC0gU2V0IExPT0s0Q09OTkVDVElPTiBjb21tYW5k CgpTaWduZWQtb2ZmLWJ5OiBTaHVGYW4gTGVlIDxzaHVmYW5fbGVlQHJpY2h0ZWsuY29tPgotLS0K IGRyaXZlcnMvc3RhZ2luZy90eXBlYy90Y3BjaS5jIHwgMTI3ICsrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKy0tLS0tLS0tLQogZHJpdmVycy9zdGFnaW5nL3R5cGVjL3RjcGNpLmggfCAg MTUgKysrKysKIDIgZmlsZXMgY2hhbmdlZCwgMTE2IGluc2VydGlvbnMoKyksIDI2IGRlbGV0aW9u cygtKQoKIHBhdGNoIGNoYW5nZWxvZ3MgYmV0d2VlbiB2MSAmIHYyCiAtIFJlbW92ZSB1bm5lY2Vz c2FyeSBpMmNfY2xpZW50IGluIHRoZSBzdHJ1Y3R1cmUgb2YgdGNwY2kuCiAtIFJlbmFtZSBzdHJ1 Y3R1cmUgb2YgdGNwY2lfdmVuZG9yX2RhdGEgdG8gdGNwY2lfZGF0YS4KIC0gTm90IGV4cG9ydGlu ZyB0Y3BjaSByZWFkL3dyaXRlIHdyYXBwZXJzIGJ1dCByZWdpc3RlciBpMmMgcmVnbWFwIGluIGds dWUgZHJpdmVyLgogLSBBZGQgc2V0X3Zjb25uIG9wcyBpbiB0Y3BjaV9kYXRhLgogICAoSXQgaXMg bmVjZXNzYXJ5IGZvciBSVDE3MTFIIHRvIGVuYWJsZS9kaXNhYmxlIGlkbGUgbW9kZSBiZWZvcmUg ZGlzYWJsaW5nL2VuYWJsaW5nIHZjb25uKQogLSBFeHBvcnQgdGNwY2lfaXJxIHNvIHRoYXQgdmVu ZG9yIGNhbiBjYWxsIGl0IGluIHRoZWlyIG93biBJUlEgaGFuZGxlci4KCiBwYXRjaCBjaGFuZ2Vs b2dzIGJldHdlZW4gdjIgJiB2MwogLSBDaGFuZ2UgdGhlIHJldHVybiB0eXBlIG9mIHRjcGNpX2ly cSBmcm9tIGludCB0byBpcnFyZXR1cm5fdC4KCiBwYXRjaCBjaGFuZ2Vsb2dzIGJldHdlZW4gdjMg JiB2NAogLSBEaXJlY3RseSByZXR1cm4gcmVnbWFwX3dyaXRlIGF0IHRoZSBlbmQgb2YgZHJwX3Rv Z2dsaW5nIGZ1bmN0aW9uLgogLSBCZWNhdXNlIHRjcGNpX2lycSBpcyBjYWxsZWQgaW4gX3RjcGNp X2lycSwgbW92ZSBfdGNwY2lfaXJxIHRvIHRoZSBwbGFjZSBhZnRlciB0Y3BjaV9pcnEuCgogcGF0 Y2ggY2hhbmdlbG9ncyBiZXR3ZWVuIHY0ICYgdjUKIC0gQWRkIGEgc3BhY2UgYmV0d2VlbiBteSBm aXJzdCAmIGxhc3QgbmFtZSwgZnJvbSBTaHVGYW5MZWUgdG8gU2h1RmFuIExlZS4KCiBwYXRjaCBj aGFuZ2Vsb2dzIGJldHdlZW4gdjUgJiB2NgogLSBBZGQgc3RhcnRfZHJwX3RvZ2dsaW5nIGluIHRj cGNpX2RhdGEgYW5kIGNhbGwgaXQgYXQgdGhlIGJlZ2lubmluZyBvZiB0Y3BjaV9zdGFydF9kcnBf dG9nZ2xpbmcuCiAtIE1vZGlmeSB0aGUgZmxvdyBvZiB0Y3BjaV9zdGFydF9kcnBfdG9nZ2xpbmcg YXMgZm9sbG93aW5nOgogICAgLSBTZXQgUnAgbGV2ZWwsIFJDLkNDeCB0byBSZC9SZCBvciBScC9S cCBhbmQgRFJQID0gMQogICAgLSBTZXQgTE9PSzRDT05ORUNUSU9OIGNvbW1hbmQKCiBwYXRjaCBj aGFuZ2Vsb2dzIGJldHdlZW4gdjYgJiB2NwogLSBSZW1vdmUgY2hlY2tpbmcgd2hldGhlciB0Y3Bj aS0+ZGF0YSBpcyBOVUxMIGJlY2F1c2UgaXQgaXMgZ3VhcmFudGVlZCB0byBiZSBhdmFpbGFibGUu CgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zdGFnaW5nL3R5cGVjL3RjcGNpLmMgYi9kcml2ZXJzL3N0 YWdpbmcvdHlwZWMvdGNwY2kuYwppbmRleCA5YmQ0NDEyLi44MDQzNzQwIDEwMDY0NAotLS0gYS9k cml2ZXJzL3N0YWdpbmcvdHlwZWMvdGNwY2kuYworKysgYi9kcml2ZXJzL3N0YWdpbmcvdHlwZWMv dGNwY2kuYwpAQCAtMjEsNyArMjEsNiBAQAogCiBzdHJ1Y3QgdGNwY2kgewogCXN0cnVjdCBkZXZp Y2UgKmRldjsKLQlzdHJ1Y3QgaTJjX2NsaWVudCAqY2xpZW50OwogCiAJc3RydWN0IHRjcG1fcG9y dCAqcG9ydDsKIApAQCAtMzAsNiArMjksMTIgQEAgc3RydWN0IHRjcGNpIHsKIAlib29sIGNvbnRy b2xzX3ZidXM7CiAKIAlzdHJ1Y3QgdGNwY19kZXYgdGNwYzsKKwlzdHJ1Y3QgdGNwY2lfZGF0YSAq ZGF0YTsKK307CisKK3N0cnVjdCB0Y3BjaV9jaGlwIHsKKwlzdHJ1Y3QgdGNwY2kgKnRjcGNpOwor CXN0cnVjdCB0Y3BjaV9kYXRhIGRhdGE7CiB9OwogCiBzdGF0aWMgaW5saW5lIHN0cnVjdCB0Y3Bj aSAqdGNwY190b190Y3BjaShzdHJ1Y3QgdGNwY19kZXYgKnRjcGMpCkBAIC0zNyw4ICs0Miw3IEBA IHN0YXRpYyBpbmxpbmUgc3RydWN0IHRjcGNpICp0Y3BjX3RvX3RjcGNpKHN0cnVjdCB0Y3BjX2Rl diAqdGNwYykKIAlyZXR1cm4gY29udGFpbmVyX29mKHRjcGMsIHN0cnVjdCB0Y3BjaSwgdGNwYyk7 CiB9CiAKLXN0YXRpYyBpbnQgdGNwY2lfcmVhZDE2KHN0cnVjdCB0Y3BjaSAqdGNwY2ksIHVuc2ln bmVkIGludCByZWcsCi0JCQl1MTYgKnZhbCkKK3N0YXRpYyBpbnQgdGNwY2lfcmVhZDE2KHN0cnVj dCB0Y3BjaSAqdGNwY2ksIHVuc2lnbmVkIGludCByZWcsIHUxNiAqdmFsKQogewogCXJldHVybiBy ZWdtYXBfcmF3X3JlYWQodGNwY2ktPnJlZ21hcCwgcmVnLCB2YWwsIHNpemVvZih1MTYpKTsKIH0K QEAgLTk4LDkgKzEwMiwxNyBAQCBzdGF0aWMgaW50IHRjcGNpX3NldF9jYyhzdHJ1Y3QgdGNwY19k ZXYgKnRjcGMsIGVudW0gdHlwZWNfY2Nfc3RhdHVzIGNjKQogc3RhdGljIGludCB0Y3BjaV9zdGFy dF9kcnBfdG9nZ2xpbmcoc3RydWN0IHRjcGNfZGV2ICp0Y3BjLAogCQkJCSAgICBlbnVtIHR5cGVj X2NjX3N0YXR1cyBjYykKIHsKKwlpbnQgcmV0OwogCXN0cnVjdCB0Y3BjaSAqdGNwY2kgPSB0Y3Bj X3RvX3RjcGNpKHRjcGMpOwogCXVuc2lnbmVkIGludCByZWcgPSBUQ1BDX1JPTEVfQ1RSTF9EUlA7 CiAKKwkvKiBIYW5kbGUgdmVuZG9yIGRycCB0b2dnbGluZyAqLworCWlmICh0Y3BjaS0+ZGF0YS0+ c3RhcnRfZHJwX3RvZ2dsaW5nKSB7CisJCXJldCA9IHRjcGNpLT5kYXRhLT5zdGFydF9kcnBfdG9n Z2xpbmcodGNwY2ksIHRjcGNpLT5kYXRhLCBjYyk7CisJCWlmIChyZXQgPCAwKQorCQkJcmV0dXJu IHJldDsKKwl9CisKIAlzd2l0Y2ggKGNjKSB7CiAJZGVmYXVsdDoKIAljYXNlIFRZUEVDX0NDX1JQ X0RFRjoKQEAgLTExNyw3ICsxMjksMTcgQEAgc3RhdGljIGludCB0Y3BjaV9zdGFydF9kcnBfdG9n Z2xpbmcoc3RydWN0IHRjcGNfZGV2ICp0Y3BjLAogCQlicmVhazsKIAl9CiAKLQlyZXR1cm4gcmVn bWFwX3dyaXRlKHRjcGNpLT5yZWdtYXAsIFRDUENfUk9MRV9DVFJMLCByZWcpOworCWlmIChjYyA9 PSBUWVBFQ19DQ19SRCkKKwkJcmVnIHw9IChUQ1BDX1JPTEVfQ1RSTF9DQ19SRCA8PCBUQ1BDX1JP TEVfQ1RSTF9DQzFfU0hJRlQpIHwKKwkJCSAgIChUQ1BDX1JPTEVfQ1RSTF9DQ19SRCA8PCBUQ1BD X1JPTEVfQ1RSTF9DQzJfU0hJRlQpOworCWVsc2UKKwkJcmVnIHw9IChUQ1BDX1JPTEVfQ1RSTF9D Q19SUCA8PCBUQ1BDX1JPTEVfQ1RSTF9DQzFfU0hJRlQpIHwKKwkJCSAgIChUQ1BDX1JPTEVfQ1RS TF9DQ19SUCA8PCBUQ1BDX1JPTEVfQ1RSTF9DQzJfU0hJRlQpOworCXJldCA9IHJlZ21hcF93cml0 ZSh0Y3BjaS0+cmVnbWFwLCBUQ1BDX1JPTEVfQ1RSTCwgcmVnKTsKKwlpZiAocmV0IDwgMCkKKwkJ cmV0dXJuIHJldDsKKwlyZXR1cm4gcmVnbWFwX3dyaXRlKHRjcGNpLT5yZWdtYXAsIFRDUENfQ09N TUFORCwKKwkJCSAgICBUQ1BDX0NNRF9MT09LNENPTk5FQ1RJT04pOwogfQogCiBzdGF0aWMgZW51 bSB0eXBlY19jY19zdGF0dXMgdGNwY2lfdG9fdHlwZWNfY2ModW5zaWduZWQgaW50IGNjLCBib29s IHNpbmspCkBAIC0xNzgsNiArMjAwLDEzIEBAIHN0YXRpYyBpbnQgdGNwY2lfc2V0X3Zjb25uKHN0 cnVjdCB0Y3BjX2RldiAqdGNwYywgYm9vbCBlbmFibGUpCiAJc3RydWN0IHRjcGNpICp0Y3BjaSA9 IHRjcGNfdG9fdGNwY2kodGNwYyk7CiAJaW50IHJldDsKIAorCS8qIEhhbmRsZSB2ZW5kb3Igc2V0 IHZjb25uICovCisJaWYgKHRjcGNpLT5kYXRhLT5zZXRfdmNvbm4pIHsKKwkJcmV0ID0gdGNwY2kt PmRhdGEtPnNldF92Y29ubih0Y3BjaSwgdGNwY2ktPmRhdGEsIGVuYWJsZSk7CisJCWlmIChyZXQg PCAwKQorCQkJcmV0dXJuIHJldDsKKwl9CisKIAlyZXQgPSByZWdtYXBfd3JpdGUodGNwY2ktPnJl Z21hcCwgVENQQ19QT1dFUl9DVFJMLAogCQkJICAgZW5hYmxlID8gVENQQ19QT1dFUl9DVFJMX1ZD T05OX0VOQUJMRSA6IDApOwogCWlmIChyZXQgPCAwKQpAQCAtMzIzLDYgKzM1MiwxMyBAQCBzdGF0 aWMgaW50IHRjcGNpX2luaXQoc3RydWN0IHRjcGNfZGV2ICp0Y3BjKQogCWlmICh0aW1lX2FmdGVy KGppZmZpZXMsIHRpbWVvdXQpKQogCQlyZXR1cm4gLUVUSU1FRE9VVDsKIAorCS8qIEhhbmRsZSB2 ZW5kb3IgaW5pdCAqLworCWlmICh0Y3BjaS0+ZGF0YS0+aW5pdCkgeworCQlyZXQgPSB0Y3BjaS0+ ZGF0YS0+aW5pdCh0Y3BjaSwgdGNwY2ktPmRhdGEpOworCQlpZiAocmV0IDwgMCkKKwkJCXJldHVy biByZXQ7CisJfQorCiAJLyogQ2xlYXIgYWxsIGV2ZW50cyAqLwogCXJldCA9IHRjcGNpX3dyaXRl MTYodGNwY2ksIFRDUENfQUxFUlQsIDB4ZmZmZik7CiAJaWYgKHJldCA8IDApCkBAIC0zNDQsOSAr MzgwLDggQEAgc3RhdGljIGludCB0Y3BjaV9pbml0KHN0cnVjdCB0Y3BjX2RldiAqdGNwYykKIAly ZXR1cm4gdGNwY2lfd3JpdGUxNih0Y3BjaSwgVENQQ19BTEVSVF9NQVNLLCByZWcpOwogfQogCi1z dGF0aWMgaXJxcmV0dXJuX3QgdGNwY2lfaXJxKGludCBpcnEsIHZvaWQgKmRldl9pZCkKK2lycXJl dHVybl90IHRjcGNpX2lycShzdHJ1Y3QgdGNwY2kgKnRjcGNpKQogewotCXN0cnVjdCB0Y3BjaSAq dGNwY2kgPSBkZXZfaWQ7CiAJdTE2IHN0YXR1czsKIAogCXRjcGNpX3JlYWQxNih0Y3BjaSwgVENQ Q19BTEVSVCwgJnN0YXR1cyk7CkBAIC00MTIsNiArNDQ3LDE0IEBAIHN0YXRpYyBpcnFyZXR1cm5f dCB0Y3BjaV9pcnEoaW50IGlycSwgdm9pZCAqZGV2X2lkKQogCiAJcmV0dXJuIElSUV9IQU5ETEVE OwogfQorRVhQT1JUX1NZTUJPTF9HUEwodGNwY2lfaXJxKTsKKworc3RhdGljIGlycXJldHVybl90 IF90Y3BjaV9pcnEoaW50IGlycSwgdm9pZCAqZGV2X2lkKQoreworCXN0cnVjdCB0Y3BjaSAqdGNw Y2kgPSBkZXZfaWQ7CisKKwlyZXR1cm4gdGNwY2lfaXJxKHRjcGNpKTsKK30KIAogc3RhdGljIGNv bnN0IHN0cnVjdCByZWdtYXBfY29uZmlnIHRjcGNpX3JlZ21hcF9jb25maWcgPSB7CiAJLnJlZ19i aXRzID0gOCwKQEAgLTQzNSwyMiArNDc4LDE4IEBAIHN0YXRpYyBpbnQgdGNwY2lfcGFyc2VfY29u ZmlnKHN0cnVjdCB0Y3BjaSAqdGNwY2kpCiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQgdGNw Y2lfcHJvYmUoc3RydWN0IGkyY19jbGllbnQgKmNsaWVudCwKLQkJICAgICAgIGNvbnN0IHN0cnVj dCBpMmNfZGV2aWNlX2lkICppMmNfaWQpCitzdHJ1Y3QgdGNwY2kgKnRjcGNpX3JlZ2lzdGVyX3Bv cnQoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgdGNwY2lfZGF0YSAqZGF0YSkKIHsKIAlzdHJ1 Y3QgdGNwY2kgKnRjcGNpOwogCWludCBlcnI7CiAKLQl0Y3BjaSA9IGRldm1fa3phbGxvYygmY2xp ZW50LT5kZXYsIHNpemVvZigqdGNwY2kpLCBHRlBfS0VSTkVMKTsKKwl0Y3BjaSA9IGRldm1fa3ph bGxvYyhkZXYsIHNpemVvZigqdGNwY2kpLCBHRlBfS0VSTkVMKTsKIAlpZiAoIXRjcGNpKQotCQly ZXR1cm4gLUVOT01FTTsKKwkJcmV0dXJuIEVSUl9QVFIoLUVOT01FTSk7CiAKLQl0Y3BjaS0+Y2xp ZW50ID0gY2xpZW50OwotCXRjcGNpLT5kZXYgPSAmY2xpZW50LT5kZXY7Ci0JaTJjX3NldF9jbGll bnRkYXRhKGNsaWVudCwgdGNwY2kpOwotCXRjcGNpLT5yZWdtYXAgPSBkZXZtX3JlZ21hcF9pbml0 X2kyYyhjbGllbnQsICZ0Y3BjaV9yZWdtYXBfY29uZmlnKTsKLQlpZiAoSVNfRVJSKHRjcGNpLT5y ZWdtYXApKQotCQlyZXR1cm4gUFRSX0VSUih0Y3BjaS0+cmVnbWFwKTsKKwl0Y3BjaS0+ZGV2ID0g ZGV2OworCXRjcGNpLT5kYXRhID0gZGF0YTsKKwl0Y3BjaS0+cmVnbWFwID0gZGF0YS0+cmVnbWFw OwogCiAJdGNwY2ktPnRjcGMuaW5pdCA9IHRjcGNpX2luaXQ7CiAJdGNwY2ktPnRjcGMuZ2V0X3Zi dXMgPSB0Y3BjaV9nZXRfdmJ1czsKQEAgLTQ2NywyNyArNTA2LDYzIEBAIHN0YXRpYyBpbnQgdGNw Y2lfcHJvYmUoc3RydWN0IGkyY19jbGllbnQgKmNsaWVudCwKIAogCWVyciA9IHRjcGNpX3BhcnNl X2NvbmZpZyh0Y3BjaSk7CiAJaWYgKGVyciA8IDApCi0JCXJldHVybiBlcnI7CisJCXJldHVybiBF UlJfUFRSKGVycik7CisKKwl0Y3BjaS0+cG9ydCA9IHRjcG1fcmVnaXN0ZXJfcG9ydCh0Y3BjaS0+ ZGV2LCAmdGNwY2ktPnRjcGMpOworCWlmIChQVFJfRVJSX09SX1pFUk8odGNwY2ktPnBvcnQpKQor CQlyZXR1cm4gRVJSX0NBU1QodGNwY2ktPnBvcnQpOworCisJcmV0dXJuIHRjcGNpOworfQorRVhQ T1JUX1NZTUJPTF9HUEwodGNwY2lfcmVnaXN0ZXJfcG9ydCk7CisKK3ZvaWQgdGNwY2lfdW5yZWdp c3Rlcl9wb3J0KHN0cnVjdCB0Y3BjaSAqdGNwY2kpCit7CisJdGNwbV91bnJlZ2lzdGVyX3BvcnQo dGNwY2ktPnBvcnQpOworfQorRVhQT1JUX1NZTUJPTF9HUEwodGNwY2lfdW5yZWdpc3Rlcl9wb3J0 KTsKKworc3RhdGljIGludCB0Y3BjaV9wcm9iZShzdHJ1Y3QgaTJjX2NsaWVudCAqY2xpZW50LAor CQkgICAgICAgY29uc3Qgc3RydWN0IGkyY19kZXZpY2VfaWQgKmkyY19pZCkKK3sKKwlzdHJ1Y3Qg dGNwY2lfY2hpcCAqY2hpcDsKKwlpbnQgZXJyOworCXUxNiB2YWwgPSAwOwogCi0JLyogRGlzYWJs ZSBjaGlwIGludGVycnVwdHMgKi8KLQl0Y3BjaV93cml0ZTE2KHRjcGNpLCBUQ1BDX0FMRVJUX01B U0ssIDApOworCWNoaXAgPSBkZXZtX2t6YWxsb2MoJmNsaWVudC0+ZGV2LCBzaXplb2YoKmNoaXAp LCBHRlBfS0VSTkVMKTsKKwlpZiAoIWNoaXApCisJCXJldHVybiAtRU5PTUVNOworCisJY2hpcC0+ ZGF0YS5yZWdtYXAgPSBkZXZtX3JlZ21hcF9pbml0X2kyYyhjbGllbnQsICZ0Y3BjaV9yZWdtYXBf Y29uZmlnKTsKKwlpZiAoSVNfRVJSKGNoaXAtPmRhdGEucmVnbWFwKSkKKwkJcmV0dXJuIFBUUl9F UlIoY2hpcC0+ZGF0YS5yZWdtYXApOwogCi0JZXJyID0gZGV2bV9yZXF1ZXN0X3RocmVhZGVkX2ly cSh0Y3BjaS0+ZGV2LCBjbGllbnQtPmlycSwgTlVMTCwKLQkJCQkJdGNwY2lfaXJxLAorCS8qIERp c2FibGUgY2hpcCBpbnRlcnJ1cHRzIGJlZm9yZSByZXF1ZXN0aW5nIGlycSAqLworCWVyciA9IHJl Z21hcF9yYXdfd3JpdGUoY2hpcC0+ZGF0YS5yZWdtYXAsIFRDUENfQUxFUlRfTUFTSywgJnZhbCwK KwkJCSAgICAgICBzaXplb2YodTE2KSk7CisJaWYgKGVyciA8IDApCisJCXJldHVybiBlcnI7CisK KwllcnIgPSBkZXZtX3JlcXVlc3RfdGhyZWFkZWRfaXJxKCZjbGllbnQtPmRldiwgY2xpZW50LT5p cnEsIE5VTEwsCisJCQkJCV90Y3BjaV9pcnEsCiAJCQkJCUlSUUZfT05FU0hPVCB8IElSUUZfVFJJ R0dFUl9MT1csCi0JCQkJCWRldl9uYW1lKHRjcGNpLT5kZXYpLCB0Y3BjaSk7CisJCQkJCWRldl9u YW1lKCZjbGllbnQtPmRldiksIGNoaXApOwogCWlmIChlcnIgPCAwKQogCQlyZXR1cm4gZXJyOwog Ci0JdGNwY2ktPnBvcnQgPSB0Y3BtX3JlZ2lzdGVyX3BvcnQodGNwY2ktPmRldiwgJnRjcGNpLT50 Y3BjKTsKLQlyZXR1cm4gUFRSX0VSUl9PUl9aRVJPKHRjcGNpLT5wb3J0KTsKKwljaGlwLT50Y3Bj aSA9IHRjcGNpX3JlZ2lzdGVyX3BvcnQoJmNsaWVudC0+ZGV2LCAmY2hpcC0+ZGF0YSk7CisJaWYg KFBUUl9FUlJfT1JfWkVSTyhjaGlwLT50Y3BjaSkpCisJCXJldHVybiBQVFJfRVJSKGNoaXAtPnRj cGNpKTsKKworCWkyY19zZXRfY2xpZW50ZGF0YShjbGllbnQsIGNoaXApOworCXJldHVybiAwOwog fQogCiBzdGF0aWMgaW50IHRjcGNpX3JlbW92ZShzdHJ1Y3QgaTJjX2NsaWVudCAqY2xpZW50KQog ewotCXN0cnVjdCB0Y3BjaSAqdGNwY2kgPSBpMmNfZ2V0X2NsaWVudGRhdGEoY2xpZW50KTsKKwlz dHJ1Y3QgdGNwY2lfY2hpcCAqY2hpcCA9IGkyY19nZXRfY2xpZW50ZGF0YShjbGllbnQpOwogCi0J dGNwbV91bnJlZ2lzdGVyX3BvcnQodGNwY2ktPnBvcnQpOworCXRjcGNpX3VucmVnaXN0ZXJfcG9y dChjaGlwLT50Y3BjaSk7CiAKIAlyZXR1cm4gMDsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvc3Rh Z2luZy90eXBlYy90Y3BjaS5oIGIvZHJpdmVycy9zdGFnaW5nL3R5cGVjL3RjcGNpLmgKaW5kZXgg ZmRmYjA2Yy4uYTJjMTc1NCAxMDA2NDQKLS0tIGEvZHJpdmVycy9zdGFnaW5nL3R5cGVjL3RjcGNp LmgKKysrIGIvZHJpdmVycy9zdGFnaW5nL3R5cGVjL3RjcGNpLmgKQEAgLTU5LDYgKzU5LDcgQEAK ICNkZWZpbmUgVENQQ19QT1dFUl9DVFJMX1ZDT05OX0VOQUJMRQlCSVQoMCkKIAogI2RlZmluZSBU Q1BDX0NDX1NUQVRVUwkJCTB4MWQKKyNkZWZpbmUgVENQQ19DQ19TVEFUVVNfRFJQUlNUCQlCSVQo NSkKICNkZWZpbmUgVENQQ19DQ19TVEFUVVNfVEVSTQkJQklUKDQpCiAjZGVmaW5lIFRDUENfQ0Nf U1RBVFVTX0NDMl9TSElGVAkyCiAjZGVmaW5lIFRDUENfQ0NfU1RBVFVTX0NDMl9NQVNLCQkweDMK QEAgLTEyMSw0ICsxMjIsMTggQEAKICNkZWZpbmUgVENQQ19WQlVTX1ZPTFRBR0VfQUxBUk1fSElf Q0ZHCQkweDc2CiAjZGVmaW5lIFRDUENfVkJVU19WT0xUQUdFX0FMQVJNX0xPX0NGRwkJMHg3OAog CitzdHJ1Y3QgdGNwY2k7CitzdHJ1Y3QgdGNwY2lfZGF0YSB7CisJc3RydWN0IHJlZ21hcCAqcmVn bWFwOworCWludCAoKmluaXQpKHN0cnVjdCB0Y3BjaSAqdGNwY2ksIHN0cnVjdCB0Y3BjaV9kYXRh ICpkYXRhKTsKKwlpbnQgKCpzZXRfdmNvbm4pKHN0cnVjdCB0Y3BjaSAqdGNwY2ksIHN0cnVjdCB0 Y3BjaV9kYXRhICpkYXRhLAorCQkJIGJvb2wgZW5hYmxlKTsKKwlpbnQgKCpzdGFydF9kcnBfdG9n Z2xpbmcpKHN0cnVjdCB0Y3BjaSAqdGNwY2ksIHN0cnVjdCB0Y3BjaV9kYXRhICpkYXRhLAorCQkJ CSAgZW51bSB0eXBlY19jY19zdGF0dXMgY2MpOworfTsKKworc3RydWN0IHRjcGNpICp0Y3BjaV9y ZWdpc3Rlcl9wb3J0KHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IHRjcGNpX2RhdGEgKmRhdGEp Owordm9pZCB0Y3BjaV91bnJlZ2lzdGVyX3BvcnQoc3RydWN0IHRjcGNpICp0Y3BjaSk7CitpcnFy ZXR1cm5fdCB0Y3BjaV9pcnEoc3RydWN0IHRjcGNpICp0Y3BjaSk7CisKICNlbmRpZiAvKiBfX0xJ TlVYX1VTQl9UQ1BDSV9IICovCg==