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 E5997C2D0BF for ; Tue, 10 Dec 2019 06:47:30 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id A257B206E0 for ; Tue, 10 Dec 2019 06:47:30 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=mediatek.com header.i=@mediatek.com header.b="uMdtqez5" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727433AbfLJGr3 (ORCPT ); Tue, 10 Dec 2019 01:47:29 -0500 Received: from mailgw02.mediatek.com ([210.61.82.184]:5886 "EHLO mailgw02.mediatek.com" rhost-flags-OK-FAIL-OK-FAIL) by vger.kernel.org with ESMTP id S1727310AbfLJGrY (ORCPT ); Tue, 10 Dec 2019 01:47:24 -0500 X-UUID: 9cda9c2500d34e9aa6dcd86457821374-20191210 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=ai83lkRZuFOgtY+3u7a04aruj+ClqIiFf4wVmnoTgw8=; b=uMdtqez5pio9GUXxJtc/IVEAaHlFDD9P9HpOSwTkAJGIkuRjnp9YN0gao2zyjc3HYAm/0tlJKkt1yxPb758WllddOy2SRBrTArGzQNL8/1MZ8Ibm86EtIR3hhf8nKCbpWZwNsdYHIuZM5Fd1muPIQSJYOB0JbJNZ3zedII25RBQ=; X-UUID: 9cda9c2500d34e9aa6dcd86457821374-20191210 Received: from mtkexhb01.mediatek.inc [(172.21.101.102)] by mailgw02.mediatek.com (envelope-from ) (Cellopoint E-mail Firewall v4.1.10 Build 0809 with TLS) with ESMTP id 647363418; Tue, 10 Dec 2019 14:47:13 +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; Tue, 10 Dec 2019 14:46:58 +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; Tue, 10 Dec 2019 14:47:17 +0800 From: Weiyi Lu To: Nicolas Boichat , Matthias Brugger , Rob Herring CC: James Liao , Fan Chen , , , , , Weiyi Lu , Yong Wu Subject: [PATCH v9 4/9] soc: mediatek: Add multiple step bus protection control Date: Tue, 10 Dec 2019 14:46:48 +0800 Message-ID: <1575960413-6900-5-git-send-email-weiyi.lu@mediatek.com> X-Mailer: git-send-email 1.8.1.1.dirty In-Reply-To: <1575960413-6900-1-git-send-email-weiyi.lu@mediatek.com> References: <1575960413-6900-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 Y3BzeXMtZXh0LmMNCm5ldyBmaWxlIG1vZGUgMTAwNjQ0DQppbmRleCAwMDAwMDAwLi40ZjFhZGRh 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 PSBJTlZBTElEX1RZUEUpDQorCQkJY29udGludWU7DQorCQllbHNlIGlmIChicF90YWJsZVtpXS50 eXBlID09IElGUl9UWVBFKQ0KKwkJCW1hcCA9IGluZnJhY2ZnOw0KKwkJZWxzZSBpZiAoYnBfdGFi bGVbaV0udHlwZSA9PSBTTUlfVFlQRSkNCisJCQltYXAgPSBzbWlfY29tbW9uOw0KKw0KKwkJcmV0 ID0gc2V0X2J1c19wcm90ZWN0aW9uKG1hcCwNCisJCQkJYnBfdGFibGVbaV0ubWFzaywgYnBfdGFi bGVbaV0ubWFzaywNCisJCQkJYnBfdGFibGVbaV0uc2V0X29mcywgYnBfdGFibGVbaV0uc3RhX29m cywNCisJCQkJYnBfdGFibGVbaV0uZW5fb2ZzKTsNCisNCisJCWlmIChyZXQpDQorCQkJcmV0dXJu IHJldDsNCisJfQ0KKw0KKwlyZXR1cm4gMDsNCit9DQorDQoraW50IG10a19zY3BzeXNfZXh0X2Ns ZWFyX2J1c19wcm90ZWN0aW9uKGNvbnN0IHN0cnVjdCBidXNfcHJvdCAqYnBfdGFibGUsDQorCXN0 cnVjdCByZWdtYXAgKmluZnJhY2ZnLCBzdHJ1Y3QgcmVnbWFwICpzbWlfY29tbW9uKQ0KK3sNCisJ aW50IGk7DQorDQorCWZvciAoaSA9IE1BWF9TVEVQUyAtIDE7IGkgPj0gMDsgaS0tKSB7DQorCQlz dHJ1Y3QgcmVnbWFwICptYXAgPSBOVUxMOw0KKwkJaW50IHJldDsNCisNCisJCWlmIChicF90YWJs ZVtpXS50eXBlID09IElOVkFMSURfVFlQRSkNCisJCQljb250aW51ZTsNCisJCWVsc2UgaWYgKGJw X3RhYmxlW2ldLnR5cGUgPT0gSUZSX1RZUEUpDQorCQkJbWFwID0gaW5mcmFjZmc7DQorCQllbHNl IGlmIChicF90YWJsZVtpXS50eXBlID09IFNNSV9UWVBFKQ0KKwkJCW1hcCA9IHNtaV9jb21tb247 DQorDQorCQlyZXQgPSBjbGVhcl9idXNfcHJvdGVjdGlvbihtYXAsDQorCQkJCWJwX3RhYmxlW2ld Lm1hc2ssIGJwX3RhYmxlW2ldLmNscl9hY2tfbWFzaywNCisJCQkJYnBfdGFibGVbaV0uY2xyX29m cywgYnBfdGFibGVbaV0uc3RhX29mcywNCisJCQkJYnBfdGFibGVbaV0uZW5fb2ZzKTsNCisNCisJ CWlmIChyZXQpDQorCQkJcmV0dXJuIHJldDsNCisJfQ0KKw0KKwlyZXR1cm4gMDsNCit9DQpkaWZm IC0tZ2l0IGEvZHJpdmVycy9zb2MvbWVkaWF0ZWsvbXRrLXNjcHN5cy5jIGIvZHJpdmVycy9zb2Mv bWVkaWF0ZWsvbXRrLXNjcHN5cy5jDQppbmRleCA5MTVkNjM1Li40NjZiYjc0OSAxMDA2NDQNCi0t LSBhL2RyaXZlcnMvc29jL21lZGlhdGVrL210ay1zY3BzeXMuYw0KKysrIGIvZHJpdmVycy9zb2Mv bWVkaWF0ZWsvbXRrLXNjcHN5cy5jDQpAQCAtMTIsNiArMTIsNyBAQA0KICNpbmNsdWRlIDxsaW51 eC9wbV9kb21haW4uaD4NCiAjaW5jbHVkZSA8bGludXgvcmVndWxhdG9yL2NvbnN1bWVyLmg+DQog I2luY2x1ZGUgPGxpbnV4L3NvYy9tZWRpYXRlay9pbmZyYWNmZy5oPg0KKyNpbmNsdWRlIDxsaW51 eC9zb2MvbWVkaWF0ZWsvc2Nwc3lzLWV4dC5oPg0KIA0KICNpbmNsdWRlIDxkdC1iaW5kaW5ncy9w b3dlci9tdDI3MDEtcG93ZXIuaD4NCiAjaW5jbHVkZSA8ZHQtYmluZGluZ3MvcG93ZXIvbXQyNzEy LXBvd2VyLmg+DQpAQCAtMTIwLDYgKzEyMSw3IEBAIGVudW0gY2xrX2lkIHsNCiAgKiBAYmFzaWNf Y2xrX2lkOiBwcm92aWRlIHRoZSBzYW1lIHB1cnBvc2Ugd2l0aCBmaWVsZCAiY2xrX2lkIg0KICAq ICAgICAgICAgICAgICAgIGJ5IGRlY2xhcmluZyBiYXNpYyBjbG9jayBwcmVmaXggbmFtZSByYXRo ZXIgdGhhbiBjbGtfaWQuDQogICogQGNhcHM6IFRoZSBmbGFnIGZvciBhY3RpdmUgd2FrZS11cCBh Y3Rpb24uDQorICogQGJwX3RhYmxlOiBUaGUgbWFzayB0YWJsZSBmb3IgbXVsdGlwbGUgc3RlcCBi dXMgcHJvdGVjdGlvbi4NCiAgKi8NCiBzdHJ1Y3Qgc2NwX2RvbWFpbl9kYXRhIHsNCiAJY29uc3Qg Y2hhciAqbmFtZTsNCkBAIC0xMzEsNiArMTMzLDcgQEAgc3RydWN0IHNjcF9kb21haW5fZGF0YSB7 DQogCWVudW0gY2xrX2lkIGNsa19pZFtNQVhfQ0xLU107DQogCWNvbnN0IGNoYXIgKmJhc2ljX2Ns a19pZFtNQVhfQ0xLU107DQogCXU4IGNhcHM7DQorCXN0cnVjdCBidXNfcHJvdCBicF90YWJsZVtN QVhfU1RFUFNdOw0KIH07DQogDQogc3RydWN0IHNjcDsNCkBAIC0xNTQsNiArMTU3LDcgQEAgc3Ry dWN0IHNjcCB7DQogCXN0cnVjdCBkZXZpY2UgKmRldjsNCiAJdm9pZCBfX2lvbWVtICpiYXNlOw0K IAlzdHJ1Y3QgcmVnbWFwICppbmZyYWNmZzsNCisJc3RydWN0IHJlZ21hcCAqc21pX2NvbW1vbjsN CiAJc3RydWN0IHNjcF9jdHJsX3JlZyBjdHJsX3JlZzsNCiAJYm9vbCBidXNfcHJvdF9yZWdfdXBk YXRlOw0KIH07DQpAQCAtMjgzLDI0ICsyODcsMjggQEAgc3RhdGljIGludCBzY3BzeXNfYnVzX3By b3RlY3RfZW5hYmxlKHN0cnVjdCBzY3BfZG9tYWluICpzY3BkKQ0KIHsNCiAJc3RydWN0IHNjcCAq c2NwID0gc2NwZC0+c2NwOw0KIA0KLQlpZiAoIXNjcGQtPmRhdGEtPmJ1c19wcm90X21hc2spDQot CQlyZXR1cm4gMDsNCisJaWYgKHNjcGQtPmRhdGEtPmJ1c19wcm90X21hc2spIHsNCisJCXJldHVy biBtdGtfaW5mcmFjZmdfc2V0X2J1c19wcm90ZWN0aW9uKHNjcC0+aW5mcmFjZmcsDQorCQkJCXNj cGQtPmRhdGEtPmJ1c19wcm90X21hc2ssDQorCQkJCXNjcC0+YnVzX3Byb3RfcmVnX3VwZGF0ZSk7 DQorCX0NCiANCi0JcmV0dXJuIG10a19pbmZyYWNmZ19zZXRfYnVzX3Byb3RlY3Rpb24oc2NwLT5p bmZyYWNmZywNCi0JCQlzY3BkLT5kYXRhLT5idXNfcHJvdF9tYXNrLA0KLQkJCXNjcC0+YnVzX3By b3RfcmVnX3VwZGF0ZSk7DQorCXJldHVybiBtdGtfc2Nwc3lzX2V4dF9zZXRfYnVzX3Byb3RlY3Rp b24oc2NwZC0+ZGF0YS0+YnBfdGFibGUsDQorCQkJc2NwLT5pbmZyYWNmZywgc2NwLT5zbWlfY29t bW9uKTsNCiB9DQogDQogc3RhdGljIGludCBzY3BzeXNfYnVzX3Byb3RlY3RfZGlzYWJsZShzdHJ1 Y3Qgc2NwX2RvbWFpbiAqc2NwZCkNCiB7DQogCXN0cnVjdCBzY3AgKnNjcCA9IHNjcGQtPnNjcDsN CiANCi0JaWYgKCFzY3BkLT5kYXRhLT5idXNfcHJvdF9tYXNrKQ0KLQkJcmV0dXJuIDA7DQorCWlm IChzY3BkLT5kYXRhLT5idXNfcHJvdF9tYXNrKSB7DQorCQlyZXR1cm4gbXRrX2luZnJhY2ZnX2Ns ZWFyX2J1c19wcm90ZWN0aW9uKHNjcC0+aW5mcmFjZmcsDQorCQkJCXNjcGQtPmRhdGEtPmJ1c19w cm90X21hc2ssDQorCQkJCXNjcC0+YnVzX3Byb3RfcmVnX3VwZGF0ZSk7DQorCX0NCiANCi0JcmV0 dXJuIG10a19pbmZyYWNmZ19jbGVhcl9idXNfcHJvdGVjdGlvbihzY3AtPmluZnJhY2ZnLA0KLQkJ CXNjcGQtPmRhdGEtPmJ1c19wcm90X21hc2ssDQotCQkJc2NwLT5idXNfcHJvdF9yZWdfdXBkYXRl KTsNCisJcmV0dXJuIG10a19zY3BzeXNfZXh0X2NsZWFyX2J1c19wcm90ZWN0aW9uKHNjcGQtPmRh dGEtPmJwX3RhYmxlLA0KKwkJCXNjcC0+aW5mcmFjZmcsIHNjcC0+c21pX2NvbW1vbik7DQogfQ0K IA0KIHN0YXRpYyBpbnQgc2Nwc3lzX3Bvd2VyX29uKHN0cnVjdCBnZW5lcmljX3BtX2RvbWFpbiAq Z2VucGQpDQpAQCAtNDY5LDYgKzQ3NywxNyBAQCBzdGF0aWMgc3RydWN0IHNjcCAqaW5pdF9zY3Ao c3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldiwNCiAJCXJldHVybiBFUlJfQ0FTVChzY3AtPmlu ZnJhY2ZnKTsNCiAJfQ0KIA0KKwlzY3AtPnNtaV9jb21tb24gPSBzeXNjb25fcmVnbWFwX2xvb2t1 cF9ieV9waGFuZGxlKHBkZXYtPmRldi5vZl9ub2RlLA0KKwkJCSJzbWlfY29tbSIpOw0KKw0KKwlp ZiAoc2NwLT5zbWlfY29tbW9uID09IEVSUl9QVFIoLUVOT0RFVikpIHsNCisJCXNjcC0+c21pX2Nv bW1vbiA9IE5VTEw7DQorCX0gZWxzZSBpZiAoSVNfRVJSKHNjcC0+c21pX2NvbW1vbikpIHsNCisJ CWRldl9lcnIoJnBkZXYtPmRldiwgIkNhbm5vdCBmaW5kIHNtaV9jb21tb24gY29udHJvbGxlcjog JWxkXG4iLA0KKwkJCQlQVFJfRVJSKHNjcC0+c21pX2NvbW1vbikpOw0KKwkJcmV0dXJuIEVSUl9D QVNUKHNjcC0+c21pX2NvbW1vbik7DQorCX0NCisNCiAJZm9yIChpID0gMDsgaSA8IG51bTsgaSsr KSB7DQogCQlzdHJ1Y3Qgc2NwX2RvbWFpbiAqc2NwZCA9ICZzY3AtPmRvbWFpbnNbaV07DQogCQlj b25zdCBzdHJ1Y3Qgc2NwX2RvbWFpbl9kYXRhICpkYXRhID0gJnNjcF9kb21haW5fZGF0YVtpXTsN CmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L3NvYy9tZWRpYXRlay9zY3BzeXMtZXh0LmggYi9p bmNsdWRlL2xpbnV4L3NvYy9tZWRpYXRlay9zY3BzeXMtZXh0LmgNCm5ldyBmaWxlIG1vZGUgMTAw NjQ0DQppbmRleCAwMDAwMDAwLi4zZTViODRkDQotLS0gL2Rldi9udWxsDQorKysgYi9pbmNsdWRl L2xpbnV4L3NvYy9tZWRpYXRlay9zY3BzeXMtZXh0LmgNCkBAIC0wLDAgKzEsMzkgQEANCisvKiBT UERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMCAqLw0KKyNpZm5kZWYgX19TT0NfTUVESUFU RUtfU0NQU1lTX0VYVF9IDQorI2RlZmluZSBfX1NPQ19NRURJQVRFS19TQ1BTWVNfRVhUX0gNCisN CisjZGVmaW5lIE1BWF9TVEVQUwk0DQorDQorI2RlZmluZSBCVVNfUFJPVChfdHlwZSwgX3NldF9v ZnMsIF9jbHJfb2ZzLAkJCVwNCisJCV9lbl9vZnMsIF9zdGFfb2ZzLCBfbWFzaywgX2Nscl9hY2tf bWFzaykgewlcDQorCQkudHlwZSA9IF90eXBlLAkJCQkJXA0KKwkJLnNldF9vZnMgPSBfc2V0X29m cywJCQkJXA0KKwkJLmNscl9vZnMgPSBfY2xyX29mcywJCQkJXA0KKwkJLmVuX29mcyA9IF9lbl9v ZnMsCQkJCVwNCisJCS5zdGFfb2ZzID0gX3N0YV9vZnMsCQkJCVwNCisJCS5tYXNrID0gX21hc2ss CQkJCQlcDQorCQkuY2xyX2Fja19tYXNrID0gX2Nscl9hY2tfbWFzaywJCQlcDQorCX0NCisNCitl bnVtIHJlZ21hcF90eXBlIHsNCisJSU5WQUxJRF9UWVBFID0gMCwNCisJSUZSX1RZUEUsDQorCVNN SV9UWVBFLA0KK307DQorDQorc3RydWN0IGJ1c19wcm90IHsNCisJZW51bSByZWdtYXBfdHlwZSB0 eXBlOw0KKwl1MzIgc2V0X29mczsNCisJdTMyIGNscl9vZnM7DQorCXUzMiBlbl9vZnM7DQorCXUz MiBzdGFfb2ZzOw0KKwl1MzIgbWFzazsNCisJdTMyIGNscl9hY2tfbWFzazsNCit9Ow0KKw0KK2lu dCBtdGtfc2Nwc3lzX2V4dF9zZXRfYnVzX3Byb3RlY3Rpb24oY29uc3Qgc3RydWN0IGJ1c19wcm90 ICpicF90YWJsZSwNCisJc3RydWN0IHJlZ21hcCAqaW5mcmFjZmcsIHN0cnVjdCByZWdtYXAgKnNt aV9jb21tb24pOw0KK2ludCBtdGtfc2Nwc3lzX2V4dF9jbGVhcl9idXNfcHJvdGVjdGlvbihjb25z dCBzdHJ1Y3QgYnVzX3Byb3QgKmJwX3RhYmxlLA0KKwlzdHJ1Y3QgcmVnbWFwICppbmZyYWNmZywg c3RydWN0IHJlZ21hcCAqc21pX2NvbW1vbik7DQorDQorI2VuZGlmIC8qIF9fU09DX01FRElBVEVL X1NDUFNZU19FWFRfSCAqLw0KLS0gDQoxLjguMS4xLmRpcnR5DQo=