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: [v6] staging: typec: handle vendor defined part and modify drp toggling flow From: ShuFanLee Message-Id: <1520223402-19906-1-git-send-email-leechu729@gmail.com> Date: Mon, 5 Mar 2018 12:16:42 +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 IGlzIGNoYWduZWQgYXMgZm9sbG93aW5nOgogIC0gV3JpdGUgRFJQID0gMSwgUnAgbGV2ZWwgYW5k IFJDLkNDeCB0byBSZC9SZCBvciBScC9ScAogIC0gU2V0IExPT0s0Q09OTkVDVElPTiBjb21tYW5k CgpTaWduZWQtb2ZmLWJ5OiBTaHVGYW4gTGVlIDxzaHVmYW5fbGVlQHJpY2h0ZWsuY29tPgotLS0K IGRyaXZlcnMvc3RhZ2luZy90eXBlYy90Y3BjaS5jIHwgMTM0ICsrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKystLS0tLS0tLQogZHJpdmVycy9zdGFnaW5nL3R5cGVjL3RjcGNpLmggfCAg MTUgKysrKysKIDIgZmlsZXMgY2hhbmdlZCwgMTIzIGluc2VydGlvbnMoKyksIDI2IGRlbGV0aW9u cygtKQoKIHBhdGNoIGNoYW5nZWxvZ3MgYmV0d2VlbiB2MSAmIHYyCiAtIFJlbW92ZSB1bm5lY2Vz c2FyeSBpMmNfY2xpZW50IGluIHRoZSBzdHJ1Y3R1cmUgb2YgdGNwY2kKIC0gUmVuYW1lIHN0cnVj dHVyZSBvZiB0Y3BjaV92ZW5kb3JfZGF0YSB0byB0Y3BjaV9kYXRhCiAtIE5vdCBleHBvcnRpbmcg dGNwY2kgcmVhZC93cml0ZSB3cmFwcGVycyBidXQgcmVnaXN0ZXIgaTJjIHJlZ21hcCBpbiBnbHVl IGRyaXZlcgogLSBBZGQgc2V0X3Zjb25uIG9wcyBpbiB0Y3BjaV9kYXRhCiAgIChJdCBpcyBuZWNl c3NhcnkgZm9yIFJUMTcxMUggdG8gZW5hYmxlL2Rpc2FibGUgaWRsZSBtb2RlIGJlZm9yZSBkaXNh YmxpbmcvZW5hYmxpbmcgdmNvbm4pCiAtIEV4cG9ydCB0Y3BjaV9pcnEgc28gdGhhdCB2ZW5kb3Ig Y2FuIGNhbGwgaXQgaW4gdGhlaXIgb3duIElSUSBoYW5kbGVyCgogcGF0Y2ggY2hhbmdlbG9ncyBi ZXR3ZWVuIHYyICYgdjMKIC0gQ2hhbmdlIHRoZSByZXR1cm4gdHlwZSBvZiB0Y3BjaV9pcnEgZnJv bSBpbnQgdG8gaXJxcmV0dXJuX3QKCiBwYXRjaCBjaGFuZ2Vsb2dzIGJldHdlZW4gdjMgJiB2NAog LSBEaXJlY3RseSByZXR1cm4gcmVnbWFwX3dyaXRlIGF0IHRoZSBlbmQgb2YgZHJwX3RvZ2dsaW5n IGZ1bmN0aW9uCiAtIEJlY2F1c2UgdGNwY2lfaXJxIGlzIGNhbGxlZCBpbiBfdGNwY2lfaXJxLCBt b3ZlIF90Y3BjaV9pcnEgdG8gdGhlIHBsYWNlIGFmdGVyIHRjcGNpX2lycQoKIHBhdGNoIGNoYW5n ZWxvZ3MgYmV0d2VlbiB2NCAmIHY1CiAtIEFkZCBhIHNwYWNlIGJldHdlZW4gbXkgZmlyc3QgJiBs YXN0IG5hbWUsIGZyb20gU2h1RmFuTGVlIHRvIFNodUZhbiBMZWUuCgogcGF0Y2ggY2hhbmdlbG9n cyBiZXR3ZWVuIHY1ICYgdjYKIC0gQWRkIHN0YXJ0X2RycF90b2dnbGluZyBpbiB0Y3BjaV9kYXRh IGFuZCBjYWxsIGl0IGF0IHRoZSBiZWdpbm5pbmcgb2YgdGNwY2lfc3RhcnRfZHJwX3RvZ2dsaW5n CiAtIE1vZGlmeSB0aGUgZmxvdyBvZiB0Y3BjaV9zdGFydF9kcnBfdG9nZ2xpbmcgYXMgZm9sbG93 aW5nCiAgICAtIFNldCBScCBsZXZlbCwgUkMuQ0N4IHRvIFJkL1JkIG9yIFJwL1JwIGFuZCBEUlAg PSAxCiAgICAtIFNldCBMT09LNENPTk5FQ1RJT04gY29tbWFuZAoKZGlmZiAtLWdpdCBhL2RyaXZl cnMvc3RhZ2luZy90eXBlYy90Y3BjaS5jIGIvZHJpdmVycy9zdGFnaW5nL3R5cGVjL3RjcGNpLmMK aW5kZXggOWJkNDQxMi4uOWU2MDBmNyAxMDA2NDQKLS0tIGEvZHJpdmVycy9zdGFnaW5nL3R5cGVj L3RjcGNpLmMKKysrIGIvZHJpdmVycy9zdGFnaW5nL3R5cGVjL3RjcGNpLmMKQEAgLTIxLDcgKzIx LDYgQEAKIAogc3RydWN0IHRjcGNpIHsKIAlzdHJ1Y3QgZGV2aWNlICpkZXY7Ci0Jc3RydWN0IGky Y19jbGllbnQgKmNsaWVudDsKIAogCXN0cnVjdCB0Y3BtX3BvcnQgKnBvcnQ7CiAKQEAgLTMwLDYg KzI5LDEyIEBAIHN0cnVjdCB0Y3BjaSB7CiAJYm9vbCBjb250cm9sc192YnVzOwogCiAJc3RydWN0 IHRjcGNfZGV2IHRjcGM7CisJc3RydWN0IHRjcGNpX2RhdGEgKmRhdGE7Cit9OworCitzdHJ1Y3Qg dGNwY2lfY2hpcCB7CisJc3RydWN0IHRjcGNpICp0Y3BjaTsKKwlzdHJ1Y3QgdGNwY2lfZGF0YSBk YXRhOwogfTsKIAogc3RhdGljIGlubGluZSBzdHJ1Y3QgdGNwY2kgKnRjcGNfdG9fdGNwY2koc3Ry dWN0IHRjcGNfZGV2ICp0Y3BjKQpAQCAtMzcsOCArNDIsNyBAQCBzdGF0aWMgaW5saW5lIHN0cnVj dCB0Y3BjaSAqdGNwY190b190Y3BjaShzdHJ1Y3QgdGNwY19kZXYgKnRjcGMpCiAJcmV0dXJuIGNv bnRhaW5lcl9vZih0Y3BjLCBzdHJ1Y3QgdGNwY2ksIHRjcGMpOwogfQogCi1zdGF0aWMgaW50IHRj cGNpX3JlYWQxNihzdHJ1Y3QgdGNwY2kgKnRjcGNpLCB1bnNpZ25lZCBpbnQgcmVnLAotCQkJdTE2 ICp2YWwpCitzdGF0aWMgaW50IHRjcGNpX3JlYWQxNihzdHJ1Y3QgdGNwY2kgKnRjcGNpLCB1bnNp Z25lZCBpbnQgcmVnLCB1MTYgKnZhbCkKIHsKIAlyZXR1cm4gcmVnbWFwX3Jhd19yZWFkKHRjcGNp LT5yZWdtYXAsIHJlZywgdmFsLCBzaXplb2YodTE2KSk7CiB9CkBAIC05OCw5ICsxMDIsMTkgQEAg c3RhdGljIGludCB0Y3BjaV9zZXRfY2Moc3RydWN0IHRjcGNfZGV2ICp0Y3BjLCBlbnVtIHR5cGVj X2NjX3N0YXR1cyBjYykKIHN0YXRpYyBpbnQgdGNwY2lfc3RhcnRfZHJwX3RvZ2dsaW5nKHN0cnVj dCB0Y3BjX2RldiAqdGNwYywKIAkJCQkgICAgZW51bSB0eXBlY19jY19zdGF0dXMgY2MpCiB7CisJ aW50IHJldDsKIAlzdHJ1Y3QgdGNwY2kgKnRjcGNpID0gdGNwY190b190Y3BjaSh0Y3BjKTsKIAl1 bnNpZ25lZCBpbnQgcmVnID0gVENQQ19ST0xFX0NUUkxfRFJQOwogCisJaWYgKHRjcGNpLT5kYXRh KSB7CisJCWlmICh0Y3BjaS0+ZGF0YS0+c3RhcnRfZHJwX3RvZ2dsaW5nKSB7CisJCQlyZXQgPSB0 Y3BjaS0+ZGF0YS0+c3RhcnRfZHJwX3RvZ2dsaW5nKHRjcGNpLAorCQkJCQkJCSAgICAgIHRjcGNp LT5kYXRhLCBjYyk7CisJCQlpZiAocmV0IDwgMCkKKwkJCQlyZXR1cm4gcmV0OworCQl9CisJfQor CiAJc3dpdGNoIChjYykgewogCWRlZmF1bHQ6CiAJY2FzZSBUWVBFQ19DQ19SUF9ERUY6CkBAIC0x MTcsNyArMTMxLDE3IEBAIHN0YXRpYyBpbnQgdGNwY2lfc3RhcnRfZHJwX3RvZ2dsaW5nKHN0cnVj dCB0Y3BjX2RldiAqdGNwYywKIAkJYnJlYWs7CiAJfQogCi0JcmV0dXJuIHJlZ21hcF93cml0ZSh0 Y3BjaS0+cmVnbWFwLCBUQ1BDX1JPTEVfQ1RSTCwgcmVnKTsKKwlpZiAoY2MgPT0gVFlQRUNfQ0Nf UkQpCisJCXJlZyB8PSAoVENQQ19ST0xFX0NUUkxfQ0NfUkQgPDwgVENQQ19ST0xFX0NUUkxfQ0Mx X1NISUZUKSB8CisJCQkgICAoVENQQ19ST0xFX0NUUkxfQ0NfUkQgPDwgVENQQ19ST0xFX0NUUkxf Q0MyX1NISUZUKTsKKwllbHNlCisJCXJlZyB8PSAoVENQQ19ST0xFX0NUUkxfQ0NfUlAgPDwgVENQ Q19ST0xFX0NUUkxfQ0MxX1NISUZUKSB8CisJCQkgICAoVENQQ19ST0xFX0NUUkxfQ0NfUlAgPDwg VENQQ19ST0xFX0NUUkxfQ0MyX1NISUZUKTsKKwlyZXQgPSByZWdtYXBfd3JpdGUodGNwY2ktPnJl Z21hcCwgVENQQ19ST0xFX0NUUkwsIHJlZyk7CisJaWYgKHJldCA8IDApCisJCXJldHVybiByZXQ7 CisJcmV0dXJuIHJlZ21hcF93cml0ZSh0Y3BjaS0+cmVnbWFwLCBUQ1BDX0NPTU1BTkQsCisJCQkg ICAgVENQQ19DTURfTE9PSzRDT05ORUNUSU9OKTsKIH0KIAogc3RhdGljIGVudW0gdHlwZWNfY2Nf c3RhdHVzIHRjcGNpX3RvX3R5cGVjX2NjKHVuc2lnbmVkIGludCBjYywgYm9vbCBzaW5rKQpAQCAt MTc4LDYgKzIwMiwxNiBAQCBzdGF0aWMgaW50IHRjcGNpX3NldF92Y29ubihzdHJ1Y3QgdGNwY19k ZXYgKnRjcGMsIGJvb2wgZW5hYmxlKQogCXN0cnVjdCB0Y3BjaSAqdGNwY2kgPSB0Y3BjX3RvX3Rj cGNpKHRjcGMpOwogCWludCByZXQ7CiAKKwkvKiBIYW5kbGUgdmVuZG9yIHNldCB2Y29ubiAqLwor CWlmICh0Y3BjaS0+ZGF0YSkgeworCQlpZiAodGNwY2ktPmRhdGEtPnNldF92Y29ubikgeworCQkJ cmV0ID0gdGNwY2ktPmRhdGEtPnNldF92Y29ubih0Y3BjaSwgdGNwY2ktPmRhdGEsCisJCQkJCQkg ICAgIGVuYWJsZSk7CisJCQlpZiAocmV0IDwgMCkKKwkJCQlyZXR1cm4gcmV0OworCQl9CisJfQor CiAJcmV0ID0gcmVnbWFwX3dyaXRlKHRjcGNpLT5yZWdtYXAsIFRDUENfUE9XRVJfQ1RSTCwKIAkJ CSAgIGVuYWJsZSA/IFRDUENfUE9XRVJfQ1RSTF9WQ09OTl9FTkFCTEUgOiAwKTsKIAlpZiAocmV0 IDwgMCkKQEAgLTMyMyw2ICszNTcsMTUgQEAgc3RhdGljIGludCB0Y3BjaV9pbml0KHN0cnVjdCB0 Y3BjX2RldiAqdGNwYykKIAlpZiAodGltZV9hZnRlcihqaWZmaWVzLCB0aW1lb3V0KSkKIAkJcmV0 dXJuIC1FVElNRURPVVQ7CiAKKwkvKiBIYW5kbGUgdmVuZG9yIGluaXQgKi8KKwlpZiAodGNwY2kt PmRhdGEpIHsKKwkJaWYgKHRjcGNpLT5kYXRhLT5pbml0KSB7CisJCQlyZXQgPSB0Y3BjaS0+ZGF0 YS0+aW5pdCh0Y3BjaSwgdGNwY2ktPmRhdGEpOworCQkJaWYgKHJldCA8IDApCisJCQkJcmV0dXJu IHJldDsKKwkJfQorCX0KKwogCS8qIENsZWFyIGFsbCBldmVudHMgKi8KIAlyZXQgPSB0Y3BjaV93 cml0ZTE2KHRjcGNpLCBUQ1BDX0FMRVJULCAweGZmZmYpOwogCWlmIChyZXQgPCAwKQpAQCAtMzQ0 LDkgKzM4Nyw4IEBAIHN0YXRpYyBpbnQgdGNwY2lfaW5pdChzdHJ1Y3QgdGNwY19kZXYgKnRjcGMp CiAJcmV0dXJuIHRjcGNpX3dyaXRlMTYodGNwY2ksIFRDUENfQUxFUlRfTUFTSywgcmVnKTsKIH0K IAotc3RhdGljIGlycXJldHVybl90IHRjcGNpX2lycShpbnQgaXJxLCB2b2lkICpkZXZfaWQpCitp cnFyZXR1cm5fdCB0Y3BjaV9pcnEoc3RydWN0IHRjcGNpICp0Y3BjaSkKIHsKLQlzdHJ1Y3QgdGNw Y2kgKnRjcGNpID0gZGV2X2lkOwogCXUxNiBzdGF0dXM7CiAKIAl0Y3BjaV9yZWFkMTYodGNwY2ks IFRDUENfQUxFUlQsICZzdGF0dXMpOwpAQCAtNDEyLDYgKzQ1NCwxNCBAQCBzdGF0aWMgaXJxcmV0 dXJuX3QgdGNwY2lfaXJxKGludCBpcnEsIHZvaWQgKmRldl9pZCkKIAogCXJldHVybiBJUlFfSEFO RExFRDsKIH0KK0VYUE9SVF9TWU1CT0xfR1BMKHRjcGNpX2lycSk7CisKK3N0YXRpYyBpcnFyZXR1 cm5fdCBfdGNwY2lfaXJxKGludCBpcnEsIHZvaWQgKmRldl9pZCkKK3sKKwlzdHJ1Y3QgdGNwY2kg KnRjcGNpID0gZGV2X2lkOworCisJcmV0dXJuIHRjcGNpX2lycSh0Y3BjaSk7Cit9CiAKIHN0YXRp YyBjb25zdCBzdHJ1Y3QgcmVnbWFwX2NvbmZpZyB0Y3BjaV9yZWdtYXBfY29uZmlnID0gewogCS5y ZWdfYml0cyA9IDgsCkBAIC00MzUsMjIgKzQ4NSwxOCBAQCBzdGF0aWMgaW50IHRjcGNpX3BhcnNl X2NvbmZpZyhzdHJ1Y3QgdGNwY2kgKnRjcGNpKQogCXJldHVybiAwOwogfQogCi1zdGF0aWMgaW50 IHRjcGNpX3Byb2JlKHN0cnVjdCBpMmNfY2xpZW50ICpjbGllbnQsCi0JCSAgICAgICBjb25zdCBz dHJ1Y3QgaTJjX2RldmljZV9pZCAqaTJjX2lkKQorc3RydWN0IHRjcGNpICp0Y3BjaV9yZWdpc3Rl cl9wb3J0KHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IHRjcGNpX2RhdGEgKmRhdGEpCiB7CiAJ c3RydWN0IHRjcGNpICp0Y3BjaTsKIAlpbnQgZXJyOwogCi0JdGNwY2kgPSBkZXZtX2t6YWxsb2Mo JmNsaWVudC0+ZGV2LCBzaXplb2YoKnRjcGNpKSwgR0ZQX0tFUk5FTCk7CisJdGNwY2kgPSBkZXZt X2t6YWxsb2MoZGV2LCBzaXplb2YoKnRjcGNpKSwgR0ZQX0tFUk5FTCk7CiAJaWYgKCF0Y3BjaSkK LQkJcmV0dXJuIC1FTk9NRU07CisJCXJldHVybiBFUlJfUFRSKC1FTk9NRU0pOwogCi0JdGNwY2kt PmNsaWVudCA9IGNsaWVudDsKLQl0Y3BjaS0+ZGV2ID0gJmNsaWVudC0+ZGV2OwotCWkyY19zZXRf Y2xpZW50ZGF0YShjbGllbnQsIHRjcGNpKTsKLQl0Y3BjaS0+cmVnbWFwID0gZGV2bV9yZWdtYXBf aW5pdF9pMmMoY2xpZW50LCAmdGNwY2lfcmVnbWFwX2NvbmZpZyk7Ci0JaWYgKElTX0VSUih0Y3Bj aS0+cmVnbWFwKSkKLQkJcmV0dXJuIFBUUl9FUlIodGNwY2ktPnJlZ21hcCk7CisJdGNwY2ktPmRl diA9IGRldjsKKwl0Y3BjaS0+ZGF0YSA9IGRhdGE7CisJdGNwY2ktPnJlZ21hcCA9IGRhdGEtPnJl Z21hcDsKIAogCXRjcGNpLT50Y3BjLmluaXQgPSB0Y3BjaV9pbml0OwogCXRjcGNpLT50Y3BjLmdl dF92YnVzID0gdGNwY2lfZ2V0X3ZidXM7CkBAIC00NjcsMjcgKzUxMyw2MyBAQCBzdGF0aWMgaW50 IHRjcGNpX3Byb2JlKHN0cnVjdCBpMmNfY2xpZW50ICpjbGllbnQsCiAKIAllcnIgPSB0Y3BjaV9w YXJzZV9jb25maWcodGNwY2kpOwogCWlmIChlcnIgPCAwKQotCQlyZXR1cm4gZXJyOworCQlyZXR1 cm4gRVJSX1BUUihlcnIpOworCisJdGNwY2ktPnBvcnQgPSB0Y3BtX3JlZ2lzdGVyX3BvcnQodGNw Y2ktPmRldiwgJnRjcGNpLT50Y3BjKTsKKwlpZiAoUFRSX0VSUl9PUl9aRVJPKHRjcGNpLT5wb3J0 KSkKKwkJcmV0dXJuIEVSUl9DQVNUKHRjcGNpLT5wb3J0KTsKIAotCS8qIERpc2FibGUgY2hpcCBp bnRlcnJ1cHRzICovCi0JdGNwY2lfd3JpdGUxNih0Y3BjaSwgVENQQ19BTEVSVF9NQVNLLCAwKTsK KwlyZXR1cm4gdGNwY2k7Cit9CitFWFBPUlRfU1lNQk9MX0dQTCh0Y3BjaV9yZWdpc3Rlcl9wb3J0 KTsKKwordm9pZCB0Y3BjaV91bnJlZ2lzdGVyX3BvcnQoc3RydWN0IHRjcGNpICp0Y3BjaSkKK3sK Kwl0Y3BtX3VucmVnaXN0ZXJfcG9ydCh0Y3BjaS0+cG9ydCk7Cit9CitFWFBPUlRfU1lNQk9MX0dQ TCh0Y3BjaV91bnJlZ2lzdGVyX3BvcnQpOwogCi0JZXJyID0gZGV2bV9yZXF1ZXN0X3RocmVhZGVk X2lycSh0Y3BjaS0+ZGV2LCBjbGllbnQtPmlycSwgTlVMTCwKLQkJCQkJdGNwY2lfaXJxLAorc3Rh dGljIGludCB0Y3BjaV9wcm9iZShzdHJ1Y3QgaTJjX2NsaWVudCAqY2xpZW50LAorCQkgICAgICAg Y29uc3Qgc3RydWN0IGkyY19kZXZpY2VfaWQgKmkyY19pZCkKK3sKKwlzdHJ1Y3QgdGNwY2lfY2hp cCAqY2hpcDsKKwlpbnQgZXJyOworCXUxNiB2YWwgPSAwOworCisJY2hpcCA9IGRldm1fa3phbGxv YygmY2xpZW50LT5kZXYsIHNpemVvZigqY2hpcCksIEdGUF9LRVJORUwpOworCWlmICghY2hpcCkK KwkJcmV0dXJuIC1FTk9NRU07CisKKwljaGlwLT5kYXRhLnJlZ21hcCA9IGRldm1fcmVnbWFwX2lu aXRfaTJjKGNsaWVudCwgJnRjcGNpX3JlZ21hcF9jb25maWcpOworCWlmIChJU19FUlIoY2hpcC0+ ZGF0YS5yZWdtYXApKQorCQlyZXR1cm4gUFRSX0VSUihjaGlwLT5kYXRhLnJlZ21hcCk7CisKKwkv KiBEaXNhYmxlIGNoaXAgaW50ZXJydXB0cyBiZWZvcmUgcmVxdWVzdGluZyBpcnEgKi8KKwllcnIg PSByZWdtYXBfcmF3X3dyaXRlKGNoaXAtPmRhdGEucmVnbWFwLCBUQ1BDX0FMRVJUX01BU0ssICZ2 YWwsCisJCQkgICAgICAgc2l6ZW9mKHUxNikpOworCWlmIChlcnIgPCAwKQorCQlyZXR1cm4gZXJy OworCisJZXJyID0gZGV2bV9yZXF1ZXN0X3RocmVhZGVkX2lycSgmY2xpZW50LT5kZXYsIGNsaWVu dC0+aXJxLCBOVUxMLAorCQkJCQlfdGNwY2lfaXJxLAogCQkJCQlJUlFGX09ORVNIT1QgfCBJUlFG X1RSSUdHRVJfTE9XLAotCQkJCQlkZXZfbmFtZSh0Y3BjaS0+ZGV2KSwgdGNwY2kpOworCQkJCQlk ZXZfbmFtZSgmY2xpZW50LT5kZXYpLCBjaGlwKTsKIAlpZiAoZXJyIDwgMCkKIAkJcmV0dXJuIGVy cjsKIAotCXRjcGNpLT5wb3J0ID0gdGNwbV9yZWdpc3Rlcl9wb3J0KHRjcGNpLT5kZXYsICZ0Y3Bj aS0+dGNwYyk7Ci0JcmV0dXJuIFBUUl9FUlJfT1JfWkVSTyh0Y3BjaS0+cG9ydCk7CisJY2hpcC0+ dGNwY2kgPSB0Y3BjaV9yZWdpc3Rlcl9wb3J0KCZjbGllbnQtPmRldiwgJmNoaXAtPmRhdGEpOwor CWlmIChQVFJfRVJSX09SX1pFUk8oY2hpcC0+dGNwY2kpKQorCQlyZXR1cm4gUFRSX0VSUihjaGlw LT50Y3BjaSk7CisKKwlpMmNfc2V0X2NsaWVudGRhdGEoY2xpZW50LCBjaGlwKTsKKwlyZXR1cm4g MDsKIH0KIAogc3RhdGljIGludCB0Y3BjaV9yZW1vdmUoc3RydWN0IGkyY19jbGllbnQgKmNsaWVu dCkKIHsKLQlzdHJ1Y3QgdGNwY2kgKnRjcGNpID0gaTJjX2dldF9jbGllbnRkYXRhKGNsaWVudCk7 CisJc3RydWN0IHRjcGNpX2NoaXAgKmNoaXAgPSBpMmNfZ2V0X2NsaWVudGRhdGEoY2xpZW50KTsK IAotCXRjcG1fdW5yZWdpc3Rlcl9wb3J0KHRjcGNpLT5wb3J0KTsKKwl0Y3BjaV91bnJlZ2lzdGVy X3BvcnQoY2hpcC0+dGNwY2kpOwogCiAJcmV0dXJuIDA7CiB9CmRpZmYgLS1naXQgYS9kcml2ZXJz L3N0YWdpbmcvdHlwZWMvdGNwY2kuaCBiL2RyaXZlcnMvc3RhZ2luZy90eXBlYy90Y3BjaS5oCmlu ZGV4IGZkZmIwNmMuLmEyYzE3NTQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc3RhZ2luZy90eXBlYy90 Y3BjaS5oCisrKyBiL2RyaXZlcnMvc3RhZ2luZy90eXBlYy90Y3BjaS5oCkBAIC01OSw2ICs1OSw3 IEBACiAjZGVmaW5lIFRDUENfUE9XRVJfQ1RSTF9WQ09OTl9FTkFCTEUJQklUKDApCiAKICNkZWZp bmUgVENQQ19DQ19TVEFUVVMJCQkweDFkCisjZGVmaW5lIFRDUENfQ0NfU1RBVFVTX0RSUFJTVAkJ QklUKDUpCiAjZGVmaW5lIFRDUENfQ0NfU1RBVFVTX1RFUk0JCUJJVCg0KQogI2RlZmluZSBUQ1BD X0NDX1NUQVRVU19DQzJfU0hJRlQJMgogI2RlZmluZSBUQ1BDX0NDX1NUQVRVU19DQzJfTUFTSwkJ MHgzCkBAIC0xMjEsNCArMTIyLDE4IEBACiAjZGVmaW5lIFRDUENfVkJVU19WT0xUQUdFX0FMQVJN X0hJX0NGRwkJMHg3NgogI2RlZmluZSBUQ1BDX1ZCVVNfVk9MVEFHRV9BTEFSTV9MT19DRkcJCTB4 NzgKIAorc3RydWN0IHRjcGNpOworc3RydWN0IHRjcGNpX2RhdGEgeworCXN0cnVjdCByZWdtYXAg KnJlZ21hcDsKKwlpbnQgKCppbml0KShzdHJ1Y3QgdGNwY2kgKnRjcGNpLCBzdHJ1Y3QgdGNwY2lf ZGF0YSAqZGF0YSk7CisJaW50ICgqc2V0X3Zjb25uKShzdHJ1Y3QgdGNwY2kgKnRjcGNpLCBzdHJ1 Y3QgdGNwY2lfZGF0YSAqZGF0YSwKKwkJCSBib29sIGVuYWJsZSk7CisJaW50ICgqc3RhcnRfZHJw X3RvZ2dsaW5nKShzdHJ1Y3QgdGNwY2kgKnRjcGNpLCBzdHJ1Y3QgdGNwY2lfZGF0YSAqZGF0YSwK KwkJCQkgIGVudW0gdHlwZWNfY2Nfc3RhdHVzIGNjKTsKK307CisKK3N0cnVjdCB0Y3BjaSAqdGNw Y2lfcmVnaXN0ZXJfcG9ydChzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCB0Y3BjaV9kYXRhICpk YXRhKTsKK3ZvaWQgdGNwY2lfdW5yZWdpc3Rlcl9wb3J0KHN0cnVjdCB0Y3BjaSAqdGNwY2kpOwor aXJxcmV0dXJuX3QgdGNwY2lfaXJxKHN0cnVjdCB0Y3BjaSAqdGNwY2kpOworCiAjZW5kaWYgLyog X19MSU5VWF9VU0JfVENQQ0lfSCAqLwo=