Received: by 2002:a25:868d:0:0:0:0:0 with SMTP id z13csp1244413ybk; Thu, 21 May 2020 02:08:23 -0700 (PDT) X-Google-Smtp-Source: ABdhPJz31r4kI+OFpygEt8kCPe8JjLEq25u5zZvhu9IpUjZN0/BxXka4N6x/9ONM8IqPCTkxvDjP X-Received: by 2002:a17:906:9157:: with SMTP id y23mr2750045ejw.0.1590052103444; Thu, 21 May 2020 02:08:23 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1590052103; cv=none; d=google.com; s=arc-20160816; b=hpyA+xt/IiQJNm0k5tttD2JhQJ38X4UMDWy0lnrUCNiEa4UEncTOeF3pACeKgaBjDm hO/Al99cwF8XwgEB9Rv0JvT9GZOVXm1CY9v7D8fgwmrxSf9geNJUhrd2fB7K4cCIvift x5hYtEa6UysZv6369DderSc8YKpEDZySk+uZIQYt1xEIZ7MYm0/KWLkCdJptcnXMsuNZ 7W0kAF8HCGP6DN3YD8KJqve6jMaKtobWmnvTbK3GoUSdWR1UQblCNFHSnN2QbJYKq8Mg 4uy8XihcFK3ttlLOlFo1UpqEvgvRq0OckLMjnk2GdX6qZTHJws34OVLDqknFEcR9qPUo u4jg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=kKoPuuM3tPCNIWaBDJk8jsXvzDmvWQKPB2JtN+tCnAA=; b=pQLjAgDs0JWv2ROQaPsBSH+hlonBWSrNIfg2KqKtWg1c3dfDSYpeRDgoV2/Nc5bauE MbDeLvibaB50JSA8K2mPwGoISoT+/AuV57L+hDdKFWw2L8sq6YhFbBbZys39zGLWRFtZ ZZ59enwArY0o81jYdqs4qpezktq/tJETM4IpWlEJIdicK+MkMGaoXjSUGDvNEr4y9tpB fVMtQZ9bOtwvKC2ijUM/HdQCylVNVzHFi+aFqUVy4vJsbhBuCuExrLdHweaeBw/3mSVe gUugks/H+2IeWRnTuUShcIaQuplPf91PVgHz3Ewx1t6FGe8OhqhSuvEf1sI/UBiKdKXY rK/Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@mediatek.com header.s=dk header.b=RQafF+jK; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=mediatek.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id t14si725720edy.576.2020.05.21.02.08.00; Thu, 21 May 2020 02:08:23 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@mediatek.com header.s=dk header.b=RQafF+jK; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=mediatek.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728754AbgEUJGg (ORCPT + 99 others); Thu, 21 May 2020 05:06:36 -0400 Received: from mailgw01.mediatek.com ([210.61.82.183]:34173 "EHLO mailgw01.mediatek.com" rhost-flags-OK-FAIL-OK-FAIL) by vger.kernel.org with ESMTP id S1728739AbgEUJGe (ORCPT ); Thu, 21 May 2020 05:06:34 -0400 X-UUID: c00a45c7b6724106ac7e9b5713463a93-20200521 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=kKoPuuM3tPCNIWaBDJk8jsXvzDmvWQKPB2JtN+tCnAA=; b=RQafF+jKmMjKXxCJTDKokAZ7CMhAOa7vQX3VmpH+ZccY4AyyRY+fnSR1PM2i8l5R+spibWMtSN/JalpQ1jlQ6HcfpZ8593zH4QPUJwR47f3WoABnjeyI2mQfaIMNCtV9VQFXmNdW7peW/bCJmmHfi4plJrjUTPX5YuInXgmx6hA=; X-UUID: c00a45c7b6724106ac7e9b5713463a93-20200521 Received: from mtkcas11.mediatek.inc [(172.21.101.40)] by mailgw01.mediatek.com (envelope-from ) (Cellopoint E-mail Firewall v4.1.10 Build 0809 with TLS) with ESMTP id 2102210752; Thu, 21 May 2020 17:06:31 +0800 Received: from mtkcas08.mediatek.inc (172.21.101.126) by mtkmbs07n2.mediatek.inc (172.21.101.141) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Thu, 21 May 2020 17:06:29 +0800 Received: from mtksdccf07.mediatek.inc (172.21.84.99) by mtkcas08.mediatek.inc (172.21.101.73) with Microsoft SMTP Server id 15.0.1497.2 via Frontend Transport; Thu, 21 May 2020 17:06:29 +0800 From: Weiyi Lu To: Enric Balletbo Serra , Matthias Brugger , Nicolas Boichat , Rob Herring , Sascha Hauer CC: James Liao , Fan Chen , , , , , , Weiyi Lu Subject: [PATCH v15 05/11] soc: mediatek: Add multiple step bus protection control Date: Thu, 21 May 2020 17:06:18 +0800 Message-ID: <1590051985-29149-6-git-send-email-weiyi.lu@mediatek.com> X-Mailer: git-send-email 1.8.1.1.dirty In-Reply-To: <1590051985-29149-1-git-send-email-weiyi.lu@mediatek.com> References: <1590051985-29149-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 ZWN0aW9uIHJlZ2lzdGVycw0KcmVzaWRlIGF0IGluZnJhY2ZnICYgc21pLWNvbW1vbi4NCkV4dGVu ZCBmdW5jdGlvbiB0byBzdXBwb3J0IG11bHRpcGxlIHN0ZXAgYnVzIHByb3RlY3Rpb24gY29udHJv bA0Kd2l0aCBtb3JlIGN1c3RvbWl6ZWQgYXJndW1lbnRzLg0KQW5kIHRoZW4gdXNlIGJwX3RhYmxl IGZvciBidXMgcHJvdGVjdGlvbiBvZiBhbGwgY29tcGF0aWJsZXMsDQppbnN0ZWFkIG9mIG1peGlu ZyBidXNfcHJvdF9tYXNrIGFuZCBidXNfcHJvdF9yZWdfdXBkYXRlLg0KDQpTaWduZWQtb2ZmLWJ5 OiBXZWl5aSBMdSA8d2VpeWkubHVAbWVkaWF0ZWsuY29tPg0KLS0tDQogZHJpdmVycy9zb2MvbWVk aWF0ZWsvbXRrLXNjcHN5cy5jIHwgMjM1ICsrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0t LS0tLS0tDQogMSBmaWxlIGNoYW5nZWQsIDE2OCBpbnNlcnRpb25zKCspLCA2NyBkZWxldGlvbnMo LSkNCg0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvc29jL21lZGlhdGVrL210ay1zY3BzeXMuYyBiL2Ry aXZlcnMvc29jL21lZGlhdGVrL210ay1zY3BzeXMuYw0KaW5kZXggYjYwM2FmNy4uNTlhNTI1YSAx MDA2NDQNCi0tLSBhL2RyaXZlcnMvc29jL21lZGlhdGVrL210ay1zY3BzeXMuYw0KKysrIGIvZHJp dmVycy9zb2MvbWVkaWF0ZWsvbXRrLXNjcHN5cy5jDQpAQCAtNzgsMTEgKzc4LDYgQEANCiAjZGVm aW5lIFBXUl9TVEFUVVNfSElGMQkJCUJJVCgyNikJLyogTVQ3NjIyICovDQogI2RlZmluZSBQV1Jf U1RBVFVTX1dCCQkJQklUKDI3KQkvKiBNVDc2MjIgKi8NCiANCi0jZGVmaW5lIElORlJBX1RPUEFY SV9QUk9URUNURU4JCTB4MDIyMA0KLSNkZWZpbmUgSU5GUkFfVE9QQVhJX1BST1RFQ1RTVEExCTB4 MDIyOA0KLSNkZWZpbmUgSU5GUkFfVE9QQVhJX1BST1RFQ1RFTl9TRVQJMHgwMjYwDQotI2RlZmlu ZSBJTkZSQV9UT1BBWElfUFJPVEVDVEVOX0NMUgkweDAyNjQNCi0NCiAjZGVmaW5lIE1UMjcwMV9U T1BfQVhJX1BST1RfRU5fTU1fTTAJCUJJVCgxKQ0KICNkZWZpbmUgTVQyNzAxX1RPUF9BWElfUFJP VF9FTl9DT05OX00JCUJJVCgyKQ0KICNkZWZpbmUgTVQyNzAxX1RPUF9BWElfUFJPVF9FTl9DT05O X1MJCUJJVCg4KQ0KQEAgLTEwMyw2ICs5OCw0NSBAQA0KIA0KICNkZWZpbmUgTUFYX0NMS1MJMw0K IA0KKyNkZWZpbmUgTUFYX1NURVBTCTQNCisNCisjZGVmaW5lIF9CVVNfUFJPVChfdHlwZSwgX3Nl dF9vZnMsIF9jbHJfb2ZzLAkJCVwNCisJCV9lbl9vZnMsIF9zdGFfb2ZzLCBfbWFzaywgX2lnbm9y ZV9jbHJfYWNrKSB7CVwNCisJCS50eXBlID0gX3R5cGUsCQkJCQlcDQorCQkuc2V0X29mcyA9IF9z ZXRfb2ZzLAkJCQlcDQorCQkuY2xyX29mcyA9IF9jbHJfb2ZzLAkJCQlcDQorCQkuZW5fb2ZzID0g X2VuX29mcywJCQkJXA0KKwkJLnN0YV9vZnMgPSBfc3RhX29mcywJCQkJXA0KKwkJLm1hc2sgPSBf bWFzaywJCQkJCVwNCisJCS5pZ25vcmVfY2xyX2FjayA9IF9pZ25vcmVfY2xyX2FjaywJCVwNCisJ fQ0KKw0KKyNkZWZpbmUgQlVTX1BST1QoX3R5cGUsIF9zZXRfb2ZzLCBfY2xyX29mcywJCVwNCisJ CV9lbl9vZnMsIF9zdGFfb2ZzLCBfbWFzaykJCVwNCisJCV9CVVNfUFJPVChfdHlwZSwgX3NldF9v ZnMsIF9jbHJfb2ZzLAlcDQorCQlfZW5fb2ZzLCBfc3RhX29mcywgX21hc2ssIGZhbHNlKQ0KKw0K KyNkZWZpbmUgQlVTX1BST1RfSUdOKF90eXBlLCBfc2V0X29mcywgX2Nscl9vZnMsCVwNCisJCV9l bl9vZnMsIF9zdGFfb2ZzLCBfbWFzaykJCVwNCisJCV9CVVNfUFJPVChfdHlwZSwgX3NldF9vZnMs IF9jbHJfb2ZzLAlcDQorCQlfZW5fb2ZzLCBfc3RhX29mcywgX21hc2ssIHRydWUpDQorDQorZW51 bSByZWdtYXBfdHlwZSB7DQorCUlOVkFMSURfVFlQRSA9IDAsDQorCUlGUl9UWVBFLA0KKwlTTUlf VFlQRSwNCit9Ow0KKw0KK3N0cnVjdCBidXNfcHJvdCB7DQorCWVudW0gcmVnbWFwX3R5cGUgdHlw ZTsNCisJdTMyIHNldF9vZnM7DQorCXUzMiBjbHJfb2ZzOw0KKwl1MzIgZW5fb2ZzOw0KKwl1MzIg c3RhX29mczsNCisJdTMyIG1hc2s7DQorCWJvb2wgaWdub3JlX2Nscl9hY2s7DQorfTsNCisNCiAv KioNCiAgKiBzdHJ1Y3Qgc2NwX2RvbWFpbl9kYXRhIC0gc2NwIGRvbWFpbiBkYXRhIGZvciBwb3dl ciBvbi9vZmYgZmxvdw0KICAqIEBuYW1lOiBUaGUgZG9tYWluIG5hbWUuDQpAQCAtMTEwLDkgKzE0 NCw5IEBADQogICogQGN0bF9vZmZzOiBUaGUgb2Zmc2V0IGZvciBtYWluIHBvd2VyIGNvbnRyb2wg cmVnaXN0ZXIuDQogICogQHNyYW1fcGRuX2JpdHM6IFRoZSBtYXNrIGZvciBzcmFtIHBvd2VyIGNv bnRyb2wgYml0cy4NCiAgKiBAc3JhbV9wZG5fYWNrX2JpdHM6IFRoZSBtYXNrIGZvciBzcmFtIHBv d2VyIGNvbnRyb2wgYWNrZWQgYml0cy4NCi0gKiBAYnVzX3Byb3RfbWFzazogVGhlIG1hc2sgZm9y IHNpbmdsZSBzdGVwIGJ1cyBwcm90ZWN0aW9uLg0KICAqIEBiYXNpY19jbGtfbmFtZTogVGhlIGJh c2ljIGNsb2NrcyByZXF1aXJlZCBieSB0aGlzIHBvd2VyIGRvbWFpbi4NCiAgKiBAY2FwczogVGhl IGZsYWcgZm9yIGFjdGl2ZSB3YWtlLXVwIGFjdGlvbi4NCisgKiBAYnBfdGFibGU6IFRoZSBtYXNr IHRhYmxlIGZvciBtdWx0aXBsZSBzdGVwIGJ1cyBwcm90ZWN0aW9uLg0KICAqLw0KIHN0cnVjdCBz Y3BfZG9tYWluX2RhdGEgew0KIAljb25zdCBjaGFyICpuYW1lOw0KQEAgLTEyMCw5ICsxNTQsOSBA QCBzdHJ1Y3Qgc2NwX2RvbWFpbl9kYXRhIHsNCiAJaW50IGN0bF9vZmZzOw0KIAl1MzIgc3JhbV9w ZG5fYml0czsNCiAJdTMyIHNyYW1fcGRuX2Fja19iaXRzOw0KLQl1MzIgYnVzX3Byb3RfbWFzazsN CiAJY29uc3QgY2hhciAqYmFzaWNfY2xrX25hbWVbTUFYX0NMS1NdOw0KIAl1OCBjYXBzOw0KKwlz dHJ1Y3QgYnVzX3Byb3QgYnBfdGFibGVbTUFYX1NURVBTXTsNCiB9Ow0KIA0KIHN0cnVjdCBzY3A7 DQpAQCAtMTQ2LDggKzE4MCw4IEBAIHN0cnVjdCBzY3Agew0KIAlzdHJ1Y3QgZGV2aWNlICpkZXY7 DQogCXZvaWQgX19pb21lbSAqYmFzZTsNCiAJc3RydWN0IHJlZ21hcCAqaW5mcmFjZmc7DQorCXN0 cnVjdCByZWdtYXAgKnNtaV9jb21tb247DQogCXN0cnVjdCBzY3BfY3RybF9yZWcgY3RybF9yZWc7 DQotCWJvb2wgYnVzX3Byb3RfcmVnX3VwZGF0ZTsNCiB9Ow0KIA0KIHN0cnVjdCBzY3Bfc3ViZG9t YWluIHsNCkBAIC0xNjEsNyArMTk1LDYgQEAgc3RydWN0IHNjcF9zb2NfZGF0YSB7DQogCWNvbnN0 IHN0cnVjdCBzY3Bfc3ViZG9tYWluICpzdWJkb21haW5zOw0KIAlpbnQgbnVtX3N1YmRvbWFpbnM7 DQogCWNvbnN0IHN0cnVjdCBzY3BfY3RybF9yZWcgcmVnczsNCi0JYm9vbCBidXNfcHJvdF9yZWdf dXBkYXRlOw0KIH07DQogDQogc3RhdGljIGludCBzY3BzeXNfZG9tYWluX2lzX29uKHN0cnVjdCBz Y3BfZG9tYWluICpzY3BkKQ0KQEAgLTI3MSw1MyArMzA0LDg3IEBAIHN0YXRpYyBpbnQgc2Nwc3lz X3NyYW1fZGlzYWJsZShzdHJ1Y3Qgc2NwX2RvbWFpbiAqc2NwZCwgdm9pZCBfX2lvbWVtICpjdGxf YWRkcikNCiAJCQlNVEtfUE9MTF9ERUxBWV9VUywgTVRLX1BPTExfVElNRU9VVCk7DQogfQ0KIA0K K3N0YXRpYyBpbnQgc2V0X2J1c19wcm90ZWN0aW9uKHN0cnVjdCByZWdtYXAgKm1hcCwgY29uc3Qg c3RydWN0IGJ1c19wcm90ICpicCkNCit7DQorCXUzMiB2YWw7DQorDQorCWlmIChicC0+c2V0X29m cykNCisJCXJlZ21hcF93cml0ZShtYXAsIGJwLT5zZXRfb2ZzLCBicC0+bWFzayk7DQorCWVsc2UN CisJCXJlZ21hcF91cGRhdGVfYml0cyhtYXAsIGJwLT5lbl9vZnMsIGJwLT5tYXNrLCBicC0+bWFz ayk7DQorDQorCXJldHVybiByZWdtYXBfcmVhZF9wb2xsX3RpbWVvdXQobWFwLCBicC0+c3RhX29m cywNCisJCQl2YWwsICh2YWwgJiBicC0+bWFzaykgPT0gYnAtPm1hc2ssDQorCQkJTVRLX1BPTExf REVMQVlfVVMsIE1US19QT0xMX1RJTUVPVVQpOw0KK30NCisNCitzdGF0aWMgaW50IGNsZWFyX2J1 c19wcm90ZWN0aW9uKHN0cnVjdCByZWdtYXAgKm1hcCwgY29uc3Qgc3RydWN0IGJ1c19wcm90ICpi cCkNCit7DQorCXUzMiB2YWw7DQorDQorCWlmIChicC0+Y2xyX29mcykNCisJCXJlZ21hcF93cml0 ZShtYXAsIGJwLT5jbHJfb2ZzLCBicC0+bWFzayk7DQorCWVsc2UNCisJCXJlZ21hcF91cGRhdGVf Yml0cyhtYXAsIGJwLT5lbl9vZnMsIGJwLT5tYXNrLCAwKTsNCisNCisJaWYgKGJwLT5pZ25vcmVf Y2xyX2FjaykNCisJCXJldHVybiAwOw0KKw0KKwlyZXR1cm4gcmVnbWFwX3JlYWRfcG9sbF90aW1l b3V0KG1hcCwgYnAtPnN0YV9vZnMsDQorCQkJdmFsLCAhKHZhbCAmIGJwLT5tYXNrKSwNCisJCQlN VEtfUE9MTF9ERUxBWV9VUywgTVRLX1BPTExfVElNRU9VVCk7DQorfQ0KKw0KIHN0YXRpYyBpbnQg c2Nwc3lzX2J1c19wcm90ZWN0X2VuYWJsZShzdHJ1Y3Qgc2NwX2RvbWFpbiAqc2NwZCkNCiB7DQog CXN0cnVjdCBzY3AgKnNjcCA9IHNjcGQtPnNjcDsNCisJY29uc3Qgc3RydWN0IGJ1c19wcm90ICpi cF90YWJsZSA9IHNjcGQtPmRhdGEtPmJwX3RhYmxlOw0KIAlzdHJ1Y3QgcmVnbWFwICppbmZyYWNm ZyA9IHNjcC0+aW5mcmFjZmc7DQotCXUzMiBtYXNrID0gc2NwZC0+ZGF0YS0+YnVzX3Byb3RfbWFz azsNCi0JYm9vbCByZWdfdXBkYXRlID0gc2NwLT5idXNfcHJvdF9yZWdfdXBkYXRlOw0KLQl1MzIg dmFsOw0KLQlpbnQgcmV0Ow0KKwlzdHJ1Y3QgcmVnbWFwICpzbWlfY29tbW9uID0gc2NwLT5zbWlf Y29tbW9uOw0KKwlzdHJ1Y3QgcmVnbWFwICptYXA7DQorCWludCBpLCByZXQ7DQogDQotCWlmICgh bWFzaykNCi0JCXJldHVybiAwOw0KKwlmb3IgKGkgPSAwOyBpIDwgTUFYX1NURVBTOyBpKyspIHsN CisJCWlmIChicF90YWJsZVtpXS50eXBlID09IElGUl9UWVBFKQ0KKwkJCW1hcCA9IGluZnJhY2Zn Ow0KKwkJZWxzZSBpZiAoYnBfdGFibGVbaV0udHlwZSA9PSBTTUlfVFlQRSkNCisJCQltYXAgPSBz bWlfY29tbW9uOw0KKwkJZWxzZQ0KKwkJCWJyZWFrOw0KIA0KLQlpZiAocmVnX3VwZGF0ZSkNCi0J CXJlZ21hcF91cGRhdGVfYml0cyhpbmZyYWNmZywgSU5GUkFfVE9QQVhJX1BST1RFQ1RFTiwgbWFz aywNCi0JCQkJbWFzayk7DQotCWVsc2UNCi0JCXJlZ21hcF93cml0ZShpbmZyYWNmZywgSU5GUkFf VE9QQVhJX1BST1RFQ1RFTl9TRVQsIG1hc2spOw0KKwkJcmV0ID0gc2V0X2J1c19wcm90ZWN0aW9u KG1hcCwgJmJwX3RhYmxlW2ldKTsNCiANCi0JcmV0ID0gcmVnbWFwX3JlYWRfcG9sbF90aW1lb3V0 KGluZnJhY2ZnLCBJTkZSQV9UT1BBWElfUFJPVEVDVFNUQTEsDQotCQkJCSAgICAgICB2YWwsICh2 YWwgJiBtYXNrKSA9PSBtYXNrLA0KLQkJCQkgICAgICAgTVRLX1BPTExfREVMQVlfVVMsIE1US19Q T0xMX1RJTUVPVVQpOw0KKwkJaWYgKHJldCkNCisJCQlyZXR1cm4gcmV0Ow0KKwl9DQogDQotCXJl dHVybiByZXQ7DQorCXJldHVybiAwOw0KIH0NCiANCiBzdGF0aWMgaW50IHNjcHN5c19idXNfcHJv dGVjdF9kaXNhYmxlKHN0cnVjdCBzY3BfZG9tYWluICpzY3BkKQ0KIHsNCiAJc3RydWN0IHNjcCAq c2NwID0gc2NwZC0+c2NwOw0KKwljb25zdCBzdHJ1Y3QgYnVzX3Byb3QgKmJwX3RhYmxlID0gc2Nw ZC0+ZGF0YS0+YnBfdGFibGU7DQogCXN0cnVjdCByZWdtYXAgKmluZnJhY2ZnID0gc2NwLT5pbmZy YWNmZzsNCi0JdTMyIG1hc2sgPSBzY3BkLT5kYXRhLT5idXNfcHJvdF9tYXNrOw0KLQlib29sIHJl Z191cGRhdGUgPSBzY3AtPmJ1c19wcm90X3JlZ191cGRhdGU7DQotCXUzMiB2YWw7DQotCWludCBy ZXQ7DQorCXN0cnVjdCByZWdtYXAgKnNtaV9jb21tb24gPSBzY3AtPnNtaV9jb21tb247DQorCXN0 cnVjdCByZWdtYXAgKm1hcDsNCisJaW50IGksIHJldDsNCiANCi0JaWYgKCFtYXNrKQ0KLQkJcmV0 dXJuIDA7DQorCWZvciAoaSA9IE1BWF9TVEVQUyAtIDE7IGkgPj0gMDsgaS0tKSB7DQorCQlpZiAo YnBfdGFibGVbaV0udHlwZSA9PSBJRlJfVFlQRSkNCisJCQltYXAgPSBpbmZyYWNmZzsNCisJCWVs c2UgaWYgKGJwX3RhYmxlW2ldLnR5cGUgPT0gU01JX1RZUEUpDQorCQkJbWFwID0gc21pX2NvbW1v bjsNCisJCWVsc2UNCisJCQljb250aW51ZTsNCiANCi0JaWYgKHJlZ191cGRhdGUpDQotCQlyZWdt YXBfdXBkYXRlX2JpdHMoaW5mcmFjZmcsIElORlJBX1RPUEFYSV9QUk9URUNURU4sIG1hc2ssIDAp Ow0KLQllbHNlDQotCQlyZWdtYXBfd3JpdGUoaW5mcmFjZmcsIElORlJBX1RPUEFYSV9QUk9URUNU RU5fQ0xSLCBtYXNrKTsNCisJCXJldCA9IGNsZWFyX2J1c19wcm90ZWN0aW9uKG1hcCwgJmJwX3Rh YmxlW2ldKTsNCiANCi0JcmV0ID0gcmVnbWFwX3JlYWRfcG9sbF90aW1lb3V0KGluZnJhY2ZnLCBJ TkZSQV9UT1BBWElfUFJPVEVDVFNUQTEsDQotCQkJCSAgICAgICB2YWwsICEodmFsICYgbWFzayks DQotCQkJCSAgICAgICBNVEtfUE9MTF9ERUxBWV9VUywgTVRLX1BPTExfVElNRU9VVCk7DQorCQlp ZiAocmV0KQ0KKwkJCXJldHVybiByZXQ7DQorCX0NCiANCi0JcmV0dXJuIHJldDsNCisJcmV0dXJu IDA7DQogfQ0KIA0KIHN0YXRpYyBpbnQgc2Nwc3lzX3Bvd2VyX29uKHN0cnVjdCBnZW5lcmljX3Bt X2RvbWFpbiAqZ2VucGQpDQpAQCAtNDQ4LDggKzUxNSw3IEBAIHN0YXRpYyBpbnQgaW5pdF9iYXNp Y19jbGtzKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsIHN0cnVjdCBjbGsgKipjbGssDQog DQogc3RhdGljIHN0cnVjdCBzY3AgKmluaXRfc2NwKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBk ZXYsDQogCQkJY29uc3Qgc3RydWN0IHNjcF9kb21haW5fZGF0YSAqc2NwX2RvbWFpbl9kYXRhLCBp bnQgbnVtLA0KLQkJCWNvbnN0IHN0cnVjdCBzY3BfY3RybF9yZWcgKnNjcF9jdHJsX3JlZywNCi0J CQlib29sIGJ1c19wcm90X3JlZ191cGRhdGUpDQorCQkJY29uc3Qgc3RydWN0IHNjcF9jdHJsX3Jl ZyAqc2NwX2N0cmxfcmVnKQ0KIHsNCiAJc3RydWN0IGdlbnBkX29uZWNlbGxfZGF0YSAqcGRfZGF0 YTsNCiAJc3RydWN0IHJlc291cmNlICpyZXM7DQpAQCAtNDYzLDggKzUyOSw2IEBAIHN0YXRpYyBz dHJ1Y3Qgc2NwICppbml0X3NjcChzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LA0KIAlzY3At PmN0cmxfcmVnLnB3cl9zdGFfb2ZmcyA9IHNjcF9jdHJsX3JlZy0+cHdyX3N0YV9vZmZzOw0KIAlz Y3AtPmN0cmxfcmVnLnB3cl9zdGEybmRfb2ZmcyA9IHNjcF9jdHJsX3JlZy0+cHdyX3N0YTJuZF9v ZmZzOw0KIA0KLQlzY3AtPmJ1c19wcm90X3JlZ191cGRhdGUgPSBidXNfcHJvdF9yZWdfdXBkYXRl Ow0KLQ0KIAlzY3AtPmRldiA9ICZwZGV2LT5kZXY7DQogDQogCXJlcyA9IHBsYXRmb3JtX2dldF9y ZXNvdXJjZShwZGV2LCBJT1JFU09VUkNFX01FTSwgMCk7DQpAQCAtNDkyLDYgKzU1NiwxNyBAQCBz dGF0aWMgc3RydWN0IHNjcCAqaW5pdF9zY3Aoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldiwN CiAJCXJldHVybiBFUlJfQ0FTVChzY3AtPmluZnJhY2ZnKTsNCiAJfQ0KIA0KKwlzY3AtPnNtaV9j b21tb24gPSBzeXNjb25fcmVnbWFwX2xvb2t1cF9ieV9waGFuZGxlKHBkZXYtPmRldi5vZl9ub2Rl LA0KKwkJCSJtZWRpYXRlayxzbWkiKTsNCisNCisJaWYgKHNjcC0+c21pX2NvbW1vbiA9PSBFUlJf UFRSKC1FTk9ERVYpKSB7DQorCQlzY3AtPnNtaV9jb21tb24gPSBOVUxMOw0KKwl9IGVsc2UgaWYg KElTX0VSUihzY3AtPnNtaV9jb21tb24pKSB7DQorCQlkZXZfZXJyKCZwZGV2LT5kZXYsICJDYW5u b3QgZmluZCBzbWlfY29tbW9uIGNvbnRyb2xsZXI6ICVsZFxuIiwNCisJCQkJUFRSX0VSUihzY3At PnNtaV9jb21tb24pKTsNCisJCXJldHVybiBFUlJfQ0FTVChzY3AtPnNtaV9jb21tb24pOw0KKwl9 DQorDQogCWZvciAoaSA9IDA7IGkgPCBudW07IGkrKykgew0KIAkJc3RydWN0IHNjcF9kb21haW4g KnNjcGQgPSAmc2NwLT5kb21haW5zW2ldOw0KIAkJY29uc3Qgc3RydWN0IHNjcF9kb21haW5fZGF0 YSAqZGF0YSA9ICZzY3BfZG9tYWluX2RhdGFbaV07DQpAQCAtNTc0LDggKzY0OSwxMSBAQCBzdGF0 aWMgdm9pZCBtdGtfcmVnaXN0ZXJfcG93ZXJfZG9tYWlucyhzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNl ICpwZGV2LA0KIAkJLm5hbWUgPSAiY29ubiIsDQogCQkuc3RhX21hc2sgPSBQV1JfU1RBVFVTX0NP Tk4sDQogCQkuY3RsX29mZnMgPSBTUE1fQ09OTl9QV1JfQ09OLA0KLQkJLmJ1c19wcm90X21hc2sg PSBNVDI3MDFfVE9QX0FYSV9QUk9UX0VOX0NPTk5fTSB8DQotCQkJCSBNVDI3MDFfVE9QX0FYSV9Q Uk9UX0VOX0NPTk5fUywNCisJCS5icF90YWJsZSA9IHsNCisJCQlCVVNfUFJPVChJRlJfVFlQRSwg MCwgMCwgMHgyMjAsIDB4MjI4LA0KKwkJCQlNVDI3MDFfVE9QX0FYSV9QUk9UX0VOX0NPTk5fTSB8 DQorCQkJCU1UMjcwMV9UT1BfQVhJX1BST1RfRU5fQ09OTl9TKSwNCisJCX0sDQogCQkuY2FwcyA9 IE1US19TQ1BEX0FDVElWRV9XQUtFVVAsDQogCX0sDQogCVtNVDI3MDFfUE9XRVJfRE9NQUlOX0RJ U1BdID0gew0KQEAgLTU4NCw3ICs2NjIsMTAgQEAgc3RhdGljIHZvaWQgbXRrX3JlZ2lzdGVyX3Bv d2VyX2RvbWFpbnMoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldiwNCiAJCS5jdGxfb2ZmcyA9 IFNQTV9ESVNfUFdSX0NPTiwNCiAJCS5zcmFtX3Bkbl9iaXRzID0gR0VOTUFTSygxMSwgOCksDQog CQkuYmFzaWNfY2xrX25hbWUgPSB7Im1tIn0sDQotCQkuYnVzX3Byb3RfbWFzayA9IE1UMjcwMV9U T1BfQVhJX1BST1RfRU5fTU1fTTAsDQorCQkuYnBfdGFibGUgPSB7DQorCQkJQlVTX1BST1QoSUZS X1RZUEUsIDAsIDAsIDB4MjIwLCAweDIyOCwNCisJCQkJTVQyNzAxX1RPUF9BWElfUFJPVF9FTl9N TV9NMCksDQorCQl9LA0KIAkJLmNhcHMgPSBNVEtfU0NQRF9BQ1RJVkVfV0FLRVVQLA0KIAl9LA0K IAlbTVQyNzAxX1BPV0VSX0RPTUFJTl9NRkddID0gew0KQEAgLTcxOSw3ICs4MDAsMTAgQEAgc3Rh dGljIHZvaWQgbXRrX3JlZ2lzdGVyX3Bvd2VyX2RvbWFpbnMoc3RydWN0IHBsYXRmb3JtX2Rldmlj ZSAqcGRldiwNCiAJCS5zcmFtX3Bkbl9iaXRzID0gR0VOTUFTSyg4LCA4KSwNCiAJCS5zcmFtX3Bk bl9hY2tfYml0cyA9IEdFTk1BU0soMTYsIDE2KSwNCiAJCS5iYXNpY19jbGtfbmFtZSA9IHsibWZn In0sDQotCQkuYnVzX3Byb3RfbWFzayA9IEJJVCgxNCkgfCBCSVQoMjEpIHwgQklUKDIzKSwNCisJ CS5icF90YWJsZSA9IHsNCisJCQlCVVNfUFJPVChJRlJfVFlQRSwgMHgyNjAsIDB4MjY0LCAweDIy MCwgMHgyMjgsDQorCQkJCUJJVCgxNCkgfCBCSVQoMjEpIHwgQklUKDIzKSksDQorCQl9LA0KIAkJ LmNhcHMgPSBNVEtfU0NQRF9BQ1RJVkVfV0FLRVVQLA0KIAl9LA0KIAlbTVQyNzEyX1BPV0VSX0RP TUFJTl9NRkdfU0MxXSA9IHsNCkBAIC03OTEsNyArODc1LDEwIEBAIHN0YXRpYyB2b2lkIG10a19y ZWdpc3Rlcl9wb3dlcl9kb21haW5zKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsDQogCQku c3JhbV9wZG5fYml0cyA9IEdFTk1BU0soOCwgOCksDQogCQkuc3JhbV9wZG5fYWNrX2JpdHMgPSBH RU5NQVNLKDEyLCAxMiksDQogCQkuYmFzaWNfY2xrX25hbWUgPSB7Im1tIn0sDQotCQkuYnVzX3By b3RfbWFzayA9IChCSVQoMSkgfCBCSVQoMikpLA0KKwkJLmJwX3RhYmxlID0gew0KKwkJCUJVU19Q Uk9UKElGUl9UWVBFLCAwLCAwLCAweDIyMCwgMHgyMjgsDQorCQkJCUJJVCgxKSB8IEJJVCgyKSks DQorCQl9LA0KIAl9LA0KIAlbTVQ2Nzk3X1BPV0VSX0RPTUFJTl9BVURJT10gPSB7DQogCQkubmFt ZSA9ICJhdWRpbyIsDQpAQCAtODM4LDcgKzkyNSwxMCBAQCBzdGF0aWMgdm9pZCBtdGtfcmVnaXN0 ZXJfcG93ZXJfZG9tYWlucyhzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LA0KIAkJLmN0bF9v ZmZzID0gU1BNX0VUSFNZU19QV1JfQ09OLA0KIAkJLnNyYW1fcGRuX2JpdHMgPSBHRU5NQVNLKDEx LCA4KSwNCiAJCS5zcmFtX3Bkbl9hY2tfYml0cyA9IEdFTk1BU0soMTUsIDEyKSwNCi0JCS5idXNf cHJvdF9tYXNrID0gTVQ3NjIyX1RPUF9BWElfUFJPVF9FTl9FVEhTWVMsDQorCQkuYnBfdGFibGUg PSB7DQorCQkJQlVTX1BST1QoSUZSX1RZUEUsIDAsIDAsIDB4MjIwLCAweDIyOCwNCisJCQkJTVQ3 NjIyX1RPUF9BWElfUFJPVF9FTl9FVEhTWVMpLA0KKwkJfSwNCiAJCS5jYXBzID0gTVRLX1NDUERf QUNUSVZFX1dBS0VVUCwNCiAJfSwNCiAJW01UNzYyMl9QT1dFUl9ET01BSU5fSElGMF0gPSB7DQpA QCAtODQ4LDcgKzkzOCwxMCBAQCBzdGF0aWMgdm9pZCBtdGtfcmVnaXN0ZXJfcG93ZXJfZG9tYWlu cyhzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LA0KIAkJLnNyYW1fcGRuX2JpdHMgPSBHRU5N QVNLKDExLCA4KSwNCiAJCS5zcmFtX3Bkbl9hY2tfYml0cyA9IEdFTk1BU0soMTUsIDEyKSwNCiAJ CS5iYXNpY19jbGtfbmFtZSA9IHsiaGlmX3NlbCJ9LA0KLQkJLmJ1c19wcm90X21hc2sgPSBNVDc2 MjJfVE9QX0FYSV9QUk9UX0VOX0hJRjAsDQorCQkuYnBfdGFibGUgPSB7DQorCQkJQlVTX1BST1Qo SUZSX1RZUEUsIDAsIDAsIDB4MjIwLCAweDIyOCwNCisJCQkJTVQ3NjIyX1RPUF9BWElfUFJPVF9F Tl9ISUYwKSwNCisJCX0sDQogCQkuY2FwcyA9IE1US19TQ1BEX0FDVElWRV9XQUtFVVAsDQogCX0s DQogCVtNVDc2MjJfUE9XRVJfRE9NQUlOX0hJRjFdID0gew0KQEAgLTg1OCw3ICs5NTEsMTAgQEAg c3RhdGljIHZvaWQgbXRrX3JlZ2lzdGVyX3Bvd2VyX2RvbWFpbnMoc3RydWN0IHBsYXRmb3JtX2Rl dmljZSAqcGRldiwNCiAJCS5zcmFtX3Bkbl9iaXRzID0gR0VOTUFTSygxMSwgOCksDQogCQkuc3Jh bV9wZG5fYWNrX2JpdHMgPSBHRU5NQVNLKDE1LCAxMiksDQogCQkuYmFzaWNfY2xrX25hbWUgPSB7 ImhpZl9zZWwifSwNCi0JCS5idXNfcHJvdF9tYXNrID0gTVQ3NjIyX1RPUF9BWElfUFJPVF9FTl9I SUYxLA0KKwkJLmJwX3RhYmxlID0gew0KKwkJCUJVU19QUk9UKElGUl9UWVBFLCAwLCAwLCAweDIy MCwgMHgyMjgsDQorCQkJCU1UNzYyMl9UT1BfQVhJX1BST1RfRU5fSElGMSksDQorCQl9LA0KIAkJ LmNhcHMgPSBNVEtfU0NQRF9BQ1RJVkVfV0FLRVVQLA0KIAl9LA0KIAlbTVQ3NjIyX1BPV0VSX0RP TUFJTl9XQl0gPSB7DQpAQCAtODY3LDcgKzk2MywxMCBAQCBzdGF0aWMgdm9pZCBtdGtfcmVnaXN0 ZXJfcG93ZXJfZG9tYWlucyhzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LA0KIAkJLmN0bF9v ZmZzID0gU1BNX1dCX1BXUl9DT04sDQogCQkuc3JhbV9wZG5fYml0cyA9IDAsDQogCQkuc3JhbV9w ZG5fYWNrX2JpdHMgPSAwLA0KLQkJLmJ1c19wcm90X21hc2sgPSBNVDc2MjJfVE9QX0FYSV9QUk9U X0VOX1dCLA0KKwkJLmJwX3RhYmxlID0gew0KKwkJCUJVU19QUk9UKElGUl9UWVBFLCAwLCAwLCAw eDIyMCwgMHgyMjgsDQorCQkJCU1UNzYyMl9UT1BfQVhJX1BST1RfRU5fV0IpLA0KKwkJfSwNCiAJ CS5jYXBzID0gTVRLX1NDUERfQUNUSVZFX1dBS0VVUCB8IE1US19TQ1BEX0ZXQUlUX1NSQU0sDQog CX0sDQogfTsNCkBAIC04ODEsOCArOTgwLDExIEBAIHN0YXRpYyB2b2lkIG10a19yZWdpc3Rlcl9w b3dlcl9kb21haW5zKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsDQogCQkubmFtZSA9ICJj b25uIiwNCiAJCS5zdGFfbWFzayA9IFBXUl9TVEFUVVNfQ09OTiwNCiAJCS5jdGxfb2ZmcyA9IFNQ TV9DT05OX1BXUl9DT04sDQotCQkuYnVzX3Byb3RfbWFzayA9IE1UMjcwMV9UT1BfQVhJX1BST1Rf RU5fQ09OTl9NIHwNCi0JCQkJIE1UMjcwMV9UT1BfQVhJX1BST1RfRU5fQ09OTl9TLA0KKwkJLmJw X3RhYmxlID0gew0KKwkJCUJVU19QUk9UKElGUl9UWVBFLCAwLCAwLCAweDIyMCwgMHgyMjgsDQor CQkJCU1UMjcwMV9UT1BfQVhJX1BST1RfRU5fQ09OTl9NIHwNCisJCQkJTVQyNzAxX1RPUF9BWElf UFJPVF9FTl9DT05OX1MpLA0KKwkJfSwNCiAJCS5jYXBzID0gTVRLX1NDUERfQUNUSVZFX1dBS0VV UCwNCiAJfSwNCiAJW01UNzYyM0FfUE9XRVJfRE9NQUlOX0VUSF0gPSB7DQpAQCAtOTQ3LDggKzEw NDksMTEgQEAgc3RhdGljIHZvaWQgbXRrX3JlZ2lzdGVyX3Bvd2VyX2RvbWFpbnMoc3RydWN0IHBs YXRmb3JtX2RldmljZSAqcGRldiwNCiAJCS5zcmFtX3Bkbl9iaXRzID0gR0VOTUFTSygxMSwgOCks DQogCQkuc3JhbV9wZG5fYWNrX2JpdHMgPSBHRU5NQVNLKDEyLCAxMiksDQogCQkuYmFzaWNfY2xr X25hbWUgPSB7Im1tIn0sDQotCQkuYnVzX3Byb3RfbWFzayA9IE1UODE3M19UT1BfQVhJX1BST1Rf RU5fTU1fTTAgfA0KLQkJCU1UODE3M19UT1BfQVhJX1BST1RfRU5fTU1fTTEsDQorCQkuYnBfdGFi bGUgPSB7DQorCQkJQlVTX1BST1QoSUZSX1RZUEUsIDAsIDAsIDB4MjIwLCAweDIyOCwNCisJCQkJ TVQ4MTczX1RPUF9BWElfUFJPVF9FTl9NTV9NMCB8DQorCQkJCU1UODE3M19UT1BfQVhJX1BST1Rf RU5fTU1fTTEpLA0KKwkJfSwNCiAJfSwNCiAJW01UODE3M19QT1dFUl9ET01BSU5fVkVOQ19MVF0g PSB7DQogCQkubmFtZSA9ICJ2ZW5jX2x0IiwNCkBAIC05OTQsMTAgKzEwOTksMTMgQEAgc3RhdGlj IHZvaWQgbXRrX3JlZ2lzdGVyX3Bvd2VyX2RvbWFpbnMoc3RydWN0IHBsYXRmb3JtX2RldmljZSAq cGRldiwNCiAJCS5jdGxfb2ZmcyA9IFNQTV9NRkdfUFdSX0NPTiwNCiAJCS5zcmFtX3Bkbl9iaXRz ID0gR0VOTUFTSygxMywgOCksDQogCQkuc3JhbV9wZG5fYWNrX2JpdHMgPSBHRU5NQVNLKDIxLCAx NiksDQotCQkuYnVzX3Byb3RfbWFzayA9IE1UODE3M19UT1BfQVhJX1BST1RfRU5fTUZHX1MgfA0K LQkJCU1UODE3M19UT1BfQVhJX1BST1RfRU5fTUZHX00wIHwNCi0JCQlNVDgxNzNfVE9QX0FYSV9Q Uk9UX0VOX01GR19NMSB8DQotCQkJTVQ4MTczX1RPUF9BWElfUFJPVF9FTl9NRkdfU05PT1BfT1VU LA0KKwkJLmJwX3RhYmxlID0gew0KKwkJCUJVU19QUk9UKElGUl9UWVBFLCAwLCAwLCAweDIyMCwg MHgyMjgsDQorCQkJCU1UODE3M19UT1BfQVhJX1BST1RfRU5fTUZHX1MgfA0KKwkJCQlNVDgxNzNf VE9QX0FYSV9QUk9UX0VOX01GR19NMCB8DQorCQkJCU1UODE3M19UT1BfQVhJX1BST1RfRU5fTUZH X00xIHwNCisJCQkJTVQ4MTczX1RPUF9BWElfUFJPVF9FTl9NRkdfU05PT1BfT1VUKSwNCisJCX0s DQogCX0sDQogfTsNCiANCkBAIC0xMDEzLDcgKzExMjEsNiBAQCBzdGF0aWMgdm9pZCBtdGtfcmVn aXN0ZXJfcG93ZXJfZG9tYWlucyhzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LA0KIAkJLnB3 cl9zdGFfb2ZmcyA9IFNQTV9QV1JfU1RBVFVTLA0KIAkJLnB3cl9zdGEybmRfb2ZmcyA9IFNQTV9Q V1JfU1RBVFVTXzJORA0KIAl9LA0KLQkuYnVzX3Byb3RfcmVnX3VwZGF0ZSA9IHRydWUsDQogfTsN CiANCiBzdGF0aWMgY29uc3Qgc3RydWN0IHNjcF9zb2NfZGF0YSBtdDI3MTJfZGF0YSA9IHsNCkBA IC0xMDI1LDcgKzExMzIsNiBAQCBzdGF0aWMgdm9pZCBtdGtfcmVnaXN0ZXJfcG93ZXJfZG9tYWlu cyhzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LA0KIAkJLnB3cl9zdGFfb2ZmcyA9IFNQTV9Q V1JfU1RBVFVTLA0KIAkJLnB3cl9zdGEybmRfb2ZmcyA9IFNQTV9QV1JfU1RBVFVTXzJORA0KIAl9 LA0KLQkuYnVzX3Byb3RfcmVnX3VwZGF0ZSA9IGZhbHNlLA0KIH07DQogDQogc3RhdGljIGNvbnN0 IHN0cnVjdCBzY3Bfc29jX2RhdGEgbXQ2Nzk3X2RhdGEgPSB7DQpAQCAtMTAzNyw3ICsxMTQzLDYg QEAgc3RhdGljIHZvaWQgbXRrX3JlZ2lzdGVyX3Bvd2VyX2RvbWFpbnMoc3RydWN0IHBsYXRmb3Jt X2RldmljZSAqcGRldiwNCiAJCS5wd3Jfc3RhX29mZnMgPSBTUE1fUFdSX1NUQVRVU19NVDY3OTcs DQogCQkucHdyX3N0YTJuZF9vZmZzID0gU1BNX1BXUl9TVEFUVVNfMk5EX01UNjc5Nw0KIAl9LA0K LQkuYnVzX3Byb3RfcmVnX3VwZGF0ZSA9IHRydWUsDQogfTsNCiANCiBzdGF0aWMgY29uc3Qgc3Ry dWN0IHNjcF9zb2NfZGF0YSBtdDc2MjJfZGF0YSA9IHsNCkBAIC0xMDQ3LDcgKzExNTIsNiBAQCBz dGF0aWMgdm9pZCBtdGtfcmVnaXN0ZXJfcG93ZXJfZG9tYWlucyhzdHJ1Y3QgcGxhdGZvcm1fZGV2 aWNlICpwZGV2LA0KIAkJLnB3cl9zdGFfb2ZmcyA9IFNQTV9QV1JfU1RBVFVTLA0KIAkJLnB3cl9z dGEybmRfb2ZmcyA9IFNQTV9QV1JfU1RBVFVTXzJORA0KIAl9LA0KLQkuYnVzX3Byb3RfcmVnX3Vw ZGF0ZSA9IHRydWUsDQogfTsNCiANCiBzdGF0aWMgY29uc3Qgc3RydWN0IHNjcF9zb2NfZGF0YSBt dDc2MjNhX2RhdGEgPSB7DQpAQCAtMTA1Nyw3ICsxMTYxLDYgQEAgc3RhdGljIHZvaWQgbXRrX3Jl Z2lzdGVyX3Bvd2VyX2RvbWFpbnMoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldiwNCiAJCS5w d3Jfc3RhX29mZnMgPSBTUE1fUFdSX1NUQVRVUywNCiAJCS5wd3Jfc3RhMm5kX29mZnMgPSBTUE1f UFdSX1NUQVRVU18yTkQNCiAJfSwNCi0JLmJ1c19wcm90X3JlZ191cGRhdGUgPSB0cnVlLA0KIH07 DQogDQogc3RhdGljIGNvbnN0IHN0cnVjdCBzY3Bfc29jX2RhdGEgbXQ4MTczX2RhdGEgPSB7DQpA QCAtMTA2OSw3ICsxMTcyLDYgQEAgc3RhdGljIHZvaWQgbXRrX3JlZ2lzdGVyX3Bvd2VyX2RvbWFp bnMoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldiwNCiAJCS5wd3Jfc3RhX29mZnMgPSBTUE1f UFdSX1NUQVRVUywNCiAJCS5wd3Jfc3RhMm5kX29mZnMgPSBTUE1fUFdSX1NUQVRVU18yTkQNCiAJ fSwNCi0JLmJ1c19wcm90X3JlZ191cGRhdGUgPSB0cnVlLA0KIH07DQogDQogLyoNCkBAIC0xMTEw LDggKzEyMTIsNyBAQCBzdGF0aWMgaW50IHNjcHN5c19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2 aWNlICpwZGV2KQ0KIA0KIAlzb2MgPSBvZl9kZXZpY2VfZ2V0X21hdGNoX2RhdGEoJnBkZXYtPmRl dik7DQogDQotCXNjcCA9IGluaXRfc2NwKHBkZXYsIHNvYy0+ZG9tYWlucywgc29jLT5udW1fZG9t YWlucywgJnNvYy0+cmVncywNCi0JCQlzb2MtPmJ1c19wcm90X3JlZ191cGRhdGUpOw0KKwlzY3Ag PSBpbml0X3NjcChwZGV2LCBzb2MtPmRvbWFpbnMsIHNvYy0+bnVtX2RvbWFpbnMsICZzb2MtPnJl Z3MpOw0KIAlpZiAoSVNfRVJSKHNjcCkpDQogCQlyZXR1cm4gUFRSX0VSUihzY3ApOw0KIA0KLS0g DQoxLjguMS4xLmRpcnR5DQo=