Received: by 2002:a25:23cc:0:0:0:0:0 with SMTP id j195csp1591739ybj; Wed, 6 May 2020 01:19:00 -0700 (PDT) X-Google-Smtp-Source: APiQypK5fY5k+irELc4zYTbhXjbm7KnMuEzpKpaeEgD2XC9X9epMg0w9DBRekRXiVRzOOFHa6i14 X-Received: by 2002:a17:906:3492:: with SMTP id g18mr6020605ejb.112.1588753140630; Wed, 06 May 2020 01:19:00 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1588753140; cv=none; d=google.com; s=arc-20160816; b=zoMx0CTftGo/mzhVhAttMujWOwsYOJxQu2sOd8lQdkyTJCsPiYk8TvXNh5y7o6P5yE KA/vQq5vYj6FJlx5Rp8OlJmKYkHT75EO1xEoTGduKB8vybkkzhPGY0igjBQQioNF6+Id BRox+NuYYoq0EGHhBp2yuMFJTYfNxvFrfOAM5BqSX5c+v1TYJzYay6vZU0x4lWvmUwfd ghH2YYXRR0APfiUL42SJSW7E5YtuMO6H4zHGCOoDwRpmWX9XCiFO3PwRV7Ms63penNOA AOWYPZT9D+LfGBg7dX+nmJdTyplrv2uJb2cpvr7ggC+Iyxp+G9avvj0JCdtzgDBHyOC/ +CYw== 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=uA9h9fcbaiE4mGYiNvMjx0at9l9jtAsGFyAwxKb3IFA=; b=SpUDfyOTtiA3z6TQilvshVlqMOx/eYOnpck52WdHqsmWMfltPysIFgzQrgUaHrTwis mRGJYloth0pD28znqi0ZcEPRjQbXhZRKlH38o7/Jvpz1akPG9NUkVhT9KugatAiovHvY /BooLXcUioToUKbQAjSMYyEpOO9j+sw93mM4tnT2yduydf8+vX4ka3ce6vja3Ng1g4ZZ wlfPIi/woScOgh5ARO+IzuELFTDkNiqjLubml31ggsxWsu6uM1+NrNCGX+NFrIoIp3mZ lqA4aaiqCj2P5nqHtJr34jrz5p4EvMO8YuF9LtyuWPmVNS1OCHorW93lNOCY5ygwIsO6 fn2A== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@mediatek.com header.s=dk header.b=BaI2U0J8; 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 v3si687422edf.513.2020.05.06.01.18.36; Wed, 06 May 2020 01:19:00 -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=BaI2U0J8; 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 S1728748AbgEFIQh (ORCPT + 99 others); Wed, 6 May 2020 04:16:37 -0400 Received: from mailgw01.mediatek.com ([210.61.82.183]:11153 "EHLO mailgw01.mediatek.com" rhost-flags-OK-FAIL-OK-FAIL) by vger.kernel.org with ESMTP id S1728631AbgEFIQQ (ORCPT ); Wed, 6 May 2020 04:16:16 -0400 X-UUID: 757449f3ff44486eba552db199604240-20200506 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=uA9h9fcbaiE4mGYiNvMjx0at9l9jtAsGFyAwxKb3IFA=; b=BaI2U0J8j483uBBzQZTc4B/08Ih/vNXXMfHCRqSXno6YuE+F8gzt18HrlCmmbfpVtGTNMgUPawWWFXHUaXHYlnpaW/z3lZ7nvxvHlbYSe16yo/mJxH1NqiKiYuJ9gEIubUwpi3w8ouUZ/cvWbCyIckt+Z6Fy0Mm5zqx5IDLNIAQ=; X-UUID: 757449f3ff44486eba552db199604240-20200506 Received: from mtkexhb01.mediatek.inc [(172.21.101.102)] by mailgw01.mediatek.com (envelope-from ) (Cellopoint E-mail Firewall v4.1.10 Build 0809 with TLS) with ESMTP id 1479820652; Wed, 06 May 2020 16:16:07 +0800 Received: from mtkcas08.mediatek.inc (172.21.101.126) by mtkmbs02n1.mediatek.inc (172.21.101.77) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Wed, 6 May 2020 16:16:05 +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; Wed, 6 May 2020 16:16:05 +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 v14 05/11] soc: mediatek: Add multiple step bus protection control Date: Wed, 6 May 2020 16:15:57 +0800 Message-ID: <1588752963-19934-6-git-send-email-weiyi.lu@mediatek.com> X-Mailer: git-send-email 1.8.1.1.dirty In-Reply-To: <1588752963-19934-1-git-send-email-weiyi.lu@mediatek.com> References: <1588752963-19934-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 aXZlcnMvc29jL21lZGlhdGVrL210ay1zY3BzeXMuYw0KaW5kZXggYjYwM2FmNy4uNWNlNGJlNSAx 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 LA0KKwkJCSJzbWlfY29tbSIpOw0KKw0KKwlpZiAoc2NwLT5zbWlfY29tbW9uID09IEVSUl9QVFIo LUVOT0RFVikpIHsNCisJCXNjcC0+c21pX2NvbW1vbiA9IE5VTEw7DQorCX0gZWxzZSBpZiAoSVNf RVJSKHNjcC0+c21pX2NvbW1vbikpIHsNCisJCWRldl9lcnIoJnBkZXYtPmRldiwgIkNhbm5vdCBm aW5kIHNtaV9jb21tb24gY29udHJvbGxlcjogJWxkXG4iLA0KKwkJCQlQVFJfRVJSKHNjcC0+c21p X2NvbW1vbikpOw0KKwkJcmV0dXJuIEVSUl9DQVNUKHNjcC0+c21pX2NvbW1vbik7DQorCX0NCisN CiAJZm9yIChpID0gMDsgaSA8IG51bTsgaSsrKSB7DQogCQlzdHJ1Y3Qgc2NwX2RvbWFpbiAqc2Nw ZCA9ICZzY3AtPmRvbWFpbnNbaV07DQogCQljb25zdCBzdHJ1Y3Qgc2NwX2RvbWFpbl9kYXRhICpk YXRhID0gJnNjcF9kb21haW5fZGF0YVtpXTsNCkBAIC01NzQsOCArNjQ5LDExIEBAIHN0YXRpYyB2 b2lkIG10a19yZWdpc3Rlcl9wb3dlcl9kb21haW5zKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBk ZXYsDQogCQkubmFtZSA9ICJjb25uIiwNCiAJCS5zdGFfbWFzayA9IFBXUl9TVEFUVVNfQ09OTiwN CiAJCS5jdGxfb2ZmcyA9IFNQTV9DT05OX1BXUl9DT04sDQotCQkuYnVzX3Byb3RfbWFzayA9IE1U MjcwMV9UT1BfQVhJX1BST1RfRU5fQ09OTl9NIHwNCi0JCQkJIE1UMjcwMV9UT1BfQVhJX1BST1Rf RU5fQ09OTl9TLA0KKwkJLmJwX3RhYmxlID0gew0KKwkJCUJVU19QUk9UKElGUl9UWVBFLCAwLCAw LCAweDIyMCwgMHgyMjgsDQorCQkJCU1UMjcwMV9UT1BfQVhJX1BST1RfRU5fQ09OTl9NIHwNCisJ CQkJTVQyNzAxX1RPUF9BWElfUFJPVF9FTl9DT05OX1MpLA0KKwkJfSwNCiAJCS5jYXBzID0gTVRL X1NDUERfQUNUSVZFX1dBS0VVUCwNCiAJfSwNCiAJW01UMjcwMV9QT1dFUl9ET01BSU5fRElTUF0g PSB7DQpAQCAtNTg0LDcgKzY2MiwxMCBAQCBzdGF0aWMgdm9pZCBtdGtfcmVnaXN0ZXJfcG93ZXJf ZG9tYWlucyhzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LA0KIAkJLmN0bF9vZmZzID0gU1BN X0RJU19QV1JfQ09OLA0KIAkJLnNyYW1fcGRuX2JpdHMgPSBHRU5NQVNLKDExLCA4KSwNCiAJCS5i YXNpY19jbGtfbmFtZSA9IHsibW0ifSwNCi0JCS5idXNfcHJvdF9tYXNrID0gTVQyNzAxX1RPUF9B WElfUFJPVF9FTl9NTV9NMCwNCisJCS5icF90YWJsZSA9IHsNCisJCQlCVVNfUFJPVChJRlJfVFlQ RSwgMCwgMCwgMHgyMjAsIDB4MjI4LA0KKwkJCQlNVDI3MDFfVE9QX0FYSV9QUk9UX0VOX01NX00w KSwNCisJCX0sDQogCQkuY2FwcyA9IE1US19TQ1BEX0FDVElWRV9XQUtFVVAsDQogCX0sDQogCVtN VDI3MDFfUE9XRVJfRE9NQUlOX01GR10gPSB7DQpAQCAtNzE5LDcgKzgwMCwxMCBAQCBzdGF0aWMg dm9pZCBtdGtfcmVnaXN0ZXJfcG93ZXJfZG9tYWlucyhzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpw ZGV2LA0KIAkJLnNyYW1fcGRuX2JpdHMgPSBHRU5NQVNLKDgsIDgpLA0KIAkJLnNyYW1fcGRuX2Fj a19iaXRzID0gR0VOTUFTSygxNiwgMTYpLA0KIAkJLmJhc2ljX2Nsa19uYW1lID0geyJtZmcifSwN Ci0JCS5idXNfcHJvdF9tYXNrID0gQklUKDE0KSB8IEJJVCgyMSkgfCBCSVQoMjMpLA0KKwkJLmJw X3RhYmxlID0gew0KKwkJCUJVU19QUk9UKElGUl9UWVBFLCAweDI2MCwgMHgyNjQsIDB4MjIwLCAw eDIyOCwNCisJCQkJQklUKDE0KSB8IEJJVCgyMSkgfCBCSVQoMjMpKSwNCisJCX0sDQogCQkuY2Fw cyA9IE1US19TQ1BEX0FDVElWRV9XQUtFVVAsDQogCX0sDQogCVtNVDI3MTJfUE9XRVJfRE9NQUlO X01GR19TQzFdID0gew0KQEAgLTc5MSw3ICs4NzUsMTAgQEAgc3RhdGljIHZvaWQgbXRrX3JlZ2lz dGVyX3Bvd2VyX2RvbWFpbnMoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldiwNCiAJCS5zcmFt X3Bkbl9iaXRzID0gR0VOTUFTSyg4LCA4KSwNCiAJCS5zcmFtX3Bkbl9hY2tfYml0cyA9IEdFTk1B U0soMTIsIDEyKSwNCiAJCS5iYXNpY19jbGtfbmFtZSA9IHsibW0ifSwNCi0JCS5idXNfcHJvdF9t YXNrID0gKEJJVCgxKSB8IEJJVCgyKSksDQorCQkuYnBfdGFibGUgPSB7DQorCQkJQlVTX1BST1Qo SUZSX1RZUEUsIDAsIDAsIDB4MjIwLCAweDIyOCwNCisJCQkJQklUKDEpIHwgQklUKDIpKSwNCisJ CX0sDQogCX0sDQogCVtNVDY3OTdfUE9XRVJfRE9NQUlOX0FVRElPXSA9IHsNCiAJCS5uYW1lID0g ImF1ZGlvIiwNCkBAIC04MzgsNyArOTI1LDEwIEBAIHN0YXRpYyB2b2lkIG10a19yZWdpc3Rlcl9w b3dlcl9kb21haW5zKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsDQogCQkuY3RsX29mZnMg PSBTUE1fRVRIU1lTX1BXUl9DT04sDQogCQkuc3JhbV9wZG5fYml0cyA9IEdFTk1BU0soMTEsIDgp LA0KIAkJLnNyYW1fcGRuX2Fja19iaXRzID0gR0VOTUFTSygxNSwgMTIpLA0KLQkJLmJ1c19wcm90 X21hc2sgPSBNVDc2MjJfVE9QX0FYSV9QUk9UX0VOX0VUSFNZUywNCisJCS5icF90YWJsZSA9IHsN CisJCQlCVVNfUFJPVChJRlJfVFlQRSwgMCwgMCwgMHgyMjAsIDB4MjI4LA0KKwkJCQlNVDc2MjJf VE9QX0FYSV9QUk9UX0VOX0VUSFNZUyksDQorCQl9LA0KIAkJLmNhcHMgPSBNVEtfU0NQRF9BQ1RJ VkVfV0FLRVVQLA0KIAl9LA0KIAlbTVQ3NjIyX1BPV0VSX0RPTUFJTl9ISUYwXSA9IHsNCkBAIC04 NDgsNyArOTM4LDEwIEBAIHN0YXRpYyB2b2lkIG10a19yZWdpc3Rlcl9wb3dlcl9kb21haW5zKHN0 cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsDQogCQkuc3JhbV9wZG5fYml0cyA9IEdFTk1BU0so MTEsIDgpLA0KIAkJLnNyYW1fcGRuX2Fja19iaXRzID0gR0VOTUFTSygxNSwgMTIpLA0KIAkJLmJh c2ljX2Nsa19uYW1lID0geyJoaWZfc2VsIn0sDQotCQkuYnVzX3Byb3RfbWFzayA9IE1UNzYyMl9U T1BfQVhJX1BST1RfRU5fSElGMCwNCisJCS5icF90YWJsZSA9IHsNCisJCQlCVVNfUFJPVChJRlJf VFlQRSwgMCwgMCwgMHgyMjAsIDB4MjI4LA0KKwkJCQlNVDc2MjJfVE9QX0FYSV9QUk9UX0VOX0hJ RjApLA0KKwkJfSwNCiAJCS5jYXBzID0gTVRLX1NDUERfQUNUSVZFX1dBS0VVUCwNCiAJfSwNCiAJ W01UNzYyMl9QT1dFUl9ET01BSU5fSElGMV0gPSB7DQpAQCAtODU4LDcgKzk1MSwxMCBAQCBzdGF0 aWMgdm9pZCBtdGtfcmVnaXN0ZXJfcG93ZXJfZG9tYWlucyhzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNl ICpwZGV2LA0KIAkJLnNyYW1fcGRuX2JpdHMgPSBHRU5NQVNLKDExLCA4KSwNCiAJCS5zcmFtX3Bk bl9hY2tfYml0cyA9IEdFTk1BU0soMTUsIDEyKSwNCiAJCS5iYXNpY19jbGtfbmFtZSA9IHsiaGlm X3NlbCJ9LA0KLQkJLmJ1c19wcm90X21hc2sgPSBNVDc2MjJfVE9QX0FYSV9QUk9UX0VOX0hJRjEs DQorCQkuYnBfdGFibGUgPSB7DQorCQkJQlVTX1BST1QoSUZSX1RZUEUsIDAsIDAsIDB4MjIwLCAw eDIyOCwNCisJCQkJTVQ3NjIyX1RPUF9BWElfUFJPVF9FTl9ISUYxKSwNCisJCX0sDQogCQkuY2Fw cyA9IE1US19TQ1BEX0FDVElWRV9XQUtFVVAsDQogCX0sDQogCVtNVDc2MjJfUE9XRVJfRE9NQUlO X1dCXSA9IHsNCkBAIC04NjcsNyArOTYzLDEwIEBAIHN0YXRpYyB2b2lkIG10a19yZWdpc3Rlcl9w b3dlcl9kb21haW5zKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsDQogCQkuY3RsX29mZnMg PSBTUE1fV0JfUFdSX0NPTiwNCiAJCS5zcmFtX3Bkbl9iaXRzID0gMCwNCiAJCS5zcmFtX3Bkbl9h Y2tfYml0cyA9IDAsDQotCQkuYnVzX3Byb3RfbWFzayA9IE1UNzYyMl9UT1BfQVhJX1BST1RfRU5f V0IsDQorCQkuYnBfdGFibGUgPSB7DQorCQkJQlVTX1BST1QoSUZSX1RZUEUsIDAsIDAsIDB4MjIw LCAweDIyOCwNCisJCQkJTVQ3NjIyX1RPUF9BWElfUFJPVF9FTl9XQiksDQorCQl9LA0KIAkJLmNh cHMgPSBNVEtfU0NQRF9BQ1RJVkVfV0FLRVVQIHwgTVRLX1NDUERfRldBSVRfU1JBTSwNCiAJfSwN CiB9Ow0KQEAgLTg4MSw4ICs5ODAsMTEgQEAgc3RhdGljIHZvaWQgbXRrX3JlZ2lzdGVyX3Bvd2Vy X2RvbWFpbnMoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldiwNCiAJCS5uYW1lID0gImNvbm4i LA0KIAkJLnN0YV9tYXNrID0gUFdSX1NUQVRVU19DT05OLA0KIAkJLmN0bF9vZmZzID0gU1BNX0NP Tk5fUFdSX0NPTiwNCi0JCS5idXNfcHJvdF9tYXNrID0gTVQyNzAxX1RPUF9BWElfUFJPVF9FTl9D T05OX00gfA0KLQkJCQkgTVQyNzAxX1RPUF9BWElfUFJPVF9FTl9DT05OX1MsDQorCQkuYnBfdGFi bGUgPSB7DQorCQkJQlVTX1BST1QoSUZSX1RZUEUsIDAsIDAsIDB4MjIwLCAweDIyOCwNCisJCQkJ TVQyNzAxX1RPUF9BWElfUFJPVF9FTl9DT05OX00gfA0KKwkJCQlNVDI3MDFfVE9QX0FYSV9QUk9U X0VOX0NPTk5fUyksDQorCQl9LA0KIAkJLmNhcHMgPSBNVEtfU0NQRF9BQ1RJVkVfV0FLRVVQLA0K IAl9LA0KIAlbTVQ3NjIzQV9QT1dFUl9ET01BSU5fRVRIXSA9IHsNCkBAIC05NDcsOCArMTA0OSwx MSBAQCBzdGF0aWMgdm9pZCBtdGtfcmVnaXN0ZXJfcG93ZXJfZG9tYWlucyhzdHJ1Y3QgcGxhdGZv cm1fZGV2aWNlICpwZGV2LA0KIAkJLnNyYW1fcGRuX2JpdHMgPSBHRU5NQVNLKDExLCA4KSwNCiAJ CS5zcmFtX3Bkbl9hY2tfYml0cyA9IEdFTk1BU0soMTIsIDEyKSwNCiAJCS5iYXNpY19jbGtfbmFt ZSA9IHsibW0ifSwNCi0JCS5idXNfcHJvdF9tYXNrID0gTVQ4MTczX1RPUF9BWElfUFJPVF9FTl9N TV9NMCB8DQotCQkJTVQ4MTczX1RPUF9BWElfUFJPVF9FTl9NTV9NMSwNCisJCS5icF90YWJsZSA9 IHsNCisJCQlCVVNfUFJPVChJRlJfVFlQRSwgMCwgMCwgMHgyMjAsIDB4MjI4LA0KKwkJCQlNVDgx NzNfVE9QX0FYSV9QUk9UX0VOX01NX00wIHwNCisJCQkJTVQ4MTczX1RPUF9BWElfUFJPVF9FTl9N TV9NMSksDQorCQl9LA0KIAl9LA0KIAlbTVQ4MTczX1BPV0VSX0RPTUFJTl9WRU5DX0xUXSA9IHsN CiAJCS5uYW1lID0gInZlbmNfbHQiLA0KQEAgLTk5NCwxMCArMTA5OSwxMyBAQCBzdGF0aWMgdm9p ZCBtdGtfcmVnaXN0ZXJfcG93ZXJfZG9tYWlucyhzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2 LA0KIAkJLmN0bF9vZmZzID0gU1BNX01GR19QV1JfQ09OLA0KIAkJLnNyYW1fcGRuX2JpdHMgPSBH RU5NQVNLKDEzLCA4KSwNCiAJCS5zcmFtX3Bkbl9hY2tfYml0cyA9IEdFTk1BU0soMjEsIDE2KSwN Ci0JCS5idXNfcHJvdF9tYXNrID0gTVQ4MTczX1RPUF9BWElfUFJPVF9FTl9NRkdfUyB8DQotCQkJ TVQ4MTczX1RPUF9BWElfUFJPVF9FTl9NRkdfTTAgfA0KLQkJCU1UODE3M19UT1BfQVhJX1BST1Rf RU5fTUZHX00xIHwNCi0JCQlNVDgxNzNfVE9QX0FYSV9QUk9UX0VOX01GR19TTk9PUF9PVVQsDQor CQkuYnBfdGFibGUgPSB7DQorCQkJQlVTX1BST1QoSUZSX1RZUEUsIDAsIDAsIDB4MjIwLCAweDIy OCwNCisJCQkJTVQ4MTczX1RPUF9BWElfUFJPVF9FTl9NRkdfUyB8DQorCQkJCU1UODE3M19UT1Bf QVhJX1BST1RfRU5fTUZHX00wIHwNCisJCQkJTVQ4MTczX1RPUF9BWElfUFJPVF9FTl9NRkdfTTEg fA0KKwkJCQlNVDgxNzNfVE9QX0FYSV9QUk9UX0VOX01GR19TTk9PUF9PVVQpLA0KKwkJfSwNCiAJ fSwNCiB9Ow0KIA0KQEAgLTEwMTMsNyArMTEyMSw2IEBAIHN0YXRpYyB2b2lkIG10a19yZWdpc3Rl cl9wb3dlcl9kb21haW5zKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsDQogCQkucHdyX3N0 YV9vZmZzID0gU1BNX1BXUl9TVEFUVVMsDQogCQkucHdyX3N0YTJuZF9vZmZzID0gU1BNX1BXUl9T VEFUVVNfMk5EDQogCX0sDQotCS5idXNfcHJvdF9yZWdfdXBkYXRlID0gdHJ1ZSwNCiB9Ow0KIA0K IHN0YXRpYyBjb25zdCBzdHJ1Y3Qgc2NwX3NvY19kYXRhIG10MjcxMl9kYXRhID0gew0KQEAgLTEw MjUsNyArMTEzMiw2IEBAIHN0YXRpYyB2b2lkIG10a19yZWdpc3Rlcl9wb3dlcl9kb21haW5zKHN0 cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsDQogCQkucHdyX3N0YV9vZmZzID0gU1BNX1BXUl9T VEFUVVMsDQogCQkucHdyX3N0YTJuZF9vZmZzID0gU1BNX1BXUl9TVEFUVVNfMk5EDQogCX0sDQot CS5idXNfcHJvdF9yZWdfdXBkYXRlID0gZmFsc2UsDQogfTsNCiANCiBzdGF0aWMgY29uc3Qgc3Ry dWN0IHNjcF9zb2NfZGF0YSBtdDY3OTdfZGF0YSA9IHsNCkBAIC0xMDM3LDcgKzExNDMsNiBAQCBz dGF0aWMgdm9pZCBtdGtfcmVnaXN0ZXJfcG93ZXJfZG9tYWlucyhzdHJ1Y3QgcGxhdGZvcm1fZGV2 aWNlICpwZGV2LA0KIAkJLnB3cl9zdGFfb2ZmcyA9IFNQTV9QV1JfU1RBVFVTX01UNjc5NywNCiAJ CS5wd3Jfc3RhMm5kX29mZnMgPSBTUE1fUFdSX1NUQVRVU18yTkRfTVQ2Nzk3DQogCX0sDQotCS5i dXNfcHJvdF9yZWdfdXBkYXRlID0gdHJ1ZSwNCiB9Ow0KIA0KIHN0YXRpYyBjb25zdCBzdHJ1Y3Qg c2NwX3NvY19kYXRhIG10NzYyMl9kYXRhID0gew0KQEAgLTEwNDcsNyArMTE1Miw2IEBAIHN0YXRp YyB2b2lkIG10a19yZWdpc3Rlcl9wb3dlcl9kb21haW5zKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2Ug KnBkZXYsDQogCQkucHdyX3N0YV9vZmZzID0gU1BNX1BXUl9TVEFUVVMsDQogCQkucHdyX3N0YTJu ZF9vZmZzID0gU1BNX1BXUl9TVEFUVVNfMk5EDQogCX0sDQotCS5idXNfcHJvdF9yZWdfdXBkYXRl ID0gdHJ1ZSwNCiB9Ow0KIA0KIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgc2NwX3NvY19kYXRhIG10NzYy M2FfZGF0YSA9IHsNCkBAIC0xMDU3LDcgKzExNjEsNiBAQCBzdGF0aWMgdm9pZCBtdGtfcmVnaXN0 ZXJfcG93ZXJfZG9tYWlucyhzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LA0KIAkJLnB3cl9z dGFfb2ZmcyA9IFNQTV9QV1JfU1RBVFVTLA0KIAkJLnB3cl9zdGEybmRfb2ZmcyA9IFNQTV9QV1Jf U1RBVFVTXzJORA0KIAl9LA0KLQkuYnVzX3Byb3RfcmVnX3VwZGF0ZSA9IHRydWUsDQogfTsNCiAN CiBzdGF0aWMgY29uc3Qgc3RydWN0IHNjcF9zb2NfZGF0YSBtdDgxNzNfZGF0YSA9IHsNCkBAIC0x MDY5LDcgKzExNzIsNiBAQCBzdGF0aWMgdm9pZCBtdGtfcmVnaXN0ZXJfcG93ZXJfZG9tYWlucyhz dHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LA0KIAkJLnB3cl9zdGFfb2ZmcyA9IFNQTV9QV1Jf U1RBVFVTLA0KIAkJLnB3cl9zdGEybmRfb2ZmcyA9IFNQTV9QV1JfU1RBVFVTXzJORA0KIAl9LA0K LQkuYnVzX3Byb3RfcmVnX3VwZGF0ZSA9IHRydWUsDQogfTsNCiANCiAvKg0KQEAgLTExMTAsOCAr MTIxMiw3IEBAIHN0YXRpYyBpbnQgc2Nwc3lzX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2Ug KnBkZXYpDQogDQogCXNvYyA9IG9mX2RldmljZV9nZXRfbWF0Y2hfZGF0YSgmcGRldi0+ZGV2KTsN CiANCi0Jc2NwID0gaW5pdF9zY3AocGRldiwgc29jLT5kb21haW5zLCBzb2MtPm51bV9kb21haW5z LCAmc29jLT5yZWdzLA0KLQkJCXNvYy0+YnVzX3Byb3RfcmVnX3VwZGF0ZSk7DQorCXNjcCA9IGlu aXRfc2NwKHBkZXYsIHNvYy0+ZG9tYWlucywgc29jLT5udW1fZG9tYWlucywgJnNvYy0+cmVncyk7 DQogCWlmIChJU19FUlIoc2NwKSkNCiAJCXJldHVybiBQVFJfRVJSKHNjcCk7DQogDQotLSANCjEu OC4xLjEuZGlydHkNCg==