From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-9.8 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, MIME_BASE64_TEXT,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,UNPARSEABLE_RELAY, URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 1FFDCC433E1 for ; Fri, 19 Jun 2020 07:54:59 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id E57E22078D for ; Fri, 19 Jun 2020 07:54:58 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=mediatek.com header.i=@mediatek.com header.b="RPCBUVPe" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730927AbgFSHy6 (ORCPT ); Fri, 19 Jun 2020 03:54:58 -0400 Received: from mailgw01.mediatek.com ([210.61.82.183]:30326 "EHLO mailgw01.mediatek.com" rhost-flags-OK-FAIL-OK-FAIL) by vger.kernel.org with ESMTP id S1730880AbgFSHy5 (ORCPT ); Fri, 19 Jun 2020 03:54:57 -0400 X-UUID: afc1333889164dda83e584b2d4307688-20200619 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=mediatek.com; s=dk; h=Content-Transfer-Encoding:Content-Type:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:CC:To:From; bh=Do01dmbyCiGSjscxYJvy5ykc/vj3XzndARDxA1RPxtE=; b=RPCBUVPe5pOgJKqjuPGumcIo/n7BrdU0ZiqobYGOCxLSwa6yS2EALwaT7/vB6u3OAWBAkw7yciVm2rANID0etkrM8x/LgHyT82OsS4kNv5J0fUp95n3wIVSptm7HQ8ENy+wxceISrhayUcjbDQevPo9N1j9ygV/6laFUreTaIcM=; X-UUID: afc1333889164dda83e584b2d4307688-20200619 Received: from mtkcas10.mediatek.inc [(172.21.101.39)] by mailgw01.mediatek.com (envelope-from ) (Cellopoint E-mail Firewall v4.1.10 Build 0809 with TLS) with ESMTP id 1836682687; Fri, 19 Jun 2020 15:54:47 +0800 Received: from mtkcas07.mediatek.inc (172.21.101.84) by mtkmbs08n1.mediatek.inc (172.21.101.55) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Fri, 19 Jun 2020 15:54:46 +0800 Received: from mtksdccf07.mediatek.inc (172.21.84.99) by mtkcas07.mediatek.inc (172.21.101.73) with Microsoft SMTP Server id 15.0.1497.2 via Frontend Transport; Fri, 19 Jun 2020 15:54:47 +0800 From: Shayne Chen To: Felix Fietkau CC: linux-wireless , Lorenzo Bianconi , Ryder Lee , Evelyn Tsai , linux-mediatek , Shayne Chen Subject: [PATCH v2 2/3] mt76: mt7915: rework the flow of txpower setting Date: Fri, 19 Jun 2020 15:53:55 +0800 Message-ID: <20200619075356.21998-2-shayne.chen@mediatek.com> X-Mailer: git-send-email 2.18.0 In-Reply-To: <20200619075356.21998-1-shayne.chen@mediatek.com> References: <20200619075356.21998-1-shayne.chen@mediatek.com> MIME-Version: 1.0 Content-Type: text/plain X-MTK: N Content-Transfer-Encoding: base64 Sender: linux-wireless-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-wireless@vger.kernel.org Q2xlYW4gdXAgdGhlIGZsb3cgb2YgcGVyLXJhdGUgdHhwb3dlciBsaW1pdCBzZXR0aW5nIHRvIGdl dCByaWQgb2YNCmR1bHBsaWNhdGUgd29yayBzaW5jZSBpdCBoYXMgYWxyZWFkeSBiZWVuIGhhbmRs ZWQgYnkgZmlybXdhcmUsIGFuZCBzZXQNCnByb3BlciBtYXhfcG93ZXIgYmFzZWQgb24gZGlmZmVy ZW50IGNoYW5uZWxzIGFuZCByZWdkb21haW5zLg0KDQpTaWduZWQtb2ZmLWJ5OiBTaGF5bmUgQ2hl biA8c2hheW5lLmNoZW5AbWVkaWF0ZWsuY29tPg0KLS0tDQogLi4uL3dpcmVsZXNzL21lZGlhdGVr L210NzYvbXQ3OTE1L2RlYnVnZnMuYyAgIHwgICA0ICstDQogLi4uL3dpcmVsZXNzL21lZGlhdGVr L210NzYvbXQ3OTE1L2VlcHJvbS5jICAgIHwgMTM4ICsrKystLS0tLS0tLS0tLS0tLQ0KIC4uLi93 aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9lZXByb20uaCAgICB8ICA0MCArLS0tLQ0KIC4u Li9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvaW5pdC5jICB8ICAzMiArKy0tDQog Li4uL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tYWluLmMgIHwgICAyICstDQog Li4uL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tY3UuYyAgIHwgIDI5ICsrLS0N CiAuLi4vd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbXQ3OTE1LmggICAgfCAgMTAgKy0N CiAuLi4vbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L3BjaS5jICAgfCAgMjUgLS0t LQ0KIDggZmlsZXMgY2hhbmdlZCwgNjkgaW5zZXJ0aW9ucygrKSwgMjExIGRlbGV0aW9ucygtKQ0K DQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUv ZGVidWdmcy5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZGVi dWdmcy5jDQppbmRleCA1Mjc4YmVlLi42ZDRmZDE0IDEwMDY0NA0KLS0tIGEvZHJpdmVycy9uZXQv d2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZGVidWdmcy5jDQorKysgYi9kcml2ZXJzL25l dC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kZWJ1Z2ZzLmMNCkBAIC0zMzcsNyArMzM3 LDcgQEAgbXQ3OTE1X3JlYWRfcmF0ZV90eHBvd2VyKHN0cnVjdCBzZXFfZmlsZSAqcywgdm9pZCAq ZGF0YSkNCiAJc3RydWN0IG10NzZfcGh5ICptcGh5ID0gJmRldi0+bXBoeTsNCiAJZW51bSBubDgw MjExX2JhbmQgYmFuZCA9IG1waHktPmNoYW5kZWYuY2hhbi0+YmFuZDsNCiAJczggKmRlbHRhID0g ZGV2LT5yYXRlX3Bvd2VyW2JhbmRdOw0KLQlzOCB0eHBvd2VyX2Jhc2UgPSBtcGh5LT50eHBvd2Vy X2N1ciAtIGRlbHRhW01UNzkxNV9TS1VfTUFYX0RFTFRBX0lEWF07DQorCXM4IHR4cG93ZXJfYmFz ZSA9IG1waHktPnR4cG93ZXJfY3VyIC0gZGVsdGFbMTYxXTsNCiANCiAJc2VxX3B1dHMocywgIkJh bmQgMDpcbiIpOw0KIAltdDc5MTVfcHV0c19yYXRlX3R4cG93ZXIocywgZGVsdGEsIHR4cG93ZXJf YmFzZSwgYmFuZCk7DQpAQCAtMzQ3LDcgKzM0Nyw3IEBAIG10NzkxNV9yZWFkX3JhdGVfdHhwb3dl cihzdHJ1Y3Qgc2VxX2ZpbGUgKnMsIHZvaWQgKmRhdGEpDQogCQliYW5kID0gbXBoeS0+Y2hhbmRl Zi5jaGFuLT5iYW5kOw0KIAkJZGVsdGEgPSBkZXYtPnJhdGVfcG93ZXJbYmFuZF07DQogCQl0eHBv d2VyX2Jhc2UgPSBtcGh5LT50eHBvd2VyX2N1ciAtDQotCQkJICAgICAgIGRlbHRhW01UNzkxNV9T S1VfTUFYX0RFTFRBX0lEWF07DQorCQkJICAgICAgIGRlbHRhWzE2MV07DQogDQogCQlzZXFfcHV0 cyhzLCAiQmFuZCAxOlxuIik7DQogCQltdDc5MTVfcHV0c19yYXRlX3R4cG93ZXIocywgZGVsdGEs IHR4cG93ZXJfYmFzZSwgYmFuZCk7DQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3Mv bWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZWVwcm9tLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRp YXRlay9tdDc2L210NzkxNS9lZXByb20uYw0KaW5kZXggN2RlYmE3ZS4uZGViYWNmZCAxMDA2NDQN Ci0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2VlcHJvbS5j DQorKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9lZXByb20u Yw0KQEAgLTEyNCwxMjAgKzEyNCwzOCBAQCBpbnQgbXQ3OTE1X2VlcHJvbV9nZXRfdGFyZ2V0X3Bv d2VyKHN0cnVjdCBtdDc5MTVfZGV2ICpkZXYsDQogCXJldHVybiBtdDc5MTVfZWVwcm9tX3JlYWQo ZGV2LCBpbmRleCk7DQogfQ0KIA0KLXN0YXRpYyBjb25zdCB1OCBza3VfY2NrX2RlbHRhX21hcFtd ID0gew0KLQlTS1VfQ0NLX0dST1VQMCwNCi0JU0tVX0NDS19HUk9VUDAsDQotCVNLVV9DQ0tfR1JP VVAxLA0KLQlTS1VfQ0NLX0dST1VQMSwNCi19Ow0KLQ0KLXN0YXRpYyBjb25zdCB1OCBza3Vfb2Zk bV9kZWx0YV9tYXBbXSA9IHsNCi0JU0tVX09GRE1fR1JPVVAwLA0KLQlTS1VfT0ZETV9HUk9VUDAs DQotCVNLVV9PRkRNX0dST1VQMSwNCi0JU0tVX09GRE1fR1JPVVAxLA0KLQlTS1VfT0ZETV9HUk9V UDIsDQotCVNLVV9PRkRNX0dST1VQMiwNCi0JU0tVX09GRE1fR1JPVVAzLA0KLQlTS1VfT0ZETV9H Uk9VUDQsDQotfTsNCi0NCi1zdGF0aWMgY29uc3QgdTggc2t1X21jc19kZWx0YV9tYXBbXSA9IHsN Ci0JU0tVX01DU19HUk9VUDAsDQotCVNLVV9NQ1NfR1JPVVAxLA0KLQlTS1VfTUNTX0dST1VQMSwN Ci0JU0tVX01DU19HUk9VUDIsDQotCVNLVV9NQ1NfR1JPVVAyLA0KLQlTS1VfTUNTX0dST1VQMywN Ci0JU0tVX01DU19HUk9VUDQsDQotCVNLVV9NQ1NfR1JPVVA1LA0KLQlTS1VfTUNTX0dST1VQNiwN Ci0JU0tVX01DU19HUk9VUDcsDQotCVNLVV9NQ1NfR1JPVVA4LA0KLQlTS1VfTUNTX0dST1VQOSwN Ci19Ow0KLQ0KLSNkZWZpbmUgU0tVX0dST1VQKF9tb2RlLCBfbGVuLCBfb2ZzXzJnLCBfb2ZzXzVn LCBfbWFwKQlcDQotCVtfbW9kZV0gPSB7CQkJCQlcDQotCS5sZW4gPSBfbGVuLAkJCQkJXA0KLQku b2Zmc2V0ID0gewkJCQkJXA0KLQkJX29mc18yZywJCQkJXA0KLQkJX29mc181ZywJCQkJXA0KLQl9 LAkJCQkJCVwNCi0JLmRlbHRhX21hcCA9IF9tYXAJCQkJXA0KLX0NCi0NCi1jb25zdCBzdHJ1Y3Qg c2t1X2dyb3VwIG10NzkxNV9za3VfZ3JvdXBzW10gPSB7DQotCVNLVV9HUk9VUChTS1VfQ0NLLCA0 LCAweDI1MiwgMCwgc2t1X2Nja19kZWx0YV9tYXApLA0KLQlTS1VfR1JPVVAoU0tVX09GRE0sIDgs IDB4MjU0LCAweDI5ZCwgc2t1X29mZG1fZGVsdGFfbWFwKSwNCi0NCi0JU0tVX0dST1VQKFNLVV9I VF9CVzIwLCA4LCAweDI1OSwgMHgyYTIsIHNrdV9tY3NfZGVsdGFfbWFwKSwNCi0JU0tVX0dST1VQ KFNLVV9IVF9CVzQwLCA5LCAweDI2MiwgMHgyYWIsIHNrdV9tY3NfZGVsdGFfbWFwKSwNCi0JU0tV X0dST1VQKFNLVV9WSFRfQlcyMCwgMTIsIDB4MjU5LCAweDJhMiwgc2t1X21jc19kZWx0YV9tYXAp LA0KLQlTS1VfR1JPVVAoU0tVX1ZIVF9CVzQwLCAxMiwgMHgyNjIsIDB4MmFiLCBza3VfbWNzX2Rl bHRhX21hcCksDQotCVNLVV9HUk9VUChTS1VfVkhUX0JXODAsIDEyLCAwLCAweDJiNCwgc2t1X21j c19kZWx0YV9tYXApLA0KLQlTS1VfR1JPVVAoU0tVX1ZIVF9CVzE2MCwgMTIsIDAsIDAsIHNrdV9t Y3NfZGVsdGFfbWFwKSwNCi0NCi0JU0tVX0dST1VQKFNLVV9IRV9SVTI2LCAxMiwgMHgyN2YsIDB4 MmRkLCBza3VfbWNzX2RlbHRhX21hcCksDQotCVNLVV9HUk9VUChTS1VfSEVfUlU1MiwgMTIsIDB4 Mjg5LCAweDJlNywgc2t1X21jc19kZWx0YV9tYXApLA0KLQlTS1VfR1JPVVAoU0tVX0hFX1JVMTA2 LCAxMiwgMHgyOTMsIDB4MmYxLCBza3VfbWNzX2RlbHRhX21hcCksDQotCVNLVV9HUk9VUChTS1Vf SEVfUlUyNDIsIDEyLCAweDI2YiwgMHgyYmYsIHNrdV9tY3NfZGVsdGFfbWFwKSwNCi0JU0tVX0dS T1VQKFNLVV9IRV9SVTQ4NCwgMTIsIDB4Mjc1LCAweDJjOSwgc2t1X21jc19kZWx0YV9tYXApLA0K LQlTS1VfR1JPVVAoU0tVX0hFX1JVOTk2LCAxMiwgMCwgMHgyZDMsIHNrdV9tY3NfZGVsdGFfbWFw KSwNCi0JU0tVX0dST1VQKFNLVV9IRV9SVTJ4OTk2LCAxMiwgMCwgMCwgc2t1X21jc19kZWx0YV9t YXApLA0KLX07DQotDQotc3RhdGljIHM4DQotbXQ3OTE1X2dldF9za3VfZGVsdGEoc3RydWN0IG10 NzkxNV9kZXYgKmRldiwgdTMyIGFkZHIpDQorczggbXQ3OTE1X2VlcHJvbV9nZXRfcG93ZXJfZGVs dGEoc3RydWN0IG10NzkxNV9kZXYgKmRldiwgaW50IGJhbmQpDQogew0KLQl1MzIgdmFsID0gbXQ3 OTE1X2VlcHJvbV9yZWFkKGRldiwgYWRkcik7DQotCXM4IGRlbHRhID0gRklFTERfR0VUKFNLVV9E RUxUQV9WQUwsIHZhbCk7DQorCXUzMiB2YWw7DQorCXM4IGRlbHRhOw0KKw0KKwlpZiAoYmFuZCA9 PSBOTDgwMjExX0JBTkRfMkdIWikNCisJCXZhbCA9IG10NzkxNV9lZXByb21fcmVhZChkZXYsIE1U X0VFX1JBVEVfREVMVEFfMkcpOw0KKwllbHNlDQorCQl2YWwgPSBtdDc5MTVfZWVwcm9tX3JlYWQo ZGV2LCBNVF9FRV9SQVRFX0RFTFRBXzVHKTsNCiANCi0JaWYgKCEodmFsICYgU0tVX0RFTFRBX0VO KSkNCisJaWYgKCEodmFsICYgTVRfRUVfUkFURV9ERUxUQV9FTikpDQogCQlyZXR1cm4gMDsNCiAN Ci0JcmV0dXJuIHZhbCAmIFNLVV9ERUxUQV9BREQgPyBkZWx0YSA6IC1kZWx0YTsNCi19DQorCWRl bHRhID0gRklFTERfR0VUKE1UX0VFX1JBVEVfREVMVEFfTUFTSywgdmFsKTsNCiANCi1zdGF0aWMg dm9pZA0KLW10NzkxNV9lZXByb21faW5pdF9za3VfYmFuZChzdHJ1Y3QgbXQ3OTE1X2RldiAqZGV2 LA0KLQkJCSAgICBzdHJ1Y3QgaWVlZTgwMjExX3N1cHBvcnRlZF9iYW5kICpzYmFuZCkNCi17DQot CWludCBpLCBiYW5kID0gc2JhbmQtPmJhbmQ7DQotCXM4ICpyYXRlX3Bvd2VyID0gZGV2LT5yYXRl X3Bvd2VyW2JhbmRdLCBtYXhfZGVsdGEgPSAwOw0KLQl1OCBpZHggPSAwOw0KLQ0KLQlmb3IgKGkg PSAwOyBpIDwgQVJSQVlfU0laRShtdDc5MTVfc2t1X2dyb3Vwcyk7IGkrKykgew0KLQkJY29uc3Qg c3RydWN0IHNrdV9ncm91cCAqc2t1ID0gJm10NzkxNV9za3VfZ3JvdXBzW2ldOw0KLQkJdTMyIG9m ZnNldCA9IHNrdS0+b2Zmc2V0W2JhbmRdOw0KLQkJaW50IGo7DQotDQotCQlpZiAoIW9mZnNldCkg ew0KLQkJCWlkeCArPSBza3UtPmxlbjsNCi0JCQljb250aW51ZTsNCi0JCX0NCi0NCi0JCXJhdGVf cG93ZXJbaWR4KytdID0gbXQ3OTE1X2dldF9za3VfZGVsdGEoZGV2LCBvZmZzZXQpOw0KLQkJaWYg KHJhdGVfcG93ZXJbaWR4IC0gMV0gPiBtYXhfZGVsdGEpDQotCQkJbWF4X2RlbHRhID0gcmF0ZV9w b3dlcltpZHggLSAxXTsNCi0NCi0JCWlmIChpID09IFNLVV9IVF9CVzIwIHx8IGkgPT0gU0tVX1ZI VF9CVzIwKQ0KLQkJCW9mZnNldCArPSAxOw0KLQ0KLQkJZm9yIChqID0gMTsgaiA8IHNrdS0+bGVu OyBqKyspIHsNCi0JCQl1MzIgYWRkciA9IG9mZnNldCArIHNrdS0+ZGVsdGFfbWFwW2pdOw0KLQ0K LQkJCXJhdGVfcG93ZXJbaWR4KytdID0gbXQ3OTE1X2dldF9za3VfZGVsdGEoZGV2LCBhZGRyKTsN Ci0JCQlpZiAocmF0ZV9wb3dlcltpZHggLSAxXSA+IG1heF9kZWx0YSkNCi0JCQkJbWF4X2RlbHRh ID0gcmF0ZV9wb3dlcltpZHggLSAxXTsNCi0JCX0NCi0JfQ0KLQ0KLQlyYXRlX3Bvd2VyW2lkeF0g PSBtYXhfZGVsdGE7DQorCXJldHVybiB2YWwgJiBNVF9FRV9SQVRFX0RFTFRBX1NJR04gPyBkZWx0 YSA6IC1kZWx0YTsNCiB9DQogDQotdm9pZCBtdDc5MTVfZWVwcm9tX2luaXRfc2t1KHN0cnVjdCBt dDc5MTVfZGV2ICpkZXYpDQotew0KLQltdDc5MTVfZWVwcm9tX2luaXRfc2t1X2JhbmQoZGV2LCAm ZGV2LT5tcGh5LnNiYW5kXzJnLnNiYW5kKTsNCi0JbXQ3OTE1X2VlcHJvbV9pbml0X3NrdV9iYW5k KGRldiwgJmRldi0+bXBoeS5zYmFuZF81Zy5zYmFuZCk7DQotfQ0KK2NvbnN0IHU4IG10NzkxNV9z a3VfZ3JvdXBfbGVuW10gPSB7DQorCVtTS1VfQ0NLXSA9IDQsDQorCVtTS1VfT0ZETV0gPSA4LA0K KwlbU0tVX0hUX0JXMjBdID0gOCwNCisJW1NLVV9IVF9CVzQwXSA9IDksDQorCVtTS1VfVkhUX0JX MjBdID0gMTIsDQorCVtTS1VfVkhUX0JXNDBdID0gMTIsDQorCVtTS1VfVkhUX0JXODBdID0gMTIs DQorCVtTS1VfVkhUX0JXMTYwXSA9IDEyLA0KKwlbU0tVX0hFX1JVMjZdID0gMTIsDQorCVtTS1Vf SEVfUlU1Ml0gPSAxMiwNCisJW1NLVV9IRV9SVTEwNl0gPSAxMiwNCisJW1NLVV9IRV9SVTI0Ml0g PSAxMiwNCisJW1NLVV9IRV9SVTQ4NF0gPSAxMiwNCisJW1NLVV9IRV9SVTk5Nl0gPSAxMiwNCisJ W1NLVV9IRV9SVTJ4OTk2XSA9IDEyDQorfTsNCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJl bGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9lZXByb20uaCBiL2RyaXZlcnMvbmV0L3dpcmVsZXNz L21lZGlhdGVrL210NzYvbXQ3OTE1L2VlcHJvbS5oDQppbmRleCA0ZTMxZDZhLi43N2NlYzUxIDEw MDY0NA0KLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZWVw cm9tLmgNCisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2Vl cHJvbS5oDQpAQCAtMTcsNiArMTcsOCBAQCBlbnVtIG10NzkxNV9lZXByb21fZmllbGQgew0KIAlN VF9FRV9NQUNfQUREUiA9CTB4MDA0LA0KIAlNVF9FRV9ERElFX0ZUX1ZFUlNJT04gPQkweDA1MCwN CiAJTVRfRUVfV0lGSV9DT05GID0JMHgxOTAsDQorCU1UX0VFX1JBVEVfREVMVEFfMkcgPQkweDI1 MiwNCisJTVRfRUVfUkFURV9ERUxUQV81RyA9CTB4MjlkLA0KIAlNVF9FRV9UWDBfUE9XRVJfMkcg PQkweDJmYywNCiAJTVRfRUVfVFgwX1BPV0VSXzVHID0JMHgzNGIsDQogCU1UX0VFX0FESUVfRlRf VkVSU0lPTiA9CTB4OWEwLA0KQEAgLTMwLDYgKzMyLDEwIEBAIGVudW0gbXQ3OTE1X2VlcHJvbV9m aWVsZCB7DQogI2RlZmluZSBNVF9FRV9XSUZJX0NPTkZfVFNTSTBfNUcJCUJJVCgyKQ0KICNkZWZp bmUgTVRfRUVfV0lGSV9DT05GX1RTU0kxXzVHCQlCSVQoNCkNCiANCisjZGVmaW5lIE1UX0VFX1JB VEVfREVMVEFfTUFTSwkJCUdFTk1BU0soNSwgMCkNCisjZGVmaW5lIE1UX0VFX1JBVEVfREVMVEFf U0lHTgkJCUJJVCg2KQ0KKyNkZWZpbmUgTVRfRUVfUkFURV9ERUxUQV9FTgkJCUJJVCg3KQ0KKw0K IGVudW0gbXQ3OTE1X2VlcHJvbV9iYW5kIHsNCiAJTVRfRUVfRFVBTF9CQU5ELA0KIAlNVF9FRV81 R0haLA0KQEAgLTM3LDMyICs0Myw2IEBAIGVudW0gbXQ3OTE1X2VlcHJvbV9iYW5kIHsNCiAJTVRf RUVfREJEQywNCiB9Ow0KIA0KLSNkZWZpbmUgU0tVX0RFTFRBX1ZBTAkJR0VOTUFTSyg1LCAwKQ0K LSNkZWZpbmUgU0tVX0RFTFRBX0FERAkJQklUKDYpDQotI2RlZmluZSBTS1VfREVMVEFfRU4JCUJJ VCg3KQ0KLQ0KLWVudW0gbXQ3OTE1X3NrdV9kZWx0YV9ncm91cCB7DQotCVNLVV9DQ0tfR1JPVVAw LA0KLQlTS1VfQ0NLX0dST1VQMSwNCi0NCi0JU0tVX09GRE1fR1JPVVAwID0gMCwNCi0JU0tVX09G RE1fR1JPVVAxLA0KLQlTS1VfT0ZETV9HUk9VUDIsDQotCVNLVV9PRkRNX0dST1VQMywNCi0JU0tV X09GRE1fR1JPVVA0LA0KLQ0KLQlTS1VfTUNTX0dST1VQMCA9IDAsDQotCVNLVV9NQ1NfR1JPVVAx LA0KLQlTS1VfTUNTX0dST1VQMiwNCi0JU0tVX01DU19HUk9VUDMsDQotCVNLVV9NQ1NfR1JPVVA0 LA0KLQlTS1VfTUNTX0dST1VQNSwNCi0JU0tVX01DU19HUk9VUDYsDQotCVNLVV9NQ1NfR1JPVVA3 LA0KLQlTS1VfTUNTX0dST1VQOCwNCi0JU0tVX01DU19HUk9VUDksDQotfTsNCi0NCiBlbnVtIG10 NzkxNV9za3VfcmF0ZV9ncm91cCB7DQogCVNLVV9DQ0ssDQogCVNLVV9PRkRNLA0KQEAgLTgyLDEy ICs2Miw2IEBAIGVudW0gbXQ3OTE1X3NrdV9yYXRlX2dyb3VwIHsNCiAJTUFYX1NLVV9SQVRFX0dS T1VQX05VTSwNCiB9Ow0KIA0KLXN0cnVjdCBza3VfZ3JvdXAgew0KLQl1OCBsZW47DQotCXUxNiBv ZmZzZXRbMl07DQotCWNvbnN0IHU4ICpkZWx0YV9tYXA7DQotfTsNCi0NCiBzdGF0aWMgaW5saW5l IGludA0KIG10NzkxNV9nZXRfY2hhbm5lbF9ncm91cChpbnQgY2hhbm5lbCkNCiB7DQpAQCAtMTIw LDYgKzk0LDYgQEAgbXQ3OTE1X3Rzc2lfZW5hYmxlZChzdHJ1Y3QgbXQ3OTE1X2RldiAqZGV2LCBl bnVtIG5sODAyMTFfYmFuZCBiYW5kKQ0KIAkJcmV0dXJuIGVlcFtNVF9FRV9XSUZJX0NPTkYgKyA3 XSAmIE1UX0VFX1dJRklfQ09ORl9UU1NJMF8yRzsNCiB9DQogDQotZXh0ZXJuIGNvbnN0IHN0cnVj dCBza3VfZ3JvdXAgbXQ3OTE1X3NrdV9ncm91cHNbXTsNCitleHRlcm4gY29uc3QgdTggbXQ3OTE1 X3NrdV9ncm91cF9sZW5bTUFYX1NLVV9SQVRFX0dST1VQX05VTV07DQogDQogI2VuZGlmDQpkaWZm IC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvaW5pdC5j IGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvaW5pdC5jDQppbmRl eCBhYWRmNTZlLi41MDc2M2FiIDEwMDY0NA0KLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVk aWF0ZWsvbXQ3Ni9tdDc5MTUvaW5pdC5jDQorKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRp YXRlay9tdDc2L210NzkxNS9pbml0LmMNCkBAIC03NywxMCArNzcsMTMgQEAgc3RhdGljIGludCBt dDc5MTVfdHhiZl9pbml0KHN0cnVjdCBtdDc5MTVfZGV2ICpkZXYpDQogfQ0KIA0KIHN0YXRpYyB2 b2lkDQotbXQ3OTE1X2luaXRfdHhwb3dlcl9iYW5kKHN0cnVjdCBtdDc5MTVfZGV2ICpkZXYsDQot CQkJIHN0cnVjdCBpZWVlODAyMTFfc3VwcG9ydGVkX2JhbmQgKnNiYW5kKQ0KK210NzkxNV9pbml0 X3R4cG93ZXIoc3RydWN0IG10NzkxNV9kZXYgKmRldiwNCisJCSAgICBzdHJ1Y3QgaWVlZTgwMjEx X3N1cHBvcnRlZF9iYW5kICpzYmFuZCkNCiB7DQogCWludCBpLCBuX2NoYWlucyA9IGh3ZWlnaHQ4 KGRldi0+bXBoeS5hbnRlbm5hX21hc2spOw0KKwlpbnQgbnNzX2RlbHRhID0gbXQ3Nl90eF9wb3dl cl9uc3NfZGVsdGEobl9jaGFpbnMpOw0KKwlpbnQgcHdyX2RlbHRhID0gbXQ3OTE1X2VlcHJvbV9n ZXRfcG93ZXJfZGVsdGEoZGV2LCBzYmFuZC0+YmFuZCk7DQorCXN0cnVjdCBtdDc2X3Bvd2VyX2xp bWl0cyBsaW1pdHM7DQogDQogCWZvciAoaSA9IDA7IGkgPCBzYmFuZC0+bl9jaGFubmVsczsgaSsr KSB7DQogCQlzdHJ1Y3QgaWVlZTgwMjExX2NoYW5uZWwgKmNoYW4gPSAmc2JhbmQtPmNoYW5uZWxz W2ldOw0KQEAgLTk0LDIwICs5NywxOCBAQCBtdDc5MTVfaW5pdF90eHBvd2VyX2JhbmQoc3RydWN0 IG10NzkxNV9kZXYgKmRldiwNCiAJCQl0YXJnZXRfcG93ZXIgPSBtYXgodGFyZ2V0X3Bvd2VyLCB2 YWwpOw0KIAkJfQ0KIA0KKwkJdGFyZ2V0X3Bvd2VyICs9IHB3cl9kZWx0YTsNCisJCXRhcmdldF9w b3dlciA9IG10NzZfZ2V0X3JhdGVfcG93ZXJfbGltaXRzKCZkZXYtPm1waHksIGNoYW4sDQorCQkJ CQkJCSAgJmxpbWl0cywNCisJCQkJCQkJICB0YXJnZXRfcG93ZXIpOw0KKwkJdGFyZ2V0X3Bvd2Vy ICs9IG5zc19kZWx0YTsNCisJCXRhcmdldF9wb3dlciA9IERJVl9ST1VORF9VUCh0YXJnZXRfcG93 ZXIsIDIpOw0KIAkJY2hhbi0+bWF4X3Bvd2VyID0gbWluX3QoaW50LCBjaGFuLT5tYXhfcmVnX3Bv d2VyLA0KLQkJCQkJdGFyZ2V0X3Bvd2VyIC8gMik7DQotCQljaGFuLT5vcmlnX21wd3IgPSB0YXJn ZXRfcG93ZXIgLyAyOw0KKwkJCQkJdGFyZ2V0X3Bvd2VyKTsNCisJCWNoYW4tPm9yaWdfbXB3ciA9 IHRhcmdldF9wb3dlcjsNCiAJfQ0KIH0NCiANCi1zdGF0aWMgdm9pZCBtdDc5MTVfaW5pdF90eHBv d2VyKHN0cnVjdCBtdDc5MTVfZGV2ICpkZXYpDQotew0KLQltdDc5MTVfaW5pdF90eHBvd2VyX2Jh bmQoZGV2LCAmZGV2LT5tcGh5LnNiYW5kXzJnLnNiYW5kKTsNCi0JbXQ3OTE1X2luaXRfdHhwb3dl cl9iYW5kKGRldiwgJmRldi0+bXBoeS5zYmFuZF81Zy5zYmFuZCk7DQotDQotCW10NzkxNV9lZXBy b21faW5pdF9za3UoZGV2KTsNCi19DQotDQogc3RhdGljIHZvaWQgbXQ3OTE1X2luaXRfd29yayhz dHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspDQogew0KIAlzdHJ1Y3QgbXQ3OTE1X2RldiAqZGV2ID0g Y29udGFpbmVyX29mKHdvcmssIHN0cnVjdCBtdDc5MTVfZGV2LA0KQEAgLTExNSw3ICsxMTYsOCBA QCBzdGF0aWMgdm9pZCBtdDc5MTVfaW5pdF93b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykN CiANCiAJbXQ3OTE1X21jdV9zZXRfZWVwcm9tKGRldik7DQogCW10NzkxNV9tYWNfaW5pdChkZXYp Ow0KLQltdDc5MTVfaW5pdF90eHBvd2VyKGRldik7DQorCW10NzkxNV9pbml0X3R4cG93ZXIoZGV2 LCAmZGV2LT5tcGh5LnNiYW5kXzJnLnNiYW5kKTsNCisJbXQ3OTE1X2luaXRfdHhwb3dlcihkZXYs ICZkZXYtPm1waHkuc2JhbmRfNWcuc2JhbmQpOw0KIAltdDc5MTVfdHhiZl9pbml0KGRldik7DQog fQ0KIA0KQEAgLTIyNCw4ICsyMjYsMTIgQEAgbXQ3OTE1X3JlZ2Rfbm90aWZpZXIoc3RydWN0IHdp cGh5ICp3aXBoeSwNCiAJc3RydWN0IG10NzkxNV9waHkgKnBoeSA9IG1waHktPnByaXY7DQogCXN0 cnVjdCBjZmc4MDIxMV9jaGFuX2RlZiAqY2hhbmRlZiA9ICZtcGh5LT5jaGFuZGVmOw0KIA0KKwlt ZW1jcHkoZGV2LT5tdDc2LmFscGhhMiwgcmVxdWVzdC0+YWxwaGEyLCBzaXplb2YoZGV2LT5tdDc2 LmFscGhhMikpOw0KIAlkZXYtPm10NzYucmVnaW9uID0gcmVxdWVzdC0+ZGZzX3JlZ2lvbjsNCiAN CisJbXQ3OTE1X2luaXRfdHhwb3dlcihkZXYsICZtcGh5LT5zYmFuZF8yZy5zYmFuZCk7DQorCW10 NzkxNV9pbml0X3R4cG93ZXIoZGV2LCAmbXBoeS0+c2JhbmRfNWcuc2JhbmQpOw0KKw0KIAlpZiAo IShjaGFuZGVmLT5jaGFuLT5mbGFncyAmIElFRUU4MDIxMV9DSEFOX1JBREFSKSkNCiAJCXJldHVy bjsNCiANCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210 NzkxNS9tYWluLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9t YWluLmMNCmluZGV4IDA1YjU2NTAuLjE3ODBkZjEgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL25ldC93 aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tYWluLmMNCisrKyBiL2RyaXZlcnMvbmV0L3dp cmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21haW4uYw0KQEAgLTMyNSw3ICszMjUsNyBAQCBz dGF0aWMgaW50IG10NzkxNV9jb25maWcoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsIHUzMiBjaGFu Z2VkKQ0KIAl9DQogDQogCWlmIChjaGFuZ2VkICYgSUVFRTgwMjExX0NPTkZfQ0hBTkdFX1BPV0VS KSB7DQotCQlyZXQgPSBtdDc5MTVfbWN1X3NldF9za3UocGh5KTsNCisJCXJldCA9IG10NzkxNV9t Y3Vfc2V0X3R4cG93ZXJfc2t1KHBoeSk7DQogCQlpZiAocmV0KQ0KIAkJCXJldHVybiByZXQ7DQog CX0NCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzkx NS9tY3UuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21jdS5j DQppbmRleCAxMDc4NzcwLi4wODAwNGE3IDEwMDY0NA0KLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxl c3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWN1LmMNCisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNz L21lZGlhdGVrL210NzYvbXQ3OTE1L21jdS5jDQpAQCAtMzA1NCw4ICszMDU0LDkgQEAgaW50IG10 NzkxNV9tY3VfZ2V0X3JhdGVfaW5mbyhzdHJ1Y3QgbXQ3OTE1X2RldiAqZGV2LCB1MzIgY21kLCB1 MTYgd2xhbl9pZHgpDQogCQkJCSAgIHNpemVvZihyZXEpLCBmYWxzZSk7DQogfQ0KIA0KLWludCBt dDc5MTVfbWN1X3NldF9za3Uoc3RydWN0IG10NzkxNV9waHkgKnBoeSkNCitpbnQgbXQ3OTE1X21j dV9zZXRfdHhwb3dlcl9za3Uoc3RydWN0IG10NzkxNV9waHkgKnBoeSkNCiB7DQorI2RlZmluZSBN VDc5MTVfU0tVX1JBVEVfTlVNCQkxNjENCiAJc3RydWN0IG10NzkxNV9kZXYgKmRldiA9IHBoeS0+ ZGV2Ow0KIAlzdHJ1Y3QgbXQ3Nl9waHkgKm1waHkgPSBwaHktPm10NzY7DQogCXN0cnVjdCBpZWVl ODAyMTFfaHcgKmh3ID0gbXBoeS0+aHc7DQpAQCAtMzA2OSwxMSArMzA3MCwxMCBAQCBpbnQgbXQ3 OTE1X21jdV9zZXRfc2t1KHN0cnVjdCBtdDc5MTVfcGh5ICpwaHkpDQogCQkuZGJkY19pZHggPSBw aHkgIT0gJmRldi0+cGh5LA0KIAl9Ow0KIAlzdHJ1Y3QgbXQ3Nl9wb3dlcl9saW1pdHMgbGltaXRz X2FycmF5Ow0KLQlzOCAqZGVsdGEsICpsYSA9IChzOCAqKSZsaW1pdHNfYXJyYXk7DQorCXM4ICps YSA9IChzOCAqKSZsaW1pdHNfYXJyYXk7DQogCWludCBpLCBpZHgsIG5fY2hhaW5zID0gaHdlaWdo dDgobXBoeS0+YW50ZW5uYV9tYXNrKTsNCiAJaW50IHR4X3Bvd2VyOw0KIA0KLQlkZWx0YSA9IGRl di0+cmF0ZV9wb3dlclttcGh5LT5jaGFuZGVmLmNoYW4tPmJhbmRdOw0KIAl0eF9wb3dlciA9IGh3 LT5jb25mLnBvd2VyX2xldmVsICogMiAtDQogCQkgICBtdDc2X3R4X3Bvd2VyX25zc19kZWx0YShu X2NoYWlucyk7DQogDQpAQCAtMzA4MSwxMCArMzA4MSw4IEBAIGludCBtdDc5MTVfbWN1X3NldF9z a3Uoc3RydWN0IG10NzkxNV9waHkgKnBoeSkNCiAJCQkJCSAgICAgICZsaW1pdHNfYXJyYXksIHR4 X3Bvd2VyKTsNCiAJbXBoeS0+dHhwb3dlcl9jdXIgPSB0eF9wb3dlcjsNCiANCi0JZm9yIChpID0g MCwgaWR4ID0gMDsgaSA8IEFSUkFZX1NJWkUobXQ3OTE1X3NrdV9ncm91cHMpOyBpKyspIHsNCi0J CWNvbnN0IHN0cnVjdCBza3VfZ3JvdXAgKnNrdSA9ICZtdDc5MTVfc2t1X2dyb3Vwc1tpXTsNCi0J CXUzMiBvZmZzZXQgPSBza3UtPm9mZnNldFttcGh5LT5jaGFuZGVmLmNoYW4tPmJhbmRdOw0KLQkJ dTggbWNzX251bSA9IHNrdS0+bGVuOw0KKwlmb3IgKGkgPSAwLCBpZHggPSAwOyBpIDwgQVJSQVlf U0laRShtdDc5MTVfc2t1X2dyb3VwX2xlbik7IGkrKykgew0KKwkJdTggbWNzX251bSwgbGVuID0g bXQ3OTE1X3NrdV9ncm91cF9sZW5baV07DQogCQlpbnQgajsNCiANCiAJCWlmIChpID49IFNLVV9I VF9CVzIwICYmIGkgPD0gU0tVX1ZIVF9CVzE2MCkgew0KQEAgLTMwOTIsMjIgKzMwOTAsMTUgQEAg aW50IG10NzkxNV9tY3Vfc2V0X3NrdShzdHJ1Y3QgbXQ3OTE1X3BoeSAqcGh5KQ0KIA0KIAkJCWlm IChpID09IFNLVV9IVF9CVzIwIHx8IGkgPT0gU0tVX1ZIVF9CVzIwKQ0KIAkJCQlsYSA9IChzOCAq KSZsaW1pdHNfYXJyYXkgKyAxMjsNCisJCX0gZWxzZSB7DQorCQkJbWNzX251bSA9IGxlbjsNCiAJ CX0NCiANCi0JCWlmICghb2Zmc2V0KSB7DQotCQkJaWR4ICs9IHNrdS0+bGVuOw0KLQkJCWxhICs9 IG1jc19udW07DQotCQkJY29udGludWU7DQotCQl9DQotDQotCQlmb3IgKGogPSAwOyBqIDwgbWlu X3QodTgsIG1jc19udW0sIHNrdS0+bGVuKTsgaisrKSB7DQotCQkJczggcmF0ZV9wb3dlcjsNCisJ CWZvciAoaiA9IDA7IGogPCBtaW5fdCh1OCwgbWNzX251bSwgbGVuKTsgaisrKQ0KKwkJCXJlcS52 YWxbaWR4ICsgal0gPSBsYVtqXTsNCiANCi0JCQlyYXRlX3Bvd2VyID0gaHctPmNvbmYucG93ZXJf bGV2ZWwgKiAyICsgZGVsdGFbaWR4ICsgal07DQotCQkJcmVxLnZhbFtpZHggKyBqXSA9IG1pbl90 KHM4LCBsYVtqXSwgcmF0ZV9wb3dlcik7DQotCQl9DQogCQlsYSArPSBtY3NfbnVtOw0KLQkJaWR4 ICs9IHNrdS0+bGVuOw0KKwkJaWR4ICs9IGxlbjsNCiAJfQ0KIA0KIAlyZXR1cm4gX19tdDc2X21j dV9zZW5kX21zZygmZGV2LT5tdDc2LA0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNz L21lZGlhdGVrL210NzYvbXQ3OTE1L210NzkxNS5oIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVk aWF0ZWsvbXQ3Ni9tdDc5MTUvbXQ3OTE1LmgNCmluZGV4IDg1ZDc0ZWMuLjg1MWU5YmYgMTAwNjQ0 DQotLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tdDc5MTUu aA0KKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbXQ3OTE1 LmgNCkBAIC0zOCwxMCArMzgsNiBAQA0KICNkZWZpbmUgTVQ3OTE1XzVHX1JBVEVfREVGQVVMVAkJ MHg0YgkvKiBPRkRNIDZNICovDQogI2RlZmluZSBNVDc5MTVfMkdfUkFURV9ERUZBVUxUCQkweDAJ LyogQ0NLIDFNICovDQogDQotI2RlZmluZSBNVDc5MTVfU0tVX1JBVEVfTlVNCQkxNjENCi0jZGVm aW5lIE1UNzkxNV9TS1VfTUFYX0RFTFRBX0lEWAlNVDc5MTVfU0tVX1JBVEVfTlVNDQotI2RlZmlu ZSBNVDc5MTVfU0tVX1RBQkxFX1NJWkUJCShNVDc5MTVfU0tVX1JBVEVfTlVNICsgMSkNCi0NCiBz dHJ1Y3QgbXQ3OTE1X3ZpZjsNCiBzdHJ1Y3QgbXQ3OTE1X3N0YTsNCiBzdHJ1Y3QgbXQ3OTE1X2Rm c19wdWxzZTsNCkBAIC0xNjksOCArMTY1LDYgQEAgc3RydWN0IG10NzkxNV9kZXYgew0KIAlzcGlu bG9ja190IHRva2VuX2xvY2s7DQogCXN0cnVjdCBpZHIgdG9rZW47DQogDQotCXM4ICoqcmF0ZV9w b3dlcjsgLyogVE9ETzogdXNlIG10NzZfcmF0ZV9wb3dlciAqLw0KLQ0KIAlib29sIGZ3X2RlYnVn Ow0KIH07DQogDQpAQCAtMjc3LDcgKzI3MSw3IEBAIHUzMiBtdDc5MTVfZWVwcm9tX3JlYWQoc3Ry dWN0IG10NzkxNV9kZXYgKmRldiwgdTMyIG9mZnNldCk7DQogaW50IG10NzkxNV9lZXByb21fZ2V0 X3RhcmdldF9wb3dlcihzdHJ1Y3QgbXQ3OTE1X2RldiAqZGV2LA0KIAkJCQkgICBzdHJ1Y3QgaWVl ZTgwMjExX2NoYW5uZWwgKmNoYW4sDQogCQkJCSAgIHU4IGNoYWluX2lkeCk7DQotdm9pZCBtdDc5 MTVfZWVwcm9tX2luaXRfc2t1KHN0cnVjdCBtdDc5MTVfZGV2ICpkZXYpOw0KK3M4IG10NzkxNV9l ZXByb21fZ2V0X3Bvd2VyX2RlbHRhKHN0cnVjdCBtdDc5MTVfZGV2ICpkZXYsIGludCBiYW5kKTsN CiBpbnQgbXQ3OTE1X2RtYV9pbml0KHN0cnVjdCBtdDc5MTVfZGV2ICpkZXYpOw0KIHZvaWQgbXQ3 OTE1X2RtYV9wcmVmZXRjaChzdHJ1Y3QgbXQ3OTE1X2RldiAqZGV2KTsNCiB2b2lkIG10NzkxNV9k bWFfY2xlYW51cChzdHJ1Y3QgbXQ3OTE1X2RldiAqZGV2KTsNCkBAIC0zMjAsNyArMzE0LDcgQEAg aW50IG10NzkxNV9tY3Vfc2V0X3NlcihzdHJ1Y3QgbXQ3OTE1X2RldiAqZGV2LCB1OCBhY3Rpb24s IHU4IHNldCwgdTggYmFuZCk7DQogaW50IG10NzkxNV9tY3Vfc2V0X3J0c190aHJlc2goc3RydWN0 IG10NzkxNV9waHkgKnBoeSwgdTMyIHZhbCk7DQogaW50IG10NzkxNV9tY3Vfc2V0X3BtKHN0cnVj dCBtdDc5MTVfZGV2ICpkZXYsIGludCBiYW5kLCBpbnQgZW50ZXIpOw0KIGludCBtdDc5MTVfbWN1 X3NldF9za3VfZW4oc3RydWN0IG10NzkxNV9waHkgKnBoeSwgYm9vbCBlbmFibGUpOw0KLWludCBt dDc5MTVfbWN1X3NldF9za3Uoc3RydWN0IG10NzkxNV9waHkgKnBoeSk7DQoraW50IG10NzkxNV9t Y3Vfc2V0X3R4cG93ZXJfc2t1KHN0cnVjdCBtdDc5MTVfcGh5ICpwaHkpOw0KIGludCBtdDc5MTVf bWN1X3NldF90eGJmX3R5cGUoc3RydWN0IG10NzkxNV9kZXYgKmRldik7DQogaW50IG10NzkxNV9t Y3Vfc2V0X3R4YmZfc291bmRpbmcoc3RydWN0IG10NzkxNV9kZXYgKmRldik7DQogaW50IG10Nzkx NV9tY3Vfc2V0X2ZjYzVfbHBuKHN0cnVjdCBtdDc5MTVfZGV2ICpkZXYsIGludCB2YWwpOw0KZGlm ZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L3BjaS5j IGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvcGNpLmMNCmluZGV4 IDc5MzdjNjkuLmI3OWI1MDYgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRp YXRlay9tdDc2L210NzkxNS9wY2kuYw0KKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0 ZWsvbXQ3Ni9tdDc5MTUvcGNpLmMNCkBAIC03NSwyOCArNzUsNiBAQCBzdGF0aWMgaXJxcmV0dXJu X3QgbXQ3OTE1X2lycV9oYW5kbGVyKGludCBpcnEsIHZvaWQgKmRldl9pbnN0YW5jZSkNCiAJcmV0 dXJuIElSUV9IQU5ETEVEOw0KIH0NCiANCi1zdGF0aWMgaW50DQotbXQ3OTE1X2FsbG9jX2Rldmlj ZShzdHJ1Y3QgcGNpX2RldiAqcGRldiwgc3RydWN0IG10NzkxNV9kZXYgKmRldikNCi17DQotI2Rl ZmluZSBOVU1fQkFORFMJMg0KLQlpbnQgaTsNCi0JczggKipza3U7DQotDQotCXNrdSA9IGRldm1f a3phbGxvYygmcGRldi0+ZGV2LCBOVU1fQkFORFMgKiBzaXplb2YoKnNrdSksIEdGUF9LRVJORUwp Ow0KLQlpZiAoIXNrdSkNCi0JCXJldHVybiAtRU5PTUVNOw0KLQ0KLQlmb3IgKGkgPSAwOyBpIDwg TlVNX0JBTkRTOyBpKyspIHsNCi0JCXNrdVtpXSA9IGRldm1fa3phbGxvYygmcGRldi0+ZGV2LCBN VDc5MTVfU0tVX1RBQkxFX1NJWkUgKg0KLQkJCQkgICAgICBzaXplb2YoKipza3UpLCBHRlBfS0VS TkVMKTsNCi0JCWlmICghc2t1W2ldKQ0KLQkJCXJldHVybiAtRU5PTUVNOw0KLQl9DQotCWRldi0+ cmF0ZV9wb3dlciA9IHNrdTsNCi0NCi0JcmV0dXJuIDA7DQotfQ0KLQ0KIHN0YXRpYyBpbnQgbXQ3 OTE1X3BjaV9wcm9iZShzdHJ1Y3QgcGNpX2RldiAqcGRldiwNCiAJCQkgICAgY29uc3Qgc3RydWN0 IHBjaV9kZXZpY2VfaWQgKmlkKQ0KIHsNCkBAIC0xNDAsOSArMTE4LDYgQEAgc3RhdGljIGludCBt dDc5MTVfcGNpX3Byb2JlKHN0cnVjdCBwY2lfZGV2ICpwZGV2LA0KIAkJcmV0dXJuIC1FTk9NRU07 DQogDQogCWRldiA9IGNvbnRhaW5lcl9vZihtZGV2LCBzdHJ1Y3QgbXQ3OTE1X2RldiwgbXQ3Nik7 DQotCXJldCA9IG10NzkxNV9hbGxvY19kZXZpY2UocGRldiwgZGV2KTsNCi0JaWYgKHJldCkNCi0J CXJldHVybiByZXQ7DQogDQogCW10NzZfbW1pb19pbml0KCZkZXYtPm10NzYsIHBjaW1faW9tYXBf dGFibGUocGRldilbMF0pOw0KIAltZGV2LT5yZXYgPSAobXQ3OTE1X2wxX3JyKGRldiwgTVRfSFdf Q0hJUElEKSA8PCAxNikgfA0KLS0gDQoyLjE3LjENCg==