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: [v4,5/6] usb: musb: Add musb_clearb/w() interface From: min.guo@mediatek.com Message-Id: <1548073351-13739-6-git-send-email-min.guo@mediatek.com> Date: Mon, 21 Jan 2019 20:22:30 +0800 To: Bin Liu , Rob Herring Cc: Greg Kroah-Hartman , Mark Rutland , Matthias Brugger , Alan Stern , chunfeng.yun@mediatek.com, linux-usb@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-mediatek@lists.infradead.org, tony@atomide.com, hdegoede@redhat.com, Min Guo List-ID: RnJvbTogTWluIEd1byA8bWluLmd1b0BtZWRpYXRlay5jb20+CgpEZWxldGUgdGhlIGNvbnN0IGF0 dHJpYnV0ZSBvZiBhZGRyIHBhcmFtZXRlciBpbiByZWFkYi93L2wgaG9va3MsIHRoZXNlCmNoYW5n ZXMgYXJlIGZvciBpbXBsZW1lbnRpbmcgY2xlYXJpbmcgVzFDIHJlZ2lzdGVycy4KUmVwbGFjZSBt dXNiX3JlYWRiL3cgd2l0aCBtdXNiX2NsZWFyYi93IHRvIGNsZWFyIHRoZSBpbnRlcnJ1cHQgc3Rh dHVzLgoKU2lnbmVkLW9mZi1ieTogTWluIEd1byA8bWluLmd1b0BtZWRpYXRlay5jb20+Ci0tLQpu ZXcgcGF0Y2ggYmFzZWQgb24gdjM6Ci0tLQogZHJpdmVycy91c2IvbXVzYi9tdXNiX2NvcmUuYyB8 IDMyICsrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tCiBkcml2ZXJzL3VzYi9tdXNiL211 c2JfY29yZS5oIHwgIDggKysrKysrLS0KIGRyaXZlcnMvdXNiL211c2IvbXVzYl9pby5oICAgfCAg OCArKysrKy0tLQogZHJpdmVycy91c2IvbXVzYi9tdXNiaHNkbWEuYyB8ICAzICsrKwogZHJpdmVy cy91c2IvbXVzYi9zdW54aS5jICAgICB8ICA0ICsrLS0KIGRyaXZlcnMvdXNiL211c2IvdHVzYjYw MTAuYyAgfCAgMiArLQogNiBmaWxlcyBjaGFuZ2VkLCA0MCBpbnNlcnRpb25zKCspLCAxNyBkZWxl dGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9tdXNiL211c2JfY29yZS5jIGIvZHJp dmVycy91c2IvbXVzYi9tdXNiX2NvcmUuYwppbmRleCAyZmU1MjI1Li41ZWY4ODQ4IDEwMDY0NAot LS0gYS9kcml2ZXJzL3VzYi9tdXNiL211c2JfY29yZS5jCisrKyBiL2RyaXZlcnMvdXNiL211c2Iv bXVzYl9jb3JlLmMKQEAgLTI0Niw3ICsyNDYsNyBAQCBzdGF0aWMgdTMyIG11c2JfZGVmYXVsdF9i dXNjdGxfb2Zmc2V0KHU4IGVwbnVtLCB1MTYgb2Zmc2V0KQogCXJldHVybiAweDgwICsgKDB4MDgg KiBlcG51bSkgKyBvZmZzZXQ7CiB9CiAKLXN0YXRpYyB1OCBtdXNiX2RlZmF1bHRfcmVhZGIoY29u c3Qgdm9pZCBfX2lvbWVtICphZGRyLCB1bnNpZ25lZCBvZmZzZXQpCitzdGF0aWMgdTggbXVzYl9k ZWZhdWx0X3JlYWRiKHZvaWQgX19pb21lbSAqYWRkciwgdW5zaWduZWQgb2Zmc2V0KQogewogCXU4 IGRhdGEgPSAgX19yYXdfcmVhZGIoYWRkciArIG9mZnNldCk7CiAKQEAgLTI2MCw3ICsyNjAsNyBA QCBzdGF0aWMgdm9pZCBtdXNiX2RlZmF1bHRfd3JpdGViKHZvaWQgX19pb21lbSAqYWRkciwgdW5z aWduZWQgb2Zmc2V0LCB1OCBkYXRhKQogCV9fcmF3X3dyaXRlYihkYXRhLCBhZGRyICsgb2Zmc2V0 KTsKIH0KIAotc3RhdGljIHUxNiBtdXNiX2RlZmF1bHRfcmVhZHcoY29uc3Qgdm9pZCBfX2lvbWVt ICphZGRyLCB1bnNpZ25lZCBvZmZzZXQpCitzdGF0aWMgdTE2IG11c2JfZGVmYXVsdF9yZWFkdyh2 b2lkIF9faW9tZW0gKmFkZHIsIHVuc2lnbmVkIG9mZnNldCkKIHsKIAl1MTYgZGF0YSA9IF9fcmF3 X3JlYWR3KGFkZHIgKyBvZmZzZXQpOwogCkBAIC0zOTYsMTkgKzM5NiwyNSBAQCBzdGF0aWMgdm9p ZCBtdXNiX2RlZmF1bHRfcmVhZF9maWZvKHN0cnVjdCBtdXNiX2h3X2VwICpod19lcCwgdTE2IGxl biwgdTggKmRzdCkKIC8qCiAgKiBPbGQgc3R5bGUgSU8gZnVuY3Rpb25zCiAgKi8KLXU4ICgqbXVz Yl9yZWFkYikoY29uc3Qgdm9pZCBfX2lvbWVtICphZGRyLCB1bnNpZ25lZCBvZmZzZXQpOwordTgg KCptdXNiX3JlYWRiKSh2b2lkIF9faW9tZW0gKmFkZHIsIHVuc2lnbmVkIG9mZnNldCk7CiBFWFBP UlRfU1lNQk9MX0dQTChtdXNiX3JlYWRiKTsKIAogdm9pZCAoKm11c2Jfd3JpdGViKSh2b2lkIF9f aW9tZW0gKmFkZHIsIHVuc2lnbmVkIG9mZnNldCwgdTggZGF0YSk7CiBFWFBPUlRfU1lNQk9MX0dQ TChtdXNiX3dyaXRlYik7CiAKLXUxNiAoKm11c2JfcmVhZHcpKGNvbnN0IHZvaWQgX19pb21lbSAq YWRkciwgdW5zaWduZWQgb2Zmc2V0KTsKK3U4ICgqbXVzYl9jbGVhcmIpKHZvaWQgX19pb21lbSAq YWRkciwgdW5zaWduZWQgaW50IG9mZnNldCk7CitFWFBPUlRfU1lNQk9MX0dQTChtdXNiX2NsZWFy Yik7CisKK3UxNiAoKm11c2JfcmVhZHcpKHZvaWQgX19pb21lbSAqYWRkciwgdW5zaWduZWQgb2Zm c2V0KTsKIEVYUE9SVF9TWU1CT0xfR1BMKG11c2JfcmVhZHcpOwogCiB2b2lkICgqbXVzYl93cml0 ZXcpKHZvaWQgX19pb21lbSAqYWRkciwgdW5zaWduZWQgb2Zmc2V0LCB1MTYgZGF0YSk7CiBFWFBP UlRfU1lNQk9MX0dQTChtdXNiX3dyaXRldyk7CiAKLXUzMiBtdXNiX3JlYWRsKGNvbnN0IHZvaWQg X19pb21lbSAqYWRkciwgdW5zaWduZWQgb2Zmc2V0KQordTE2ICgqbXVzYl9jbGVhcncpKHZvaWQg X19pb21lbSAqYWRkciwgdW5zaWduZWQgaW50IG9mZnNldCk7CitFWFBPUlRfU1lNQk9MX0dQTCht dXNiX2NsZWFydyk7CisKK3UzMiBtdXNiX3JlYWRsKHZvaWQgX19pb21lbSAqYWRkciwgdW5zaWdu ZWQgb2Zmc2V0KQogewogCXUzMiBkYXRhID0gX19yYXdfcmVhZGwoYWRkciArIG9mZnNldCk7CiAK QEAgLTEwNDcsNyArMTA1Myw2IEBAIHN0YXRpYyBpcnFyZXR1cm5fdCBtdXNiX3N0YWdlMF9pcnEo c3RydWN0IG11c2IgKm11c2IsIHU4IGludF91c2IsCiBzdGF0aWMgdm9pZCBtdXNiX2Rpc2FibGVf aW50ZXJydXB0cyhzdHJ1Y3QgbXVzYiAqbXVzYikKIHsKIAl2b2lkIF9faW9tZW0JKm1iYXNlID0g bXVzYi0+bXJlZ3M7Ci0JdTE2CXRlbXA7CiAKIAkvKiBkaXNhYmxlIGludGVycnVwdHMgKi8KIAlt dXNiX3dyaXRlYihtYmFzZSwgTVVTQl9JTlRSVVNCRSwgMCk7CkBAIC0xMDU3LDkgKzEwNjIsOSBA QCBzdGF0aWMgdm9pZCBtdXNiX2Rpc2FibGVfaW50ZXJydXB0cyhzdHJ1Y3QgbXVzYiAqbXVzYikK IAltdXNiX3dyaXRldyhtYmFzZSwgTVVTQl9JTlRSUlhFLCAwKTsKIAogCS8qICBmbHVzaCBwZW5k aW5nIGludGVycnVwdHMgKi8KLQl0ZW1wID0gbXVzYl9yZWFkYihtYmFzZSwgTVVTQl9JTlRSVVNC KTsKLQl0ZW1wID0gbXVzYl9yZWFkdyhtYmFzZSwgTVVTQl9JTlRSVFgpOwotCXRlbXAgPSBtdXNi X3JlYWR3KG1iYXNlLCBNVVNCX0lOVFJSWCk7CisJbXVzYl9jbGVhcmIobWJhc2UsIE1VU0JfSU5U UlVTQik7CisJbXVzYl9jbGVhcncobWJhc2UsIE1VU0JfSU5UUlRYKTsKKwltdXNiX2NsZWFydyht YmFzZSwgTVVTQl9JTlRSUlgpOwogfQogCiBzdGF0aWMgdm9pZCBtdXNiX2VuYWJsZV9pbnRlcnJ1 cHRzKHN0cnVjdCBtdXNiICptdXNiKQpAQCAtMjI4NCwxMCArMjI4OSwxOSBAQCBzdGF0aWMgdm9p ZCBtdXNiX2RlYXNzZXJ0X3Jlc2V0KHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKIAkJbXVzYl9y ZWFkYiA9IG11c2ItPm9wcy0+cmVhZGI7CiAJaWYgKG11c2ItPm9wcy0+d3JpdGViKQogCQltdXNi X3dyaXRlYiA9IG11c2ItPm9wcy0+d3JpdGViOworCWlmIChtdXNiLT5vcHMtPmNsZWFyYikKKwkJ bXVzYl9jbGVhcmIgPSBtdXNiLT5vcHMtPmNsZWFyYjsKKwllbHNlCisJCW11c2JfY2xlYXJiID0g bXVzYl9yZWFkYjsKKwogCWlmIChtdXNiLT5vcHMtPnJlYWR3KQogCQltdXNiX3JlYWR3ID0gbXVz Yi0+b3BzLT5yZWFkdzsKIAlpZiAobXVzYi0+b3BzLT53cml0ZXcpCiAJCW11c2Jfd3JpdGV3ID0g bXVzYi0+b3BzLT53cml0ZXc7CisJaWYgKG11c2ItPm9wcy0+Y2xlYXJ3KQorCQltdXNiX2NsZWFy dyA9IG11c2ItPm9wcy0+Y2xlYXJ3OworCWVsc2UKKwkJbXVzYl9jbGVhcncgPSBtdXNiX3JlYWR3 OwogCiAjaWZuZGVmIENPTkZJR19NVVNCX1BJT19PTkxZCiAJaWYgKCFtdXNiLT5vcHMtPmRtYV9p bml0IHx8ICFtdXNiLT5vcHMtPmRtYV9leGl0KSB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9t dXNiL211c2JfY29yZS5oIGIvZHJpdmVycy91c2IvbXVzYi9tdXNiX2NvcmUuaAppbmRleCA5ZjVh NjljLi4wZDlhMzVmIDEwMDY0NAotLS0gYS9kcml2ZXJzL3VzYi9tdXNiL211c2JfY29yZS5oCisr KyBiL2RyaXZlcnMvdXNiL211c2IvbXVzYl9jb3JlLmgKQEAgLTEyMCw4ICsxMjAsMTAgQEAgZW51 bSBtdXNiX2dfZXAwX3N0YXRlIHsKICAqIEBmaWZvX29mZnNldDogcmV0dXJucyB0aGUgZmlmbyBv ZmZzZXQKICAqIEByZWFkYjoJcmVhZCA4IGJpdHMKICAqIEB3cml0ZWI6CXdyaXRlIDggYml0cwor ICogQGNsZWFyYjoJY291bGQgYmUgY2xlYXItb24tcmVhZGIgb3IgVzFDCiAgKiBAcmVhZHc6CXJl YWQgMTYgYml0cwogICogQHdyaXRldzoJd3JpdGUgMTYgYml0cworICogQGNsZWFydzoJY291bGQg YmUgY2xlYXItb24tcmVhZHcgb3IgVzFDCiAgKiBAcmVhZF9maWZvOglyZWFkcyB0aGUgZmlmbwog ICogQHdyaXRlX2ZpZm86CXdyaXRlcyB0byBmaWZvCiAgKiBAZ2V0X3RvZ2dsZToJcGxhdGZvcm0g c3BlY2lmaWMgZ2V0IHRvZ2dsZSBmdW5jdGlvbgpAQCAtMTY0LDEwICsxNjYsMTIgQEAgc3RydWN0 IG11c2JfcGxhdGZvcm1fb3BzIHsKIAl1MTYJZmlmb19tb2RlOwogCXUzMgkoKmZpZm9fb2Zmc2V0 KSh1OCBlcG51bSk7CiAJdTMyCSgqYnVzY3RsX29mZnNldCkodTggZXBudW0sIHUxNiBvZmZzZXQp OwotCXU4CSgqcmVhZGIpKGNvbnN0IHZvaWQgX19pb21lbSAqYWRkciwgdW5zaWduZWQgb2Zmc2V0 KTsKKwl1OAkoKnJlYWRiKSh2b2lkIF9faW9tZW0gKmFkZHIsIHVuc2lnbmVkIG9mZnNldCk7CiAJ dm9pZAkoKndyaXRlYikodm9pZCBfX2lvbWVtICphZGRyLCB1bnNpZ25lZCBvZmZzZXQsIHU4IGRh dGEpOwotCXUxNgkoKnJlYWR3KShjb25zdCB2b2lkIF9faW9tZW0gKmFkZHIsIHVuc2lnbmVkIG9m ZnNldCk7CisJdTgJKCpjbGVhcmIpKHZvaWQgX19pb21lbSAqYWRkciwgdW5zaWduZWQgaW50IG9m ZnNldCk7CisJdTE2CSgqcmVhZHcpKHZvaWQgX19pb21lbSAqYWRkciwgdW5zaWduZWQgb2Zmc2V0 KTsKIAl2b2lkCSgqd3JpdGV3KSh2b2lkIF9faW9tZW0gKmFkZHIsIHVuc2lnbmVkIG9mZnNldCwg dTE2IGRhdGEpOworCXUxNgkoKmNsZWFydykodm9pZCBfX2lvbWVtICphZGRyLCB1bnNpZ25lZCBp bnQgb2Zmc2V0KTsKIAl2b2lkCSgqcmVhZF9maWZvKShzdHJ1Y3QgbXVzYl9od19lcCAqaHdfZXAs IHUxNiBsZW4sIHU4ICpidWYpOwogCXZvaWQJKCp3cml0ZV9maWZvKShzdHJ1Y3QgbXVzYl9od19l cCAqaHdfZXAsIHUxNiBsZW4sIGNvbnN0IHU4ICpidWYpOwogCXUxNgkoKmdldF90b2dnbGUpKHN0 cnVjdCBtdXNiX3FoICpxaCwgaW50IGlzX291dCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9t dXNiL211c2JfaW8uaCBiL2RyaXZlcnMvdXNiL211c2IvbXVzYl9pby5oCmluZGV4IDgxNzkzMzQu LjcyMDA1OTYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdXNiL211c2IvbXVzYl9pby5oCisrKyBiL2Ry aXZlcnMvdXNiL211c2IvbXVzYl9pby5oCkBAIC0zNywxMSArMzcsMTMgQEAgc3RydWN0IG11c2Jf aW8gewogfTsKIAogLyogRG8gbm90IGFkZCBuZXcgZW50cmllcyBoZXJlLCBhZGQgdGhlbSB0aGUg c3RydWN0IG11c2JfaW8gaW5zdGVhZCAqLwotZXh0ZXJuIHU4ICgqbXVzYl9yZWFkYikoY29uc3Qg dm9pZCBfX2lvbWVtICphZGRyLCB1bnNpZ25lZCBvZmZzZXQpOworZXh0ZXJuIHU4ICgqbXVzYl9y ZWFkYikodm9pZCBfX2lvbWVtICphZGRyLCB1bnNpZ25lZCBvZmZzZXQpOwogZXh0ZXJuIHZvaWQg KCptdXNiX3dyaXRlYikodm9pZCBfX2lvbWVtICphZGRyLCB1bnNpZ25lZCBvZmZzZXQsIHU4IGRh dGEpOwotZXh0ZXJuIHUxNiAoKm11c2JfcmVhZHcpKGNvbnN0IHZvaWQgX19pb21lbSAqYWRkciwg dW5zaWduZWQgb2Zmc2V0KTsKK2V4dGVybiB1OCAoKm11c2JfY2xlYXJiKSh2b2lkIF9faW9tZW0g KmFkZHIsIHVuc2lnbmVkIGludCBvZmZzZXQpOworZXh0ZXJuIHUxNiAoKm11c2JfcmVhZHcpKHZv aWQgX19pb21lbSAqYWRkciwgdW5zaWduZWQgb2Zmc2V0KTsKIGV4dGVybiB2b2lkICgqbXVzYl93 cml0ZXcpKHZvaWQgX19pb21lbSAqYWRkciwgdW5zaWduZWQgb2Zmc2V0LCB1MTYgZGF0YSk7Ci1l eHRlcm4gdTMyIG11c2JfcmVhZGwoY29uc3Qgdm9pZCBfX2lvbWVtICphZGRyLCB1bnNpZ25lZCBv ZmZzZXQpOworZXh0ZXJuIHUxNiAoKm11c2JfY2xlYXJ3KSh2b2lkIF9faW9tZW0gKmFkZHIsIHVu c2lnbmVkIGludCBvZmZzZXQpOworZXh0ZXJuIHUzMiBtdXNiX3JlYWRsKHZvaWQgX19pb21lbSAq YWRkciwgdW5zaWduZWQgb2Zmc2V0KTsKIGV4dGVybiB2b2lkIG11c2Jfd3JpdGVsKHZvaWQgX19p b21lbSAqYWRkciwgdW5zaWduZWQgb2Zmc2V0LCB1MzIgZGF0YSk7CiAKICNlbmRpZgpkaWZmIC0t Z2l0IGEvZHJpdmVycy91c2IvbXVzYi9tdXNiaHNkbWEuYyBiL2RyaXZlcnMvdXNiL211c2IvbXVz YmhzZG1hLmMKaW5kZXggYjIzOTRhNy4uN2JmOTFjYiAxMDA2NDQKLS0tIGEvZHJpdmVycy91c2Iv bXVzYi9tdXNiaHNkbWEuYworKysgYi9kcml2ZXJzL3VzYi9tdXNiL211c2Joc2RtYS5jCkBAIC0y ODYsNiArMjg2LDkgQEAgaXJxcmV0dXJuX3QgZG1hX2NvbnRyb2xsZXJfaXJxKGludCBpcnEsIHZv aWQgKnByaXZhdGVfZGF0YSkKIAogCWludF9oc2RtYSA9IG11c2JfcmVhZGIobWJhc2UsIE1VU0Jf SFNETUFfSU5UUik7CiAKKwkvKiBjbGVhciBwZW5kaW5nIGludGVycnVwdHMgYnkgbWFudWFsICov CisJbXVzYl9jbGVhcmIobXVzYi0+bXJlZ3MsIE1VU0JfSFNETUFfSU5UUik7CisKIAlpZiAoIWlu dF9oc2RtYSkgewogCQltdXNiX2RiZyhtdXNiLCAic3B1cmlvdXMgRE1BIGlycSIpOwogCmRpZmYg LS1naXQgYS9kcml2ZXJzL3VzYi9tdXNiL3N1bnhpLmMgYi9kcml2ZXJzL3VzYi9tdXNiL3N1bnhp LmMKaW5kZXggODMyYTQxZi4uMmMxYmJhYSAxMDA2NDQKLS0tIGEvZHJpdmVycy91c2IvbXVzYi9z dW54aS5jCisrKyBiL2RyaXZlcnMvdXNiL211c2Ivc3VueGkuYwpAQCAtNDA3LDcgKzQwNyw3IEBA IHN0YXRpYyB1MzIgc3VueGlfbXVzYl9idXNjdGxfb2Zmc2V0KHU4IGVwbnVtLCB1MTYgb2Zmc2V0 KQogCXJldHVybiBTVU5YSV9NVVNCX1RYRlVOQ0FERFIgKyBvZmZzZXQ7CiB9CiAKLXN0YXRpYyB1 OCBzdW54aV9tdXNiX3JlYWRiKGNvbnN0IHZvaWQgX19pb21lbSAqYWRkciwgdW5zaWduZWQgb2Zm c2V0KQorc3RhdGljIHU4IHN1bnhpX211c2JfcmVhZGIodm9pZCBfX2lvbWVtICphZGRyLCB1bnNp Z25lZCBvZmZzZXQpCiB7CiAJc3RydWN0IHN1bnhpX2dsdWUgKmdsdWU7CiAKQEAgLTUyMCw3ICs1 MjAsNyBAQCBzdGF0aWMgdm9pZCBzdW54aV9tdXNiX3dyaXRlYih2b2lkIF9faW9tZW0gKmFkZHIs IHVuc2lnbmVkIG9mZnNldCwgdTggZGF0YSkKIAkJKGludCkoYWRkciAtIHN1bnhpX211c2ItPm1y ZWdzKSk7CiB9CiAKLXN0YXRpYyB1MTYgc3VueGlfbXVzYl9yZWFkdyhjb25zdCB2b2lkIF9faW9t ZW0gKmFkZHIsIHVuc2lnbmVkIG9mZnNldCkKK3N0YXRpYyB1MTYgc3VueGlfbXVzYl9yZWFkdyh2 b2lkIF9faW9tZW0gKmFkZHIsIHVuc2lnbmVkIG9mZnNldCkKIHsKIAlpZiAoYWRkciA9PSBzdW54 aV9tdXNiLT5tcmVncykgewogCQkvKiBnZW5lcmljIGNvbnRyb2wgb3IgZmlmbyBjb250cm9sIHJl ZyBhY2Nlc3MgKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL211c2IvdHVzYjYwMTAuYyBiL2Ry aXZlcnMvdXNiL211c2IvdHVzYjYwMTAuYwppbmRleCAzOTQ1MzI4Li5jZmI5NGY5IDEwMDY0NAot LS0gYS9kcml2ZXJzL3VzYi9tdXNiL3R1c2I2MDEwLmMKKysrIGIvZHJpdmVycy91c2IvbXVzYi90 dXNiNjAxMC5jCkBAIC0xNDIsNyArMTQyLDcgQEAgc3RhdGljIHZvaWQgdHVzYl9lcF9zZWxlY3Qo dm9pZCBfX2lvbWVtICptYmFzZSwgdTggZXBudW0pCiAvKgogICogVFVTQjYwMTAgZG9lc24ndCBh bGxvdyA4LWJpdCBhY2Nlc3M7IDE2LWJpdCBhY2Nlc3MgaXMgdGhlIG1pbmltdW0uCiAgKi8KLXN0 YXRpYyB1OCB0dXNiX3JlYWRiKGNvbnN0IHZvaWQgX19pb21lbSAqYWRkciwgdW5zaWduZWQgb2Zm c2V0KQorc3RhdGljIHU4IHR1c2JfcmVhZGIodm9pZCBfX2lvbWVtICphZGRyLCB1bnNpZ25lZCBv ZmZzZXQpCiB7CiAJdTE2IHRtcDsKIAl1OCB2YWw7Cg==