From mboxrd@z Thu Jan 1 00:00:00 1970 Return-path: Received: from m43-7.mailgun.net ([69.72.43.7]) by merlin.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1kI7m6-0003PB-C6 for ath11k@lists.infradead.org; Tue, 15 Sep 2020 10:01:26 +0000 From: Sowmiya Sree Elavalagan Subject: [PATCH v3] ath11k: cold boot calibration support Date: Tue, 15 Sep 2020 15:29:51 +0530 Message-Id: <1600163991-2093-1-git-send-email-ssreeela@codeaurora.org> MIME-Version: 1.0 List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "ath11k" Errors-To: ath11k-bounces+kvalo=adurom.com@lists.infradead.org To: ath11k@lists.infradead.org Cc: Govindaraj Saminathan , Sowmiya Sree Elavalagan , linux-wireless@vger.kernel.org RnJvbTogR292aW5kYXJhaiBTYW1pbmF0aGFuIDxnc2FtaW5AY29kZWF1cm9yYS5vcmc+Cgpjb2xk IGJvb3QgY2FsaWJyYXRpb24gaXMgdGhlIHByb2Nlc3MgdG8gY2FsaWJyYXRlIGFsbCB0aGUgY2hh bm5lbHMKZHVyaW5nIHRoZSBib290LXVwIHRvIGF2b2lkIHRoZSBjYWxpYnJhdGlvbiBkZWxheSBk dXJpbmcgdGhlCmNoYW5uZWwgY2hhbmdlLgpEdXJpbmcgdGhlIGJvb3QtdXAsIGZpcm13YXJlIHN0 YXJ0ZWQgd2l0aCBtb2RlIOKAnGNvbGRfYm9vdF9jYWxpYnJhdGlvbuKAnQpGaXJtd2FyZSBjYWxp YnJhdGUgYWxsIGNoYW5uZWxzIGFuZCBnZW5lcmF0ZSBDYWxEYihERFIpLgpTdWJzZXF1ZW50IFdJ RkkgT04gd2lsbCByZXVzZSB0aGUgc2FtZSBDYWxEYi4KRmlybXdhcmUgcmVzdGFydGVkIHdpdGgg TWlzc2lvbiBtb2RlIHRvIGNvbnRpbnVlIHRoZSBub3JtYWwgb3BlcmF0aW9uLgoKY2FsZGIgbWVt b3J5IGFkZHJlc3Mgc2VuZCB0byBmaXJtd2FyZSB0aHJvdWdoIHRoZSBRTUkgbWVzc2FnZS5GaXJt d2FyZQp1c2UgdGhpcyBhZGRyZXNzIHRvIHN0b3JlIHRoZSBjYWxkYiBkYXRhIGFuZCB1c2UgaXQg dW50aWwgbmV4dCByZWJvb3QuCgpUaGlzIHdpbGwgZ2l2ZSB0aGUgaW1wcm92ZW1lbnQgZHVyaW5n IHRoZSBjaGFubmVsIGNoYW5nZS4gQnV0IGl0IGlzCmluY3JlYXNpbmcgdGhlIGJvb3QtdXAgdGlt ZSh1cCB0byAxNXNlYyBkZXBlbmQgb24gbnVtYmVyIG9mIHJhZGlvcykuClNvIGlmIHRoZSB1c2Vy IHdhbnQgdG8gcmVkdWNlIHRoZSBib290LXVwIHRpbWUgYW5kIGFjY2VwdGluZyBmb3IgY2hhbm5l bApjaGFuZ2UgZGVsYXksIHVzZXIgY2FuIGRpc2FibGUgdGhpcyBmZWF0dXJlIHVzaW5nIHRoZSBt b2R1bGUgcGFyYW0KY29sZF9ib290X2NhbCA9MC4KVGVzdGVkLW9uOiBJUFE4MDc0IFdMQU4uSEsu Mi40LjAuMS0wMDE5Mi1RQ0FIS1NXUExfU0lMSUNPTlotMQoKClNpZ25lZC1vZmYtYnk6IEdvdmlu ZGFyYWogU2FtaW5hdGhhbiA8Z3NhbWluQGNvZGVhdXJvcmEub3JnPgpDby1kZXZlbG9wZWQtYnk6 IFNvd21peWEgU3JlZSBFbGF2YWxhZ2FuIDxzc3JlZWVsYUBjb2RlYXVyb3JhLm9yZz4KU2lnbmVk LW9mZi1ieTogU293bWl5YSBTcmVlIEVsYXZhbGFnYW4gPHNzcmVlZWxhQGNvZGVhdXJvcmEub3Jn PgotLS0KdjI6CiAgIC0gRml4ZWQgY29tcGlsYXRpb25zIHdhcm5pbmdzCiAgICAgUmVwb3J0ZWQt Ynk6IGtlcm5lbCB0ZXN0IHJvYm90IDxsa3BAaW50ZWwuY29tPgp2MzoKICAgLSBSZWJhc2VkCiAg ICAgQWRkZWQgY29sZF9ib290X2NhbGliIGZsYWcgaW4gaHcgcGFyYW1zIHRvIGVuYWJsZSBjb2xk IGJvb3QgY2FsaWJyYXRpb24gb25seSBmb3Igc3VwcG9ydGVkIGhhcmR3YXJlCi0tLQogZHJpdmVy cy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYyAgfCAyNyArKysrKysrKysrKysrKwogZHJp dmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jb3JlLmMgfCAgMyArKwogZHJpdmVycy9uZXQv d2lyZWxlc3MvYXRoL2F0aDExay9jb3JlLmggfCAgNSArKysKIGRyaXZlcnMvbmV0L3dpcmVsZXNz L2F0aC9hdGgxMWsvaHcuaCAgIHwgIDEgKwogZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEx ay9xbWkuYyAgfCA2NyArKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tCiBkcml2ZXJz L25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL3FtaS5oICB8ICAzICsrCiA2IGZpbGVzIGNoYW5nZWQs IDk5IGluc2VydGlvbnMoKyksIDcgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9u ZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9h dGgxMWsvYWhiLmMKaW5kZXggNjM4MGQ0OC4uY2NiNmQ0MCAxMDA2NDQKLS0tIGEvZHJpdmVycy9u ZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYworKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9h dGgvYXRoMTFrL2FoYi5jCkBAIC01NzMsNiArNTczLDMxIEBAIHN0YXRpYyB2b2lkIGF0aDExa19h aGJfcG93ZXJfZG93bihzdHJ1Y3QgYXRoMTFrX2Jhc2UgKmFiKQogCXJwcm9jX3NodXRkb3duKGFi LT50Z3RfcnByb2MpOwogfQogCitzdGF0aWMgaW50IGF0aDExa19haGJfZndyZXNldF9mcm9tX2Nv bGRfYm9vdChzdHJ1Y3QgYXRoMTFrX2Jhc2UgKmFiKQoreworCWludCB0aW1lb3V0OworCisJaWYg KGF0aDExa19jb2xkX2Jvb3RfY2FsID09IDAgfHwgYWItPnFtaS5jYWxfZG9uZSB8fAorCSAgICBh Yi0+aHdfcGFyYW1zLmNvbGRfYm9vdF9jYWxpYiA9PSAwKQorCQlyZXR1cm4gMDsKKworCWF0aDEx a19kYmcoYWIsIEFUSDExS19EQkdfQUhCLCAid2FpdCBmb3IgY29sZCBib290IGRvbmVcbiIpOwor CXRpbWVvdXQgPSB3YWl0X2V2ZW50X3RpbWVvdXQoYWItPnFtaS5jb2xkX2Jvb3Rfd2FpdHEsCisJ CQkJICAgICAoYWItPnFtaS5jYWxfZG9uZSAgPT0gMSksCisJCQkJICAgICBBVEgxMUtfQ09MRF9C T09UX0ZXX1JFU0VUX0RFTEFZKTsKKwlpZiAodGltZW91dCA8PSAwKSB7CisJCWF0aDExa193YXJu KGFiLCAiQ29sZGJvb3QgQ2FsaWJyYXRpb24gdGltZWQgb3V0XG4iKTsKKwkJcmV0dXJuIC1FVElN RURPVVQ7CisJfQorCisJLyogcmVzZXQgdGhlIGZpcm13YXJlICovCisJYXRoMTFrX2FoYl9wb3dl cl9kb3duKGFiKTsKKwlhdGgxMWtfYWhiX3Bvd2VyX3VwKGFiKTsKKworCWF0aDExa19kYmcoYWIs IEFUSDExS19EQkdfQUhCLCAiZXhpdCB3YWl0IGZvciBjb2xkIGJvb3QgZG9uZVxuIik7CisJcmV0 dXJuIDA7Cit9CisKIHN0YXRpYyB2b2lkIGF0aDExa19haGJfaW5pdF9xbWlfY2VfY29uZmlnKHN0 cnVjdCBhdGgxMWtfYmFzZSAqYWIpCiB7CiAJc3RydWN0IGF0aDExa19xbWlfY2VfY2ZnICpjZmcg PSAmYWItPnFtaS5jZV9jZmc7CkBAIC05MDMsNiArOTI4LDggQEAgc3RhdGljIGludCBhdGgxMWtf YWhiX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiAJCWdvdG8gZXJyX2NlX2Zy ZWU7CiAJfQogCisJYXRoMTFrX2FoYl9md3Jlc2V0X2Zyb21fY29sZF9ib290KGFiKTsKKwogCXJl dHVybiAwOwogCiBlcnJfY2VfZnJlZToKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNz L2F0aC9hdGgxMWsvY29yZS5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jb3Jl LmMKaW5kZXggNDM3YjExMi4uYzdkYjBlMSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxl c3MvYXRoL2F0aDExay9jb3JlLmMKKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEx ay9jb3JlLmMKQEAgLTQzLDYgKzQzLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBhdGgxMWtfaHdf cGFyYW1zIGF0aDExa19od19wYXJhbXNbXSA9IHsKIAkJLnZkZXZfc3RhcnRfZGVsYXkgPSBmYWxz ZSwKIAkJLmh0dF9wZWVyX21hcF92MiA9IHRydWUsCiAJCS50Y2xfMF9vbmx5ID0gZmFsc2UsCisJ CS5jb2xkX2Jvb3RfY2FsaWIgPSB0cnVlLAogCX0sCiAJewogCQkubmFtZSA9ICJxY2E2MzkwIGh3 Mi4wIiwKQEAgLTY4LDYgKzY5LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBhdGgxMWtfaHdfcGFy YW1zIGF0aDExa19od19wYXJhbXNbXSA9IHsKIAkJLnZkZXZfc3RhcnRfZGVsYXkgPSB0cnVlLAog CQkuaHR0X3BlZXJfbWFwX3YyID0gZmFsc2UsCiAJCS50Y2xfMF9vbmx5ID0gdHJ1ZSwKKwkJLmNv bGRfYm9vdF9jYWxpYiA9IGZhbHNlLAogCX0sCiB9OwogCkBAIC04NzEsNiArODczLDcgQEAgc3Ry dWN0IGF0aDExa19iYXNlICphdGgxMWtfY29yZV9hbGxvYyhzdHJ1Y3QgZGV2aWNlICpkZXYsIHNp emVfdCBwcml2X3NpemUsCiAJSU5JVF9MSVNUX0hFQUQoJmFiLT5wZWVycyk7CiAJaW5pdF93YWl0 cXVldWVfaGVhZCgmYWItPnBlZXJfbWFwcGluZ193cSk7CiAJaW5pdF93YWl0cXVldWVfaGVhZCgm YWItPndtaV9hYi50eF9jcmVkaXRzX3dxKTsKKwlpbml0X3dhaXRxdWV1ZV9oZWFkKCZhYi0+cW1p LmNvbGRfYm9vdF93YWl0cSk7CiAJSU5JVF9XT1JLKCZhYi0+cmVzdGFydF93b3JrLCBhdGgxMWtf Y29yZV9yZXN0YXJ0KTsKIAl0aW1lcl9zZXR1cCgmYWItPnJ4X3JlcGxlbmlzaF9yZXRyeSwgYXRo MTFrX2NlX3J4X3JlcGxlbmlzaF9yZXRyeSwgMCk7CiAJYWItPmRldiA9IGRldjsKZGlmZiAtLWdp dCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY29yZS5oIGIvZHJpdmVycy9uZXQv d2lyZWxlc3MvYXRoL2F0aDExay9jb3JlLmgKaW5kZXggZDIxMTkxYy4uMWQ4MjQyZSAxMDA2NDQK LS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jb3JlLmgKKysrIGIvZHJpdmVy cy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jb3JlLmgKQEAgLTk5LDggKzk5LDEzIEBAIGVudW0g YXRoMTFrX2Zpcm13YXJlX21vZGUgewogCiAJLyogZmFjdG9yeSB0ZXN0cyBldGMgKi8KIAlBVEgx MUtfRklSTVdBUkVfTU9ERV9GVE0sCisKKwkvKiBDb2xkIGJvb3QgY2FsaWJyYXRpb24gKi8KKwlB VEgxMUtfRklSTVdBUkVfTU9ERV9DT0xEX0JPT1QgPSA3LAogfTsKIAorZXh0ZXJuIGJvb2wgYXRo MTFrX2NvbGRfYm9vdF9jYWw7CisKICNkZWZpbmUgQVRIMTFLX0lSUV9OVU1fTUFYIDUyCiAjZGVm aW5lIEFUSDExS19FWFRfSVJRX05VTV9NQVgJMTYKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQv d2lyZWxlc3MvYXRoL2F0aDExay9ody5oIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEx ay9ody5oCmluZGV4IGQxNWZhN2YuLmE1ODU3NzIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3dp cmVsZXNzL2F0aC9hdGgxMWsvaHcuaAorKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRo MTFrL2h3LmgKQEAgLTE1Miw2ICsxNTIsNyBAQCBzdHJ1Y3QgYXRoMTFrX2h3X3BhcmFtcyB7CiAJ Ym9vbCB2ZGV2X3N0YXJ0X2RlbGF5OwogCWJvb2wgaHR0X3BlZXJfbWFwX3YyOwogCWJvb2wgdGNs XzBfb25seTsKKwlib29sIGNvbGRfYm9vdF9jYWxpYjsKIH07CiAKIHN0cnVjdCBhdGgxMWtfaHdf b3BzIHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvcW1pLmMg Yi9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL3FtaS5jCmluZGV4IGI5MDZiNTAuLjI1 Yzk5ZGUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvcW1pLmMK KysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9xbWkuYwpAQCAtMTIsNiArMTIs MTIgQEAKICNkZWZpbmUgU0xFRVBfQ0xPQ0tfU0VMRUNUX0lOVEVSTkFMX0JJVAkweDAyCiAjZGVm aW5lIEhPU1RfQ1NUQVRFX0JJVAkJCTB4MDQKIAorYm9vbCBhdGgxMWtfY29sZF9ib290X2NhbCA9 IDE7Cittb2R1bGVfcGFyYW1fbmFtZWQoY29sZF9ib290X2NhbCwgYXRoMTFrX2NvbGRfYm9vdF9j YWwsIGJvb2wsIDA2NDQpOworTU9EVUxFX1BBUk1fREVTQyhjb2xkX2Jvb3RfY2FsLAorCQkgIkNv bGQgYm9vdCB3aWxsIGJyaW5nIGRvd24gdGhlIGNoYW5uZWwgc3dpdGNoIHRpbWUgYnV0ICIKKwkJ ICJpdCB3aWxsIGluY3JlYXNlIHRoZSBkcml2ZXIgbG9hZCB0aW1lIChlbmFibGU6MSwgZGlzYWJs ZTowKSIpOworCiBzdGF0aWMgc3RydWN0IHFtaV9lbGVtX2luZm8gcW1pX3dsYW5md19ob3N0X2Nh cF9yZXFfbXNnX3YwMV9laVtdID0gewogCXsKIAkJLmRhdGFfdHlwZQk9IFFNSV9PUFRfRkxBRywK QEAgLTE3NjcsOSArMTc3MywxNiBAQCBzdGF0aWMgaW50IGF0aDExa19xbWlfYXNzaWduX3Rhcmdl dF9tZW1fY2h1bmsoc3RydWN0IGF0aDExa19iYXNlICphYikKIAkJCQlhdGgxMWtfd2FybihhYiwg InFtaSBtZW0gc2l6ZSBpcyBsb3cgdG8gbG9hZCBjYWxkYXRhXG4iKTsKIAkJCQlyZXR1cm4gLUVJ TlZBTDsKIAkJCX0KLQkJCS8qIFRPRE8gYXRoMTFrIGRvZXMgbm90IHN1cHBvcnQgY29sZCBib290 IGNhbGlicmF0aW9uICovCi0JCQlhYi0+cW1pLnRhcmdldF9tZW1baWR4XS5wYWRkciA9IDA7Ci0J CQlhYi0+cW1pLnRhcmdldF9tZW1baWR4XS52YWRkciA9IE5VTEw7CisKKwkJCWlmIChhdGgxMWtf Y29sZF9ib290X2NhbCAmJiBhYi0+aHdfcGFyYW1zLmNvbGRfYm9vdF9jYWxpYikgeworCQkJCWFi LT5xbWkudGFyZ2V0X21lbVtpZHhdLnBhZGRyID0KKwkJCQkJCSAgICAgQVRIMTFLX1FNSV9DQUxE Ql9BRERSRVNTOworCQkJCWFiLT5xbWkudGFyZ2V0X21lbVtpZHhdLnZhZGRyID0KKwkJCQkJCSAg ICAgKHZvaWQgKilBVEgxMUtfUU1JX0NBTERCX0FERFJFU1M7CisJCQl9IGVsc2UgeworCQkJCWFi LT5xbWkudGFyZ2V0X21lbVtpZHhdLnBhZGRyID0gMDsKKwkJCQlhYi0+cW1pLnRhcmdldF9tZW1b aWR4XS52YWRkciA9IE5VTEw7CisJCQl9CiAJCQlhYi0+cW1pLnRhcmdldF9tZW1baWR4XS5zaXpl ID0gYWItPnFtaS50YXJnZXRfbWVtW2ldLnNpemU7CiAJCQlhYi0+cW1pLnRhcmdldF9tZW1baWR4 XS50eXBlID0gYWItPnFtaS50YXJnZXRfbWVtW2ldLnR5cGU7CiAJCQlpZHgrKzsKQEAgLTIzMzEs NiArMjM0NCwzMiBAQCBpbnQgYXRoMTFrX3FtaV9maXJtd2FyZV9zdGFydChzdHJ1Y3QgYXRoMTFr X2Jhc2UgKmFiLAogCXJldHVybiAwOwogfQogCitzdGF0aWMgaW50IGF0aDExa19xbWlfcHJvY2Vz c19jb2xkYm9vdF9jYWxpYnJhdGlvbihzdHJ1Y3QgYXRoMTFrX2Jhc2UgKmFiKQoreworCWludCB0 aW1lb3V0OworCWludCByZXQ7CisKKwlyZXQgPSBhdGgxMWtfcW1pX3dsYW5md19tb2RlX3NlbmQo YWIsIEFUSDExS19GSVJNV0FSRV9NT0RFX0NPTERfQk9PVCk7CisJaWYgKHJldCA8IDApIHsKKwkJ YXRoMTFrX3dhcm4oYWIsICJxbWkgZmFpbGVkIHRvIHNlbmQgd2xhbiBmdyBtb2RlOiVkXG4iLCBy ZXQpOworCQlyZXR1cm4gcmV0OworCX0KKworCWF0aDExa19kYmcoYWIsIEFUSDExS19EQkdfUU1J LCAiQ29sZGJvb3QgY2FsaWJyYXRpb24gd2FpdCBzdGFydGVkXG4iKTsKKworCXRpbWVvdXQgPSB3 YWl0X2V2ZW50X3RpbWVvdXQoYWItPnFtaS5jb2xkX2Jvb3Rfd2FpdHEsCisJCQkJICAgICAoYWIt PnFtaS5jYWxfZG9uZSAgPT0gMSksCisJCQkJICAgICBBVEgxMUtfQ09MRF9CT09UX0ZXX1JFU0VU X0RFTEFZKTsKKwlpZiAodGltZW91dCA8PSAwKSB7CisJCWF0aDExa193YXJuKGFiLCAiQ29sZGJv b3QgQ2FsaWJyYXRpb24gdGltZWQgb3V0XG4iKTsKKwkJcmV0dXJuIC1FVElNRURPVVQ7CisJfQor CisJYXRoMTFrX2RiZyhhYiwgQVRIMTFLX0RCR19RTUksICJDb2xkYm9vdCBjYWxpYnJhdGlvbiB3 YWl0IGVuZGVkXG4iKTsKKworCXJldHVybiAwOworfQorCiBzdGF0aWMgaW50CiBhdGgxMWtfcW1p X2RyaXZlcl9ldmVudF9wb3N0KHN0cnVjdCBhdGgxMWtfcW1pICpxbWksCiAJCQkgICAgIGVudW0g YXRoMTFrX3FtaV9ldmVudF90eXBlIHR5cGUsCkBAIC0yNDgwLDExICsyNTE5LDE4IEBAIHN0YXRp YyB2b2lkIGF0aDExa19xbWlfbXNnX2Z3X3JlYWR5X2NiKHN0cnVjdCBxbWlfaGFuZGxlICpxbWlf aGRsLAogCWF0aDExa19xbWlfZHJpdmVyX2V2ZW50X3Bvc3QocW1pLCBBVEgxMUtfUU1JX0VWRU5U X0ZXX1JFQURZLCBOVUxMKTsKIH0KIAotc3RhdGljIHZvaWQgYXRoMTFrX3FtaV9tc2dfY29sZF9i b290X2NhbF9kb25lX2NiKHN0cnVjdCBxbWlfaGFuZGxlICpxbWksCitzdGF0aWMgdm9pZCBhdGgx MWtfcW1pX21zZ19jb2xkX2Jvb3RfY2FsX2RvbmVfY2Ioc3RydWN0IHFtaV9oYW5kbGUgKnFtaV9o ZGwsCiAJCQkJCQkgc3RydWN0IHNvY2thZGRyX3FydHIgKnNxLAogCQkJCQkJIHN0cnVjdCBxbWlf dHhuICp0eG4sCiAJCQkJCQkgY29uc3Qgdm9pZCAqZGVjb2RlZCkKIHsKKwlzdHJ1Y3QgYXRoMTFr X3FtaSAqcW1pID0gY29udGFpbmVyX29mKHFtaV9oZGwsCisJCQkJCSAgICAgIHN0cnVjdCBhdGgx MWtfcW1pLCBoYW5kbGUpOworCXN0cnVjdCBhdGgxMWtfYmFzZSAqYWIgPSBxbWktPmFiOworCisJ YWItPnFtaS5jYWxfZG9uZSA9IDE7CisJd2FrZV91cCgmYWItPnFtaS5jb2xkX2Jvb3Rfd2FpdHEp OworCWF0aDExa19kYmcoYWIsIEFUSDExS19EQkdfUU1JLCAicW1pIGNvbGQgYm9vdCBjYWxpYnJh dGlvbiBkb25lXG4iKTsKIH0KIAogc3RhdGljIGNvbnN0IHN0cnVjdCBxbWlfbXNnX2hhbmRsZXIg YXRoMTFrX3FtaV9tc2dfaGFuZGxlcnNbXSA9IHsKQEAgLTI1OTcsOSArMjY0MywxNiBAQCBzdGF0 aWMgdm9pZCBhdGgxMWtfcW1pX2RyaXZlcl9ldmVudF93b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAq d29yaykKIAkJCQlicmVhazsKIAkJCX0KIAotCQkJYXRoMTFrX2NvcmVfcW1pX2Zpcm13YXJlX3Jl YWR5KGFiKTsKLQkJCWFiLT5xbWkuY2FsX2RvbmUgPSAxOwotCQkJc2V0X2JpdChBVEgxMUtfRkxB R19SRUdJU1RFUkVELCAmYWItPmRldl9mbGFncyk7CisJCQlpZiAoYXRoMTFrX2NvbGRfYm9vdF9j YWwgJiYgYWItPnFtaS5jYWxfZG9uZSA9PSAwICYmCisJCQkgICAgYWItPmh3X3BhcmFtcy5jb2xk X2Jvb3RfY2FsaWIpIHsKKwkJCQlhdGgxMWtfcW1pX3Byb2Nlc3NfY29sZGJvb3RfY2FsaWJyYXRp b24oYWIpOworCQkJfSBlbHNlIHsKKwkJCQljbGVhcl9iaXQoQVRIMTFLX0ZMQUdfQ1JBU0hfRkxV U0gsCisJCQkJCSAgJmFiLT5kZXZfZmxhZ3MpOworCQkJCWNsZWFyX2JpdChBVEgxMUtfRkxBR19S RUNPVkVSWSwgJmFiLT5kZXZfZmxhZ3MpOworCQkJCWF0aDExa19jb3JlX3FtaV9maXJtd2FyZV9y ZWFkeShhYik7CisJCQkJc2V0X2JpdChBVEgxMUtfRkxBR19SRUdJU1RFUkVELCAmYWItPmRldl9m bGFncyk7CisJCQl9CiAKIAkJCWJyZWFrOwogCQljYXNlIEFUSDExS19RTUlfRVZFTlRfQ09MRF9C T09UX0NBTF9ET05FOgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEx ay9xbWkuaCBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvcW1pLmgKaW5kZXggNjBl OTA0Ni4uOGVlZTNkNSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEx ay9xbWkuaAorKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL3FtaS5oCkBAIC0x Miw2ICsxMiw3IEBACiAjZGVmaW5lIEFUSDExS19IT1NUX1ZFUlNJT05fU1RSSU5HCQkiV0lOIgog I2RlZmluZSBBVEgxMUtfUU1JX1dMQU5GV19USU1FT1VUX01TCQk1MDAwCiAjZGVmaW5lIEFUSDEx S19RTUlfTUFYX0JERl9GSUxFX05BTUVfU0laRQk2NAorI2RlZmluZSBBVEgxMUtfUU1JX0NBTERC X0FERFJFU1MJCTB4NEJBMDAwMDAKICNkZWZpbmUgQVRIMTFLX1FNSV9CREZfTUFYX1NJWkUJCQko MjU2ICogMTAyNCkKICNkZWZpbmUgQVRIMTFLX1FNSV9DQUxEQVRBX09GRlNFVAkJKDEyOCAqIDEw MjQpCiAjZGVmaW5lIEFUSDExS19RTUlfV0xBTkZXX01BWF9CVUlMRF9JRF9MRU5fVjAxCTEyOApA QCAtMzMsNiArMzQsNyBAQAogI2RlZmluZSBRTUlfV0xBTkZXX01BWF9EQVRBX1NJWkVfVjAxCQk2 MTQ0CiAjZGVmaW5lIEFUSDExS19GSVJNV0FSRV9NT0RFX09GRgkJNAogI2RlZmluZSBBVEgxMUtf UU1JX1RBUkdFVF9NRU1fTU9ERV9ERUZBVUxUCTAKKyNkZWZpbmUgQVRIMTFLX0NPTERfQk9PVF9G V19SRVNFVF9ERUxBWQkJKDQwICogSFopCiAKIHN0cnVjdCBhdGgxMWtfYmFzZTsKIApAQCAtMTI1 LDYgKzEyNyw3IEBAIHN0cnVjdCBhdGgxMWtfcW1pIHsKIAlzdHJ1Y3QgdGFyZ2V0X2luZm8gdGFy Z2V0OwogCXN0cnVjdCBtM19tZW1fcmVnaW9uIG0zX21lbTsKIAl1bnNpZ25lZCBpbnQgc2Vydmlj ZV9pbnNfaWQ7CisJd2FpdF9xdWV1ZV9oZWFkX3QgY29sZF9ib290X3dhaXRxOwogfTsKIAogI2Rl ZmluZSBRTUlfV0xBTkZXX0hPU1RfQ0FQX1JFUV9NU0dfVjAxX01BWF9MRU4JCTE4OQotLSAKMi43 LjQKCgotLSAKYXRoMTFrIG1haWxpbmcgbGlzdAphdGgxMWtAbGlzdHMuaW5mcmFkZWFkLm9yZwpo dHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2F0aDExawo=