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, 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 98AE3C43603 for ; Wed, 18 Dec 2019 08:31:42 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 553752465E for ; Wed, 18 Dec 2019 08:31:42 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=mediatek.com header.i=@mediatek.com header.b="l+poRVwc" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726977AbfLRIbl (ORCPT ); Wed, 18 Dec 2019 03:31:41 -0500 Received: from mailgw01.mediatek.com ([210.61.82.183]:9891 "EHLO mailgw01.mediatek.com" rhost-flags-OK-FAIL-OK-FAIL) by vger.kernel.org with ESMTP id S1726771AbfLRIbJ (ORCPT ); Wed, 18 Dec 2019 03:31:09 -0500 X-UUID: cc029118c1e84e218c1efd2672bb7bd0-20191218 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=uXGkn3ZDyK4FYh6/CU/GmdIkkH8fqdIaTYa0BJ/T64c=; b=l+poRVwc2dMgjLxzscRnRQA5R8kk/sbvriVtg/mFx12cUrINXY7+7xefQMruLO8pI/D90CjBYo+pA8HCfBRZK+gbVcDLn10hYbQ1lQ3KLrXTWsucoIzVgNcSP2K2ZPfezRnkflKvNcbsa3k0Hqj8VfA8EOorRA4zh7HULBAsZy8=; X-UUID: cc029118c1e84e218c1efd2672bb7bd0-20191218 Received: from mtkcas08.mediatek.inc [(172.21.101.126)] by mailgw01.mediatek.com (envelope-from ) (Cellopoint E-mail Firewall v4.1.10 Build 0809 with TLS) with ESMTP id 552171796; Wed, 18 Dec 2019 16:30:58 +0800 Received: from mtkcas07.mediatek.inc (172.21.101.84) by mtkmbs07n2.mediatek.inc (172.21.101.141) with Microsoft SMTP Server (TLS) id 15.0.1395.4; Wed, 18 Dec 2019 16:30:40 +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.1395.4 via Frontend Transport; Wed, 18 Dec 2019 16:30:29 +0800 From: Weiyi Lu To: Nicolas Boichat , Matthias Brugger , Rob Herring , Sascha Hauer CC: James Liao , Fan Chen , , , , , Weiyi Lu Subject: [PATCH v10 05/12] soc: mediatek: Add multiple step bus protection control Date: Wed, 18 Dec 2019 16:30:41 +0800 Message-ID: <1576657848-14711-6-git-send-email-weiyi.lu@mediatek.com> X-Mailer: git-send-email 1.8.1.1.dirty In-Reply-To: <1576657848-14711-1-git-send-email-weiyi.lu@mediatek.com> References: <1576657848-14711-1-git-send-email-weiyi.lu@mediatek.com> MIME-Version: 1.0 Content-Type: text/plain X-MTK: N Content-Transfer-Encoding: base64 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Qm90aCBNVDgxODMgJiBNVDY3NjUgaGF2ZSBtb3JlIGNvbnRyb2wgc3RlcHMgb2YgYnVzIHByb3Rl Y3Rpb24NCnRoYW4gcHJldmlvdXMgcHJvamVjdC4gQW5kIHRoZXJlIGFkZCBtb3JlIGJ1cyBwcm90 ZWN0aW9uIHJlZ2lzdGVycw0KcmVzaWRlIGF0IGluZnJhY2ZnICYgc21pLWNvbW1vbi4gQWxzbyBh ZGQgbmV3IEFQSXMgZm9yIG11bHRpcGxlDQpzdGVwIGJ1cyBwcm90ZWN0aW9uIGNvbnRyb2wgd2l0 aCBtb3JlIGN1c3RvbWl6ZWQgYXJndW1lbnRzLg0KDQpTaWduZWQtb2ZmLWJ5OiBXZWl5aSBMdSA8 d2VpeWkubHVAbWVkaWF0ZWsuY29tPg0KLS0tDQogZHJpdmVycy9zb2MvbWVkaWF0ZWsvTWFrZWZp bGUgICAgICAgICAgIHwgIDIgKy0NCiBkcml2ZXJzL3NvYy9tZWRpYXRlay9tdGstc2Nwc3lzLWV4 dC5jICAgfCA5OSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysNCiBkcml2ZXJzL3Nv Yy9tZWRpYXRlay9tdGstc2Nwc3lzLmMgICAgICAgfCAzOSArKysrKysrKystLS0tDQogaW5jbHVk ZS9saW51eC9zb2MvbWVkaWF0ZWsvc2Nwc3lzLWV4dC5oIHwgMzkgKysrKysrKysrKysrKw0KIDQg ZmlsZXMgY2hhbmdlZCwgMTY4IGluc2VydGlvbnMoKyksIDExIGRlbGV0aW9ucygtKQ0KIGNyZWF0 ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL3NvYy9tZWRpYXRlay9tdGstc2Nwc3lzLWV4dC5jDQogY3Jl YXRlIG1vZGUgMTAwNjQ0IGluY2x1ZGUvbGludXgvc29jL21lZGlhdGVrL3NjcHN5cy1leHQuaA0K DQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zb2MvbWVkaWF0ZWsvTWFrZWZpbGUgYi9kcml2ZXJzL3Nv Yy9tZWRpYXRlay9NYWtlZmlsZQ0KaW5kZXggYjAxNzMzMC4uYjQ0MmJlOSAxMDA2NDQNCi0tLSBh L2RyaXZlcnMvc29jL21lZGlhdGVrL01ha2VmaWxlDQorKysgYi9kcml2ZXJzL3NvYy9tZWRpYXRl ay9NYWtlZmlsZQ0KQEAgLTEsNSArMSw1IEBADQogIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjog R1BMLTIuMC1vbmx5DQogb2JqLSQoQ09ORklHX01US19DTURRKSArPSBtdGstY21kcS1oZWxwZXIu bw0KLW9iai0kKENPTkZJR19NVEtfSU5GUkFDRkcpICs9IG10ay1pbmZyYWNmZy5vDQorb2JqLSQo Q09ORklHX01US19JTkZSQUNGRykgKz0gbXRrLWluZnJhY2ZnLm8gbXRrLXNjcHN5cy1leHQubw0K IG9iai0kKENPTkZJR19NVEtfUE1JQ19XUkFQKSArPSBtdGstcG1pYy13cmFwLm8NCiBvYmotJChD T05GSUdfTVRLX1NDUFNZUykgKz0gbXRrLXNjcHN5cy5vDQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9z b2MvbWVkaWF0ZWsvbXRrLXNjcHN5cy1leHQuYyBiL2RyaXZlcnMvc29jL21lZGlhdGVrL210ay1z Y3BzeXMtZXh0LmMNCm5ldyBmaWxlIG1vZGUgMTAwNjQ0DQppbmRleCAwMDAwMDAwLi44MTUwZDRm DQotLS0gL2Rldi9udWxsDQorKysgYi9kcml2ZXJzL3NvYy9tZWRpYXRlay9tdGstc2Nwc3lzLWV4 dC5jDQpAQCAtMCwwICsxLDk5IEBADQorLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0y LjANCisvKg0KKyAqIENvcHlyaWdodCAoYykgMjAxOCBNZWRpYVRlayBJbmMuDQorICogQXV0aG9y OiBPd2VuIENoZW4gPE93ZW4uQ2hlbkBtZWRpYXRlay5jb20+DQorICovDQorI2luY2x1ZGUgPGxp bnV4L2t0aW1lLmg+DQorI2luY2x1ZGUgPGxpbnV4L21mZC9zeXNjb24uaD4NCisjaW5jbHVkZSA8 bGludXgvb2ZfZGV2aWNlLmg+DQorI2luY2x1ZGUgPGxpbnV4L3JlZ21hcC5oPg0KKyNpbmNsdWRl IDxsaW51eC9zb2MvbWVkaWF0ZWsvc2Nwc3lzLWV4dC5oPg0KKw0KKyNkZWZpbmUgTVRLX1BPTExf REVMQVlfVVMgICAxMA0KKyNkZWZpbmUgTVRLX1BPTExfVElNRU9VVCAgICBVU0VDX1BFUl9TRUMN CisNCitzdGF0aWMgaW50IHNldF9idXNfcHJvdGVjdGlvbihzdHJ1Y3QgcmVnbWFwICptYXAsIHUz MiBtYXNrLCB1MzIgYWNrX21hc2ssDQorCQl1MzIgcmVnX3NldCwgdTMyIHJlZ19zdGEsIHUzMiBy ZWdfZW4pDQorew0KKwl1MzIgdmFsOw0KKw0KKwlpZiAocmVnX3NldCkNCisJCXJlZ21hcF93cml0 ZShtYXAsIHJlZ19zZXQsIG1hc2spOw0KKwllbHNlDQorCQlyZWdtYXBfdXBkYXRlX2JpdHMobWFw LCByZWdfZW4sIG1hc2ssIG1hc2spOw0KKw0KKwlyZXR1cm4gcmVnbWFwX3JlYWRfcG9sbF90aW1l b3V0KG1hcCwgcmVnX3N0YSwNCisJCQl2YWwsICh2YWwgJiBhY2tfbWFzaykgPT0gYWNrX21hc2ss DQorCQkJTVRLX1BPTExfREVMQVlfVVMsIE1US19QT0xMX1RJTUVPVVQpOw0KK30NCisNCitzdGF0 aWMgaW50IGNsZWFyX2J1c19wcm90ZWN0aW9uKHN0cnVjdCByZWdtYXAgKm1hcCwgdTMyIG1hc2ss IHUzMiBhY2tfbWFzaywNCisJCXUzMiByZWdfY2xyLCB1MzIgcmVnX3N0YSwgdTMyIHJlZ19lbikN Cit7DQorCXUzMiB2YWw7DQorDQorCWlmIChyZWdfY2xyKQ0KKwkJcmVnbWFwX3dyaXRlKG1hcCwg cmVnX2NsciwgbWFzayk7DQorCWVsc2UNCisJCXJlZ21hcF91cGRhdGVfYml0cyhtYXAsIHJlZ19l biwgbWFzaywgMCk7DQorDQorCXJldHVybiByZWdtYXBfcmVhZF9wb2xsX3RpbWVvdXQobWFwLCBy ZWdfc3RhLA0KKwkJCXZhbCwgISh2YWwgJiBhY2tfbWFzayksDQorCQkJTVRLX1BPTExfREVMQVlf VVMsIE1US19QT0xMX1RJTUVPVVQpOw0KK30NCisNCitpbnQgbXRrX3NjcHN5c19leHRfc2V0X2J1 c19wcm90ZWN0aW9uKGNvbnN0IHN0cnVjdCBidXNfcHJvdCAqYnBfdGFibGUsDQorCXN0cnVjdCBy ZWdtYXAgKmluZnJhY2ZnLCBzdHJ1Y3QgcmVnbWFwICpzbWlfY29tbW9uKQ0KK3sNCisJaW50IGk7 DQorDQorCWZvciAoaSA9IDA7IGkgPCBNQVhfU1RFUFM7IGkrKykgew0KKwkJc3RydWN0IHJlZ21h cCAqbWFwID0gTlVMTDsNCisJCWludCByZXQ7DQorDQorCQlpZiAoYnBfdGFibGVbaV0udHlwZSA9 PSBJTlZBTElEX1RZUEUpDQorCQkJYnJlYWs7DQorCQllbHNlIGlmIChicF90YWJsZVtpXS50eXBl ID09IElGUl9UWVBFKQ0KKwkJCW1hcCA9IGluZnJhY2ZnOw0KKwkJZWxzZSBpZiAoYnBfdGFibGVb aV0udHlwZSA9PSBTTUlfVFlQRSkNCisJCQltYXAgPSBzbWlfY29tbW9uOw0KKw0KKwkJcmV0ID0g c2V0X2J1c19wcm90ZWN0aW9uKG1hcCwNCisJCQkJYnBfdGFibGVbaV0ubWFzaywgYnBfdGFibGVb aV0ubWFzaywNCisJCQkJYnBfdGFibGVbaV0uc2V0X29mcywgYnBfdGFibGVbaV0uc3RhX29mcywN CisJCQkJYnBfdGFibGVbaV0uZW5fb2ZzKTsNCisNCisJCWlmIChyZXQpDQorCQkJcmV0dXJuIHJl dDsNCisJfQ0KKw0KKwlyZXR1cm4gMDsNCit9DQorDQoraW50IG10a19zY3BzeXNfZXh0X2NsZWFy X2J1c19wcm90ZWN0aW9uKGNvbnN0IHN0cnVjdCBidXNfcHJvdCAqYnBfdGFibGUsDQorCXN0cnVj dCByZWdtYXAgKmluZnJhY2ZnLCBzdHJ1Y3QgcmVnbWFwICpzbWlfY29tbW9uKQ0KK3sNCisJaW50 IGk7DQorDQorCWZvciAoaSA9IE1BWF9TVEVQUyAtIDE7IGkgPj0gMDsgaS0tKSB7DQorCQlzdHJ1 Y3QgcmVnbWFwICptYXAgPSBOVUxMOw0KKwkJaW50IHJldDsNCisNCisJCWlmIChicF90YWJsZVtp XS50eXBlID09IElOVkFMSURfVFlQRSkNCisJCQljb250aW51ZTsNCisJCWVsc2UgaWYgKGJwX3Rh YmxlW2ldLnR5cGUgPT0gSUZSX1RZUEUpDQorCQkJbWFwID0gaW5mcmFjZmc7DQorCQllbHNlIGlm IChicF90YWJsZVtpXS50eXBlID09IFNNSV9UWVBFKQ0KKwkJCW1hcCA9IHNtaV9jb21tb247DQor DQorCQlyZXQgPSBjbGVhcl9idXNfcHJvdGVjdGlvbihtYXAsDQorCQkJCWJwX3RhYmxlW2ldLm1h c2ssIGJwX3RhYmxlW2ldLmNscl9hY2tfbWFzaywNCisJCQkJYnBfdGFibGVbaV0uY2xyX29mcywg YnBfdGFibGVbaV0uc3RhX29mcywNCisJCQkJYnBfdGFibGVbaV0uZW5fb2ZzKTsNCisNCisJCWlm IChyZXQpDQorCQkJcmV0dXJuIHJldDsNCisJfQ0KKw0KKwlyZXR1cm4gMDsNCit9DQpkaWZmIC0t Z2l0IGEvZHJpdmVycy9zb2MvbWVkaWF0ZWsvbXRrLXNjcHN5cy5jIGIvZHJpdmVycy9zb2MvbWVk aWF0ZWsvbXRrLXNjcHN5cy5jDQppbmRleCBkYjM1YTI4Li41Njk5ZDlmIDEwMDY0NA0KLS0tIGEv ZHJpdmVycy9zb2MvbWVkaWF0ZWsvbXRrLXNjcHN5cy5jDQorKysgYi9kcml2ZXJzL3NvYy9tZWRp YXRlay9tdGstc2Nwc3lzLmMNCkBAIC0xMiw2ICsxMiw3IEBADQogI2luY2x1ZGUgPGxpbnV4L3Bt X2RvbWFpbi5oPg0KICNpbmNsdWRlIDxsaW51eC9yZWd1bGF0b3IvY29uc3VtZXIuaD4NCiAjaW5j bHVkZSA8bGludXgvc29jL21lZGlhdGVrL2luZnJhY2ZnLmg+DQorI2luY2x1ZGUgPGxpbnV4L3Nv Yy9tZWRpYXRlay9zY3BzeXMtZXh0Lmg+DQogDQogI2luY2x1ZGUgPGR0LWJpbmRpbmdzL3Bvd2Vy L210MjcwMS1wb3dlci5oPg0KICNpbmNsdWRlIDxkdC1iaW5kaW5ncy9wb3dlci9tdDI3MTItcG93 ZXIuaD4NCkBAIC05MCw2ICs5MSw3IEBADQogICogQGJ1c19wcm90X21hc2s6IFRoZSBtYXNrIGZv ciBzaW5nbGUgc3RlcCBidXMgcHJvdGVjdGlvbi4NCiAgKiBAYmFzaWNfY2xrX25hbWU6IFRoZSBi YXNpYyBjbG9ja3MgcmVxdWlyZWQgYnkgdGhpcyBwb3dlciBkb21haW4uDQogICogQGNhcHM6IFRo ZSBmbGFnIGZvciBhY3RpdmUgd2FrZS11cCBhY3Rpb24uDQorICogQGJwX3RhYmxlOiBUaGUgbWFz ayB0YWJsZSBmb3IgbXVsdGlwbGUgc3RlcCBidXMgcHJvdGVjdGlvbi4NCiAgKi8NCiBzdHJ1Y3Qg c2NwX2RvbWFpbl9kYXRhIHsNCiAJY29uc3QgY2hhciAqbmFtZTsNCkBAIC0xMDAsNiArMTAyLDcg QEAgc3RydWN0IHNjcF9kb21haW5fZGF0YSB7DQogCXUzMiBidXNfcHJvdF9tYXNrOw0KIAljb25z dCBjaGFyICpiYXNpY19jbGtfbmFtZVtNQVhfQ0xLU107DQogCXU4IGNhcHM7DQorCXN0cnVjdCBi dXNfcHJvdCBicF90YWJsZVtNQVhfU1RFUFNdOw0KIH07DQogDQogc3RydWN0IHNjcDsNCkBAIC0x MjMsNiArMTI2LDcgQEAgc3RydWN0IHNjcCB7DQogCXN0cnVjdCBkZXZpY2UgKmRldjsNCiAJdm9p ZCBfX2lvbWVtICpiYXNlOw0KIAlzdHJ1Y3QgcmVnbWFwICppbmZyYWNmZzsNCisJc3RydWN0IHJl Z21hcCAqc21pX2NvbW1vbjsNCiAJc3RydWN0IHNjcF9jdHJsX3JlZyBjdHJsX3JlZzsNCiAJYm9v bCBidXNfcHJvdF9yZWdfdXBkYXRlOw0KIH07DQpAQCAtMjUyLDI0ICsyNTYsMjggQEAgc3RhdGlj IGludCBzY3BzeXNfYnVzX3Byb3RlY3RfZW5hYmxlKHN0cnVjdCBzY3BfZG9tYWluICpzY3BkKQ0K IHsNCiAJc3RydWN0IHNjcCAqc2NwID0gc2NwZC0+c2NwOw0KIA0KLQlpZiAoIXNjcGQtPmRhdGEt PmJ1c19wcm90X21hc2spDQotCQlyZXR1cm4gMDsNCisJaWYgKHNjcGQtPmRhdGEtPmJ1c19wcm90 X21hc2spIHsNCisJCXJldHVybiBtdGtfaW5mcmFjZmdfc2V0X2J1c19wcm90ZWN0aW9uKHNjcC0+ aW5mcmFjZmcsDQorCQkJCXNjcGQtPmRhdGEtPmJ1c19wcm90X21hc2ssDQorCQkJCXNjcC0+YnVz X3Byb3RfcmVnX3VwZGF0ZSk7DQorCX0NCiANCi0JcmV0dXJuIG10a19pbmZyYWNmZ19zZXRfYnVz X3Byb3RlY3Rpb24oc2NwLT5pbmZyYWNmZywNCi0JCQlzY3BkLT5kYXRhLT5idXNfcHJvdF9tYXNr LA0KLQkJCXNjcC0+YnVzX3Byb3RfcmVnX3VwZGF0ZSk7DQorCXJldHVybiBtdGtfc2Nwc3lzX2V4 dF9zZXRfYnVzX3Byb3RlY3Rpb24oc2NwZC0+ZGF0YS0+YnBfdGFibGUsDQorCQkJc2NwLT5pbmZy YWNmZywgc2NwLT5zbWlfY29tbW9uKTsNCiB9DQogDQogc3RhdGljIGludCBzY3BzeXNfYnVzX3By b3RlY3RfZGlzYWJsZShzdHJ1Y3Qgc2NwX2RvbWFpbiAqc2NwZCkNCiB7DQogCXN0cnVjdCBzY3Ag KnNjcCA9IHNjcGQtPnNjcDsNCiANCi0JaWYgKCFzY3BkLT5kYXRhLT5idXNfcHJvdF9tYXNrKQ0K LQkJcmV0dXJuIDA7DQorCWlmIChzY3BkLT5kYXRhLT5idXNfcHJvdF9tYXNrKSB7DQorCQlyZXR1 cm4gbXRrX2luZnJhY2ZnX2NsZWFyX2J1c19wcm90ZWN0aW9uKHNjcC0+aW5mcmFjZmcsDQorCQkJ CXNjcGQtPmRhdGEtPmJ1c19wcm90X21hc2ssDQorCQkJCXNjcC0+YnVzX3Byb3RfcmVnX3VwZGF0 ZSk7DQorCX0NCiANCi0JcmV0dXJuIG10a19pbmZyYWNmZ19jbGVhcl9idXNfcHJvdGVjdGlvbihz Y3AtPmluZnJhY2ZnLA0KLQkJCXNjcGQtPmRhdGEtPmJ1c19wcm90X21hc2ssDQotCQkJc2NwLT5i dXNfcHJvdF9yZWdfdXBkYXRlKTsNCisJcmV0dXJuIG10a19zY3BzeXNfZXh0X2NsZWFyX2J1c19w cm90ZWN0aW9uKHNjcGQtPmRhdGEtPmJwX3RhYmxlLA0KKwkJCXNjcC0+aW5mcmFjZmcsIHNjcC0+ c21pX2NvbW1vbik7DQogfQ0KIA0KIHN0YXRpYyBpbnQgc2Nwc3lzX3Bvd2VyX29uKHN0cnVjdCBn ZW5lcmljX3BtX2RvbWFpbiAqZ2VucGQpDQpAQCAtNDQ4LDYgKzQ1NiwxNyBAQCBzdGF0aWMgc3Ry dWN0IHNjcCAqaW5pdF9zY3Aoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldiwNCiAJCXJldHVy biBFUlJfQ0FTVChzY3AtPmluZnJhY2ZnKTsNCiAJfQ0KIA0KKwlzY3AtPnNtaV9jb21tb24gPSBz eXNjb25fcmVnbWFwX2xvb2t1cF9ieV9waGFuZGxlKHBkZXYtPmRldi5vZl9ub2RlLA0KKwkJCSJz bWlfY29tbSIpOw0KKw0KKwlpZiAoc2NwLT5zbWlfY29tbW9uID09IEVSUl9QVFIoLUVOT0RFVikp IHsNCisJCXNjcC0+c21pX2NvbW1vbiA9IE5VTEw7DQorCX0gZWxzZSBpZiAoSVNfRVJSKHNjcC0+ c21pX2NvbW1vbikpIHsNCisJCWRldl9lcnIoJnBkZXYtPmRldiwgIkNhbm5vdCBmaW5kIHNtaV9j b21tb24gY29udHJvbGxlcjogJWxkXG4iLA0KKwkJCQlQVFJfRVJSKHNjcC0+c21pX2NvbW1vbikp Ow0KKwkJcmV0dXJuIEVSUl9DQVNUKHNjcC0+c21pX2NvbW1vbik7DQorCX0NCisNCiAJZm9yIChp ID0gMDsgaSA8IG51bTsgaSsrKSB7DQogCQlzdHJ1Y3Qgc2NwX2RvbWFpbiAqc2NwZCA9ICZzY3At PmRvbWFpbnNbaV07DQogCQljb25zdCBzdHJ1Y3Qgc2NwX2RvbWFpbl9kYXRhICpkYXRhID0gJnNj cF9kb21haW5fZGF0YVtpXTsNCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L3NvYy9tZWRpYXRl ay9zY3BzeXMtZXh0LmggYi9pbmNsdWRlL2xpbnV4L3NvYy9tZWRpYXRlay9zY3BzeXMtZXh0LmgN Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0DQppbmRleCAwMDAwMDAwLi4zZTViODRkDQotLS0gL2Rldi9u dWxsDQorKysgYi9pbmNsdWRlL2xpbnV4L3NvYy9tZWRpYXRlay9zY3BzeXMtZXh0LmgNCkBAIC0w LDAgKzEsMzkgQEANCisvKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMCAqLw0KKyNp Zm5kZWYgX19TT0NfTUVESUFURUtfU0NQU1lTX0VYVF9IDQorI2RlZmluZSBfX1NPQ19NRURJQVRF S19TQ1BTWVNfRVhUX0gNCisNCisjZGVmaW5lIE1BWF9TVEVQUwk0DQorDQorI2RlZmluZSBCVVNf UFJPVChfdHlwZSwgX3NldF9vZnMsIF9jbHJfb2ZzLAkJCVwNCisJCV9lbl9vZnMsIF9zdGFfb2Zz LCBfbWFzaywgX2Nscl9hY2tfbWFzaykgewlcDQorCQkudHlwZSA9IF90eXBlLAkJCQkJXA0KKwkJ LnNldF9vZnMgPSBfc2V0X29mcywJCQkJXA0KKwkJLmNscl9vZnMgPSBfY2xyX29mcywJCQkJXA0K KwkJLmVuX29mcyA9IF9lbl9vZnMsCQkJCVwNCisJCS5zdGFfb2ZzID0gX3N0YV9vZnMsCQkJCVwN CisJCS5tYXNrID0gX21hc2ssCQkJCQlcDQorCQkuY2xyX2Fja19tYXNrID0gX2Nscl9hY2tfbWFz aywJCQlcDQorCX0NCisNCitlbnVtIHJlZ21hcF90eXBlIHsNCisJSU5WQUxJRF9UWVBFID0gMCwN CisJSUZSX1RZUEUsDQorCVNNSV9UWVBFLA0KK307DQorDQorc3RydWN0IGJ1c19wcm90IHsNCisJ ZW51bSByZWdtYXBfdHlwZSB0eXBlOw0KKwl1MzIgc2V0X29mczsNCisJdTMyIGNscl9vZnM7DQor CXUzMiBlbl9vZnM7DQorCXUzMiBzdGFfb2ZzOw0KKwl1MzIgbWFzazsNCisJdTMyIGNscl9hY2tf bWFzazsNCit9Ow0KKw0KK2ludCBtdGtfc2Nwc3lzX2V4dF9zZXRfYnVzX3Byb3RlY3Rpb24oY29u c3Qgc3RydWN0IGJ1c19wcm90ICpicF90YWJsZSwNCisJc3RydWN0IHJlZ21hcCAqaW5mcmFjZmcs IHN0cnVjdCByZWdtYXAgKnNtaV9jb21tb24pOw0KK2ludCBtdGtfc2Nwc3lzX2V4dF9jbGVhcl9i dXNfcHJvdGVjdGlvbihjb25zdCBzdHJ1Y3QgYnVzX3Byb3QgKmJwX3RhYmxlLA0KKwlzdHJ1Y3Qg cmVnbWFwICppbmZyYWNmZywgc3RydWN0IHJlZ21hcCAqc21pX2NvbW1vbik7DQorDQorI2VuZGlm IC8qIF9fU09DX01FRElBVEVLX1NDUFNZU19FWFRfSCAqLw0KLS0gDQoxLjguMS4xLmRpcnR5DQo=