Received: by 2002:a25:8b91:0:0:0:0:0 with SMTP id j17csp2723231ybl; Thu, 19 Dec 2019 19:47:21 -0800 (PST) X-Google-Smtp-Source: APXvYqz2QyE34Mt8jcuEPEbSIrFouHqUO0nHX1VW76fiEyx+HwPaplq4gZrTtXfpcy1TRVir5lJp X-Received: by 2002:a05:6830:124b:: with SMTP id s11mr12313086otp.333.1576813641027; Thu, 19 Dec 2019 19:47:21 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1576813641; cv=none; d=google.com; s=arc-20160816; b=I1e2PYMDXvqig5INQIGVo98N/EDKtme0wa6+wEf2wpaIM4tBmsp+7rfWVLLSMcqd1I 3JirwN0zDbGwwHWB78cqG6H479BlruzD596EtgxMf9mvKUfTMwE9mKwcQbRCO49dTabo Z8lb6/CLBvzIlxNL42p+ZC9BQuT18jQ11aZokjZXZ9+dtvKdIXLpfT5ox04K5eCtgrSR uAe88gSkBs2BBMiCGOrMchm4NPSN4lGoMInKbN2202NCj7Zx/G+O079/nUJbE0rDbRnp 5XEsy4ZyDTUzMp7W6tRm7v5KeGU1Lx2acxIlRaCT3CqMNlh/tVBVHXup5uCwQXgr6J/6 XMuQ== 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=l3bdhpczY2zkGMehvZMeSc1MGtVctBRA1V/2XFSIslc=; b=iYUFmjwuh9Y2FTrcda4MN3wnGjEvHsDcSrYbLxWGXlbpNMiyKXYuZbJPZXu4C3plHY 8Mp+uskMyTwbKHrVeTrfbtpwkmc+6fZWCWtRlLQzr0ZIykvlXP3LrObdxCoFJkAamxTc z3NZpNuCCcPP1KT45fZL9D3ui8wCwQab+iehOw1z2xwQ827Tl99N1EcQIy4r8ZsbdCFz 0qT/71zvgY67GZVm+cj591Ed2bnfPzYponu9CZRx4gAtjf4C0wwnq75t70CuRJ7HJltg uPFvt1EfLhGgrYcMhYEYOz7Hd8wZwKH3OJySOeTKmZvEP6JyYxdIpMIrreoru/PMaqpT hDJQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@mediatek.com header.s=dk header.b=Y07tN9he; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 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. [209.132.180.67]) by mx.google.com with ESMTP id w5si4680143otq.238.2019.12.19.19.47.08; Thu, 19 Dec 2019 19:47:21 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@mediatek.com header.s=dk header.b=Y07tN9he; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 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 S1727345AbfLTDqY (ORCPT + 99 others); Thu, 19 Dec 2019 22:46:24 -0500 Received: from mailgw01.mediatek.com ([210.61.82.183]:9887 "EHLO mailgw01.mediatek.com" rhost-flags-OK-FAIL-OK-FAIL) by vger.kernel.org with ESMTP id S1727252AbfLTDqW (ORCPT ); Thu, 19 Dec 2019 22:46:22 -0500 X-UUID: 9d517dd0ce524018960690d9356f7e83-20191220 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=l3bdhpczY2zkGMehvZMeSc1MGtVctBRA1V/2XFSIslc=; b=Y07tN9hel562cgg4fKoDUUJwc3aOYbDD36kJxuEWQe/Uwaf7e2H5B+pse/rq5DzPgAoQsfosyFMPeGK2EqQ/oZBMpq5PrbfKmnwVL0iC2olZtU4AKqzopoFPBPiPXr0nuAN9EEhI8ydc59yfBxiRyR2J3N2g6u+T/79Qm91lt+Y=; X-UUID: 9d517dd0ce524018960690d9356f7e83-20191220 Received: from mtkmrs01.mediatek.inc [(172.21.131.159)] by mailgw01.mediatek.com (envelope-from ) (Cellopoint E-mail Firewall v4.1.10 Build 0809 with TLS) with ESMTP id 1753868536; Fri, 20 Dec 2019 11:46:09 +0800 Received: from mtkcas08.mediatek.inc (172.21.101.126) by mtkmbs02n2.mediatek.inc (172.21.101.101) with Microsoft SMTP Server (TLS) id 15.0.1395.4; Fri, 20 Dec 2019 11:45:34 +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.1395.4 via Frontend Transport; Fri, 20 Dec 2019 11:46:07 +0800 From: Weiyi Lu To: Nicolas Boichat , Matthias Brugger , Rob Herring , Sascha Hauer CC: James Liao , Fan Chen , , , , , Weiyi Lu Subject: [PATCH v11 04/10] soc: mediatek: Add multiple step bus protection control Date: Fri, 20 Dec 2019 11:45:58 +0800 Message-ID: <1576813564-23927-5-git-send-email-weiyi.lu@mediatek.com> X-Mailer: git-send-email 1.8.1.1.dirty In-Reply-To: <1576813564-23927-1-git-send-email-weiyi.lu@mediatek.com> References: <1576813564-23927-1-git-send-email-weiyi.lu@mediatek.com> MIME-Version: 1.0 Content-Type: text/plain X-TM-SNTS-SMTP: 082116C30490C1164C69BA71166A17A161F6081F31E2D88801FE5261448047D42000:8 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 aCBtb3JlIGN1c3RvbWl6ZWQgYXJndW1lbnRzLg0KQW5kIHRoZW4gdXNlIGJwX3RhYmxlIGZvciBi dXMgcHJvdGVjdGlvbiBvZiBhbGwgY29tcGF0aWJsZXMsDQppbnN0ZWFkIG9mIG1peGluZyBidXNf cHJvdF9tYXNrIGFuZCBidXNfcHJvdF9yZWdfdXBkYXRlLg0KDQpTaWduZWQtb2ZmLWJ5OiBXZWl5 aSBMdSA8d2VpeWkubHVAbWVkaWF0ZWsuY29tPg0KLS0tDQogZHJpdmVycy9zb2MvbWVkaWF0ZWsv TWFrZWZpbGUgICAgICAgICB8ICAgMiArLQ0KIGRyaXZlcnMvc29jL21lZGlhdGVrL210ay1zY3Bz eXMtZXh0LmMgfCAxMDEgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysNCiBkcml2ZXJzL3Nv Yy9tZWRpYXRlay9tdGstc2Nwc3lzLmMgICAgIHwgMTE3ICsrKysrKysrKysrKysrKysrKysrKy0t LS0tLS0tLS0tLS0NCiBkcml2ZXJzL3NvYy9tZWRpYXRlay9zY3BzeXMtZXh0LmggICAgIHwgIDY3 ICsrKysrKysrKysrKysrKysrKysNCiA0IGZpbGVzIGNoYW5nZWQsIDI0MCBpbnNlcnRpb25zKCsp LCA0NyBkZWxldGlvbnMoLSkNCiBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9zb2MvbWVkaWF0 ZWsvbXRrLXNjcHN5cy1leHQuYw0KIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL3NvYy9tZWRp YXRlay9zY3BzeXMtZXh0LmgNCg0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvc29jL21lZGlhdGVrL01h a2VmaWxlIGIvZHJpdmVycy9zb2MvbWVkaWF0ZWsvTWFrZWZpbGUNCmluZGV4IGIwMTczMzAuLmI0 NDJiZTkgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL3NvYy9tZWRpYXRlay9NYWtlZmlsZQ0KKysrIGIv ZHJpdmVycy9zb2MvbWVkaWF0ZWsvTWFrZWZpbGUNCkBAIC0xLDUgKzEsNSBAQA0KICMgU1BEWC1M aWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seQ0KIG9iai0kKENPTkZJR19NVEtfQ01EUSkg Kz0gbXRrLWNtZHEtaGVscGVyLm8NCi1vYmotJChDT05GSUdfTVRLX0lORlJBQ0ZHKSArPSBtdGst aW5mcmFjZmcubw0KK29iai0kKENPTkZJR19NVEtfSU5GUkFDRkcpICs9IG10ay1pbmZyYWNmZy5v IG10ay1zY3BzeXMtZXh0Lm8NCiBvYmotJChDT05GSUdfTVRLX1BNSUNfV1JBUCkgKz0gbXRrLXBt aWMtd3JhcC5vDQogb2JqLSQoQ09ORklHX01US19TQ1BTWVMpICs9IG10ay1zY3BzeXMubw0KZGlm ZiAtLWdpdCBhL2RyaXZlcnMvc29jL21lZGlhdGVrL210ay1zY3BzeXMtZXh0LmMgYi9kcml2ZXJz L3NvYy9tZWRpYXRlay9tdGstc2Nwc3lzLWV4dC5jDQpuZXcgZmlsZSBtb2RlIDEwMDY0NA0KaW5k ZXggMDAwMDAwMC4uZGY0MDJhYw0KLS0tIC9kZXYvbnVsbA0KKysrIGIvZHJpdmVycy9zb2MvbWVk aWF0ZWsvbXRrLXNjcHN5cy1leHQuYw0KQEAgLTAsMCArMSwxMDEgQEANCisvLyBTUERYLUxpY2Vu c2UtSWRlbnRpZmllcjogR1BMLTIuMA0KKy8qDQorICogQ29weXJpZ2h0IChjKSAyMDE4IE1lZGlh VGVrIEluYy4NCisgKiBBdXRob3I6IE93ZW4gQ2hlbiA8T3dlbi5DaGVuQG1lZGlhdGVrLmNvbT4N CisgKi8NCisjaW5jbHVkZSA8bGludXgva3RpbWUuaD4NCisjaW5jbHVkZSA8bGludXgvbWZkL3N5 c2Nvbi5oPg0KKyNpbmNsdWRlIDxsaW51eC9vZl9kZXZpY2UuaD4NCisjaW5jbHVkZSA8bGludXgv cmVnbWFwLmg+DQorI2luY2x1ZGUgInNjcHN5cy1leHQuaCINCisNCisjZGVmaW5lIE1US19QT0xM X0RFTEFZX1VTICAgMTANCisjZGVmaW5lIE1US19QT0xMX1RJTUVPVVQgICAgVVNFQ19QRVJfU0VD DQorDQorc3RhdGljIGludCBzZXRfYnVzX3Byb3RlY3Rpb24oc3RydWN0IHJlZ21hcCAqbWFwLCB1 MzIgbWFzaywNCisJCXUzMiByZWdfc2V0LCB1MzIgcmVnX3N0YSwgdTMyIHJlZ19lbikNCit7DQor CXUzMiB2YWw7DQorDQorCWlmIChyZWdfc2V0KQ0KKwkJcmVnbWFwX3dyaXRlKG1hcCwgcmVnX3Nl dCwgbWFzayk7DQorCWVsc2UNCisJCXJlZ21hcF91cGRhdGVfYml0cyhtYXAsIHJlZ19lbiwgbWFz aywgbWFzayk7DQorDQorCXJldHVybiByZWdtYXBfcmVhZF9wb2xsX3RpbWVvdXQobWFwLCByZWdf c3RhLA0KKwkJCXZhbCwgKHZhbCAmIG1hc2spID09IG1hc2ssDQorCQkJTVRLX1BPTExfREVMQVlf VVMsIE1US19QT0xMX1RJTUVPVVQpOw0KK30NCisNCitzdGF0aWMgaW50IGNsZWFyX2J1c19wcm90 ZWN0aW9uKHN0cnVjdCByZWdtYXAgKm1hcCwgdTMyIG1hc2ssDQorCQl1MzIgcmVnX2NsciwgdTMy IHJlZ19zdGEsIHUzMiByZWdfZW4sIGJvb2wgaWdub3JlX2FjaykNCit7DQorCXUzMiB2YWw7DQor DQorCWlmIChyZWdfY2xyKQ0KKwkJcmVnbWFwX3dyaXRlKG1hcCwgcmVnX2NsciwgbWFzayk7DQor CWVsc2UNCisJCXJlZ21hcF91cGRhdGVfYml0cyhtYXAsIHJlZ19lbiwgbWFzaywgMCk7DQorDQor CWlmIChpZ25vcmVfYWNrKQ0KKwkJcmV0dXJuIDA7DQorDQorCXJldHVybiByZWdtYXBfcmVhZF9w b2xsX3RpbWVvdXQobWFwLCByZWdfc3RhLA0KKwkJCXZhbCwgISh2YWwgJiBtYXNrKSwNCisJCQlN VEtfUE9MTF9ERUxBWV9VUywgTVRLX1BPTExfVElNRU9VVCk7DQorfQ0KKw0KK2ludCBtdGtfc2Nw c3lzX2V4dF9zZXRfYnVzX3Byb3RlY3Rpb24oY29uc3Qgc3RydWN0IGJ1c19wcm90ICpicF90YWJs ZSwNCisJc3RydWN0IHJlZ21hcCAqaW5mcmFjZmcsIHN0cnVjdCByZWdtYXAgKnNtaV9jb21tb24p DQorew0KKwlpbnQgaTsNCisNCisJZm9yIChpID0gMDsgaSA8IE1BWF9TVEVQUzsgaSsrKSB7DQor CQlzdHJ1Y3QgcmVnbWFwICptYXAgPSBOVUxMOw0KKwkJaW50IHJldDsNCisNCisJCWlmIChicF90 YWJsZVtpXS50eXBlID09IElOVkFMSURfVFlQRSkNCisJCQlicmVhazsNCisJCWVsc2UgaWYgKGJw X3RhYmxlW2ldLnR5cGUgPT0gSUZSX1RZUEUpDQorCQkJbWFwID0gaW5mcmFjZmc7DQorCQllbHNl IGlmIChicF90YWJsZVtpXS50eXBlID09IFNNSV9UWVBFKQ0KKwkJCW1hcCA9IHNtaV9jb21tb247 DQorDQorCQlyZXQgPSBzZXRfYnVzX3Byb3RlY3Rpb24obWFwLA0KKwkJCQlicF90YWJsZVtpXS5t YXNrLCBicF90YWJsZVtpXS5zZXRfb2ZzLA0KKwkJCQlicF90YWJsZVtpXS5zdGFfb2ZzLCBicF90 YWJsZVtpXS5lbl9vZnMpOw0KKw0KKwkJaWYgKHJldCkNCisJCQlyZXR1cm4gcmV0Ow0KKwl9DQor DQorCXJldHVybiAwOw0KK30NCisNCitpbnQgbXRrX3NjcHN5c19leHRfY2xlYXJfYnVzX3Byb3Rl Y3Rpb24oY29uc3Qgc3RydWN0IGJ1c19wcm90ICpicF90YWJsZSwNCisJc3RydWN0IHJlZ21hcCAq aW5mcmFjZmcsIHN0cnVjdCByZWdtYXAgKnNtaV9jb21tb24pDQorew0KKwlpbnQgaTsNCisNCisJ Zm9yIChpID0gTUFYX1NURVBTIC0gMTsgaSA+PSAwOyBpLS0pIHsNCisJCXN0cnVjdCByZWdtYXAg Km1hcCA9IE5VTEw7DQorCQlpbnQgcmV0Ow0KKw0KKwkJaWYgKGJwX3RhYmxlW2ldLnR5cGUgPT0g SU5WQUxJRF9UWVBFKQ0KKwkJCWNvbnRpbnVlOw0KKwkJZWxzZSBpZiAoYnBfdGFibGVbaV0udHlw ZSA9PSBJRlJfVFlQRSkNCisJCQltYXAgPSBpbmZyYWNmZzsNCisJCWVsc2UgaWYgKGJwX3RhYmxl W2ldLnR5cGUgPT0gU01JX1RZUEUpDQorCQkJbWFwID0gc21pX2NvbW1vbjsNCisNCisJCXJldCA9 IGNsZWFyX2J1c19wcm90ZWN0aW9uKG1hcCwNCisJCQkJYnBfdGFibGVbaV0ubWFzaywgYnBfdGFi bGVbaV0uY2xyX29mcywNCisJCQkJYnBfdGFibGVbaV0uc3RhX29mcywgYnBfdGFibGVbaV0uZW5f b2ZzLA0KKwkJCQlicF90YWJsZVtpXS5pZ25vcmVfY2xyX2Fjayk7DQorDQorCQlpZiAocmV0KQ0K KwkJCXJldHVybiByZXQ7DQorCX0NCisNCisJcmV0dXJuIDA7DQorfQ0KZGlmZiAtLWdpdCBhL2Ry aXZlcnMvc29jL21lZGlhdGVrL210ay1zY3BzeXMuYyBiL2RyaXZlcnMvc29jL21lZGlhdGVrL210 ay1zY3BzeXMuYw0KaW5kZXggZGIzNWEyOC4uNzYzY2E1OCAxMDA2NDQNCi0tLSBhL2RyaXZlcnMv c29jL21lZGlhdGVrL210ay1zY3BzeXMuYw0KKysrIGIvZHJpdmVycy9zb2MvbWVkaWF0ZWsvbXRr LXNjcHN5cy5jDQpAQCAtMTEsNyArMTEsNyBAQA0KICNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9k ZXZpY2UuaD4NCiAjaW5jbHVkZSA8bGludXgvcG1fZG9tYWluLmg+DQogI2luY2x1ZGUgPGxpbnV4 L3JlZ3VsYXRvci9jb25zdW1lci5oPg0KLSNpbmNsdWRlIDxsaW51eC9zb2MvbWVkaWF0ZWsvaW5m cmFjZmcuaD4NCisjaW5jbHVkZSAic2Nwc3lzLWV4dC5oIg0KIA0KICNpbmNsdWRlIDxkdC1iaW5k aW5ncy9wb3dlci9tdDI3MDEtcG93ZXIuaD4NCiAjaW5jbHVkZSA8ZHQtYmluZGluZ3MvcG93ZXIv bXQyNzEyLXBvd2VyLmg+DQpAQCAtODcsOSArODcsOSBAQA0KICAqIEBjdGxfb2ZmczogVGhlIG9m ZnNldCBmb3IgbWFpbiBwb3dlciBjb250cm9sIHJlZ2lzdGVyLg0KICAqIEBzcmFtX3Bkbl9iaXRz OiBUaGUgbWFzayBmb3Igc3JhbSBwb3dlciBjb250cm9sIGJpdHMuDQogICogQHNyYW1fcGRuX2Fj a19iaXRzOiBUaGUgbWFzayBmb3Igc3JhbSBwb3dlciBjb250cm9sIGFja2VkIGJpdHMuDQotICog QGJ1c19wcm90X21hc2s6IFRoZSBtYXNrIGZvciBzaW5nbGUgc3RlcCBidXMgcHJvdGVjdGlvbi4N CiAgKiBAYmFzaWNfY2xrX25hbWU6IFRoZSBiYXNpYyBjbG9ja3MgcmVxdWlyZWQgYnkgdGhpcyBw b3dlciBkb21haW4uDQogICogQGNhcHM6IFRoZSBmbGFnIGZvciBhY3RpdmUgd2FrZS11cCBhY3Rp b24uDQorICogQGJwX3RhYmxlOiBUaGUgbWFzayB0YWJsZSBmb3IgbXVsdGlwbGUgc3RlcCBidXMg cHJvdGVjdGlvbi4NCiAgKi8NCiBzdHJ1Y3Qgc2NwX2RvbWFpbl9kYXRhIHsNCiAJY29uc3QgY2hh ciAqbmFtZTsNCkBAIC05Nyw5ICs5Nyw5IEBAIHN0cnVjdCBzY3BfZG9tYWluX2RhdGEgew0KIAlp bnQgY3RsX29mZnM7DQogCXUzMiBzcmFtX3Bkbl9iaXRzOw0KIAl1MzIgc3JhbV9wZG5fYWNrX2Jp dHM7DQotCXUzMiBidXNfcHJvdF9tYXNrOw0KIAljb25zdCBjaGFyICpiYXNpY19jbGtfbmFtZVtN QVhfQ0xLU107DQogCXU4IGNhcHM7DQorCXN0cnVjdCBidXNfcHJvdCBicF90YWJsZVtNQVhfU1RF UFNdOw0KIH07DQogDQogc3RydWN0IHNjcDsNCkBAIC0xMjMsOCArMTIzLDggQEAgc3RydWN0IHNj cCB7DQogCXN0cnVjdCBkZXZpY2UgKmRldjsNCiAJdm9pZCBfX2lvbWVtICpiYXNlOw0KIAlzdHJ1 Y3QgcmVnbWFwICppbmZyYWNmZzsNCisJc3RydWN0IHJlZ21hcCAqc21pX2NvbW1vbjsNCiAJc3Ry dWN0IHNjcF9jdHJsX3JlZyBjdHJsX3JlZzsNCi0JYm9vbCBidXNfcHJvdF9yZWdfdXBkYXRlOw0K IH07DQogDQogc3RydWN0IHNjcF9zdWJkb21haW4gew0KQEAgLTEzOCw3ICsxMzgsNiBAQCBzdHJ1 Y3Qgc2NwX3NvY19kYXRhIHsNCiAJY29uc3Qgc3RydWN0IHNjcF9zdWJkb21haW4gKnN1YmRvbWFp bnM7DQogCWludCBudW1fc3ViZG9tYWluczsNCiAJY29uc3Qgc3RydWN0IHNjcF9jdHJsX3JlZyBy ZWdzOw0KLQlib29sIGJ1c19wcm90X3JlZ191cGRhdGU7DQogfTsNCiANCiBzdGF0aWMgaW50IHNj cHN5c19kb21haW5faXNfb24oc3RydWN0IHNjcF9kb21haW4gKnNjcGQpDQpAQCAtMjUyLDI0ICsy NTEsMTYgQEAgc3RhdGljIGludCBzY3BzeXNfYnVzX3Byb3RlY3RfZW5hYmxlKHN0cnVjdCBzY3Bf ZG9tYWluICpzY3BkKQ0KIHsNCiAJc3RydWN0IHNjcCAqc2NwID0gc2NwZC0+c2NwOw0KIA0KLQlp ZiAoIXNjcGQtPmRhdGEtPmJ1c19wcm90X21hc2spDQotCQlyZXR1cm4gMDsNCi0NCi0JcmV0dXJu IG10a19pbmZyYWNmZ19zZXRfYnVzX3Byb3RlY3Rpb24oc2NwLT5pbmZyYWNmZywNCi0JCQlzY3Bk LT5kYXRhLT5idXNfcHJvdF9tYXNrLA0KLQkJCXNjcC0+YnVzX3Byb3RfcmVnX3VwZGF0ZSk7DQor CXJldHVybiBtdGtfc2Nwc3lzX2V4dF9zZXRfYnVzX3Byb3RlY3Rpb24oc2NwZC0+ZGF0YS0+YnBf dGFibGUsDQorCQkJc2NwLT5pbmZyYWNmZywgc2NwLT5zbWlfY29tbW9uKTsNCiB9DQogDQogc3Rh dGljIGludCBzY3BzeXNfYnVzX3Byb3RlY3RfZGlzYWJsZShzdHJ1Y3Qgc2NwX2RvbWFpbiAqc2Nw ZCkNCiB7DQogCXN0cnVjdCBzY3AgKnNjcCA9IHNjcGQtPnNjcDsNCiANCi0JaWYgKCFzY3BkLT5k YXRhLT5idXNfcHJvdF9tYXNrKQ0KLQkJcmV0dXJuIDA7DQotDQotCXJldHVybiBtdGtfaW5mcmFj ZmdfY2xlYXJfYnVzX3Byb3RlY3Rpb24oc2NwLT5pbmZyYWNmZywNCi0JCQlzY3BkLT5kYXRhLT5i dXNfcHJvdF9tYXNrLA0KLQkJCXNjcC0+YnVzX3Byb3RfcmVnX3VwZGF0ZSk7DQorCXJldHVybiBt dGtfc2Nwc3lzX2V4dF9jbGVhcl9idXNfcHJvdGVjdGlvbihzY3BkLT5kYXRhLT5icF90YWJsZSwN CisJCQlzY3AtPmluZnJhY2ZnLCBzY3AtPnNtaV9jb21tb24pOw0KIH0NCiANCiBzdGF0aWMgaW50 IHNjcHN5c19wb3dlcl9vbihzdHJ1Y3QgZ2VuZXJpY19wbV9kb21haW4gKmdlbnBkKQ0KQEAgLTQw NCw4ICszOTUsNyBAQCBzdGF0aWMgaW50IGluaXRfYmFzaWNfY2xrcyhzdHJ1Y3QgcGxhdGZvcm1f ZGV2aWNlICpwZGV2LCBzdHJ1Y3QgY2xrICoqY2xrLA0KIA0KIHN0YXRpYyBzdHJ1Y3Qgc2NwICpp bml0X3NjcChzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LA0KIAkJCWNvbnN0IHN0cnVjdCBz Y3BfZG9tYWluX2RhdGEgKnNjcF9kb21haW5fZGF0YSwgaW50IG51bSwNCi0JCQljb25zdCBzdHJ1 Y3Qgc2NwX2N0cmxfcmVnICpzY3BfY3RybF9yZWcsDQotCQkJYm9vbCBidXNfcHJvdF9yZWdfdXBk YXRlKQ0KKwkJCWNvbnN0IHN0cnVjdCBzY3BfY3RybF9yZWcgKnNjcF9jdHJsX3JlZykNCiB7DQog CXN0cnVjdCBnZW5wZF9vbmVjZWxsX2RhdGEgKnBkX2RhdGE7DQogCXN0cnVjdCByZXNvdXJjZSAq cmVzOw0KQEAgLTQxOSw4ICs0MDksNiBAQCBzdGF0aWMgc3RydWN0IHNjcCAqaW5pdF9zY3Aoc3Ry dWN0IHBsYXRmb3JtX2RldmljZSAqcGRldiwNCiAJc2NwLT5jdHJsX3JlZy5wd3Jfc3RhX29mZnMg PSBzY3BfY3RybF9yZWctPnB3cl9zdGFfb2ZmczsNCiAJc2NwLT5jdHJsX3JlZy5wd3Jfc3RhMm5k X29mZnMgPSBzY3BfY3RybF9yZWctPnB3cl9zdGEybmRfb2ZmczsNCiANCi0Jc2NwLT5idXNfcHJv dF9yZWdfdXBkYXRlID0gYnVzX3Byb3RfcmVnX3VwZGF0ZTsNCi0NCiAJc2NwLT5kZXYgPSAmcGRl di0+ZGV2Ow0KIA0KIAlyZXMgPSBwbGF0Zm9ybV9nZXRfcmVzb3VyY2UocGRldiwgSU9SRVNPVVJD RV9NRU0sIDApOw0KQEAgLTQ0OCw2ICs0MzYsMTcgQEAgc3RhdGljIHN0cnVjdCBzY3AgKmluaXRf c2NwKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsDQogCQlyZXR1cm4gRVJSX0NBU1Qoc2Nw LT5pbmZyYWNmZyk7DQogCX0NCiANCisJc2NwLT5zbWlfY29tbW9uID0gc3lzY29uX3JlZ21hcF9s b29rdXBfYnlfcGhhbmRsZShwZGV2LT5kZXYub2Zfbm9kZSwNCisJCQkic21pX2NvbW0iKTsNCisN CisJaWYgKHNjcC0+c21pX2NvbW1vbiA9PSBFUlJfUFRSKC1FTk9ERVYpKSB7DQorCQlzY3AtPnNt aV9jb21tb24gPSBOVUxMOw0KKwl9IGVsc2UgaWYgKElTX0VSUihzY3AtPnNtaV9jb21tb24pKSB7 DQorCQlkZXZfZXJyKCZwZGV2LT5kZXYsICJDYW5ub3QgZmluZCBzbWlfY29tbW9uIGNvbnRyb2xs ZXI6ICVsZFxuIiwNCisJCQkJUFRSX0VSUihzY3AtPnNtaV9jb21tb24pKTsNCisJCXJldHVybiBF UlJfQ0FTVChzY3AtPnNtaV9jb21tb24pOw0KKwl9DQorDQogCWZvciAoaSA9IDA7IGkgPCBudW07 IGkrKykgew0KIAkJc3RydWN0IHNjcF9kb21haW4gKnNjcGQgPSAmc2NwLT5kb21haW5zW2ldOw0K IAkJY29uc3Qgc3RydWN0IHNjcF9kb21haW5fZGF0YSAqZGF0YSA9ICZzY3BfZG9tYWluX2RhdGFb aV07DQpAQCAtNTMwLDggKzUyOSwxMSBAQCBzdGF0aWMgdm9pZCBtdGtfcmVnaXN0ZXJfcG93ZXJf ZG9tYWlucyhzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LA0KIAkJLm5hbWUgPSAiY29ubiIs DQogCQkuc3RhX21hc2sgPSBQV1JfU1RBVFVTX0NPTk4sDQogCQkuY3RsX29mZnMgPSBTUE1fQ09O Tl9QV1JfQ09OLA0KLQkJLmJ1c19wcm90X21hc2sgPSBNVDI3MDFfVE9QX0FYSV9QUk9UX0VOX0NP Tk5fTSB8DQotCQkJCSBNVDI3MDFfVE9QX0FYSV9QUk9UX0VOX0NPTk5fUywNCisJCS5icF90YWJs ZSA9IHsNCisJCQlCVVNfUFJPVChJRlJfVFlQRSwgMCwgMCwgMHgyMjAsIDB4MjI4LA0KKwkJCQlN VDI3MDFfVE9QX0FYSV9QUk9UX0VOX0NPTk5fTSB8DQorCQkJCU1UMjcwMV9UT1BfQVhJX1BST1Rf RU5fQ09OTl9TKSwNCisJCX0sDQogCQkuY2FwcyA9IE1US19TQ1BEX0FDVElWRV9XQUtFVVAsDQog CX0sDQogCVtNVDI3MDFfUE9XRVJfRE9NQUlOX0RJU1BdID0gew0KQEAgLTU0MCw3ICs1NDIsMTAg QEAgc3RhdGljIHZvaWQgbXRrX3JlZ2lzdGVyX3Bvd2VyX2RvbWFpbnMoc3RydWN0IHBsYXRmb3Jt X2RldmljZSAqcGRldiwNCiAJCS5jdGxfb2ZmcyA9IFNQTV9ESVNfUFdSX0NPTiwNCiAJCS5zcmFt X3Bkbl9iaXRzID0gR0VOTUFTSygxMSwgOCksDQogCQkuYmFzaWNfY2xrX25hbWUgPSB7Im1tIn0s DQotCQkuYnVzX3Byb3RfbWFzayA9IE1UMjcwMV9UT1BfQVhJX1BST1RfRU5fTU1fTTAsDQorCQku YnBfdGFibGUgPSB7DQorCQkJQlVTX1BST1QoSUZSX1RZUEUsIDAsIDAsIDB4MjIwLCAweDIyOCwN CisJCQkJTVQyNzAxX1RPUF9BWElfUFJPVF9FTl9NTV9NMCksDQorCQl9LA0KIAkJLmNhcHMgPSBN VEtfU0NQRF9BQ1RJVkVfV0FLRVVQLA0KIAl9LA0KIAlbTVQyNzAxX1BPV0VSX0RPTUFJTl9NRkdd ID0gew0KQEAgLTY3NSw3ICs2ODAsMTAgQEAgc3RhdGljIHZvaWQgbXRrX3JlZ2lzdGVyX3Bvd2Vy X2RvbWFpbnMoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldiwNCiAJCS5zcmFtX3Bkbl9iaXRz ID0gR0VOTUFTSyg4LCA4KSwNCiAJCS5zcmFtX3Bkbl9hY2tfYml0cyA9IEdFTk1BU0soMTYsIDE2 KSwNCiAJCS5iYXNpY19jbGtfbmFtZSA9IHsibWZnIn0sDQotCQkuYnVzX3Byb3RfbWFzayA9IEJJ VCgxNCkgfCBCSVQoMjEpIHwgQklUKDIzKSwNCisJCS5icF90YWJsZSA9IHsNCisJCQlCVVNfUFJP VChJRlJfVFlQRSwgMHgyNjAsIDB4MjY0LCAweDIyMCwgMHgyMjgsDQorCQkJCUJJVCgxNCkgfCBC SVQoMjEpIHwgQklUKDIzKSksDQorCQl9LA0KIAkJLmNhcHMgPSBNVEtfU0NQRF9BQ1RJVkVfV0FL RVVQLA0KIAl9LA0KIAlbTVQyNzEyX1BPV0VSX0RPTUFJTl9NRkdfU0MxXSA9IHsNCkBAIC03NDcs NyArNzU1LDEwIEBAIHN0YXRpYyB2b2lkIG10a19yZWdpc3Rlcl9wb3dlcl9kb21haW5zKHN0cnVj dCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsDQogCQkuc3JhbV9wZG5fYml0cyA9IEdFTk1BU0soOCwg OCksDQogCQkuc3JhbV9wZG5fYWNrX2JpdHMgPSBHRU5NQVNLKDEyLCAxMiksDQogCQkuYmFzaWNf Y2xrX25hbWUgPSB7Im1tIn0sDQotCQkuYnVzX3Byb3RfbWFzayA9IChCSVQoMSkgfCBCSVQoMikp LA0KKwkJLmJwX3RhYmxlID0gew0KKwkJCUJVU19QUk9UKElGUl9UWVBFLCAwLCAwLCAweDIyMCwg MHgyMjgsDQorCQkJCUJJVCgxKSB8IEJJVCgyKSksDQorCQl9LA0KIAl9LA0KIAlbTVQ2Nzk3X1BP V0VSX0RPTUFJTl9BVURJT10gPSB7DQogCQkubmFtZSA9ICJhdWRpbyIsDQpAQCAtNzk0LDcgKzgw NSwxMCBAQCBzdGF0aWMgdm9pZCBtdGtfcmVnaXN0ZXJfcG93ZXJfZG9tYWlucyhzdHJ1Y3QgcGxh dGZvcm1fZGV2aWNlICpwZGV2LA0KIAkJLmN0bF9vZmZzID0gU1BNX0VUSFNZU19QV1JfQ09OLA0K IAkJLnNyYW1fcGRuX2JpdHMgPSBHRU5NQVNLKDExLCA4KSwNCiAJCS5zcmFtX3Bkbl9hY2tfYml0 cyA9IEdFTk1BU0soMTUsIDEyKSwNCi0JCS5idXNfcHJvdF9tYXNrID0gTVQ3NjIyX1RPUF9BWElf UFJPVF9FTl9FVEhTWVMsDQorCQkuYnBfdGFibGUgPSB7DQorCQkJQlVTX1BST1QoSUZSX1RZUEUs IDAsIDAsIDB4MjIwLCAweDIyOCwNCisJCQkJTVQ3NjIyX1RPUF9BWElfUFJPVF9FTl9FVEhTWVMp LA0KKwkJfSwNCiAJCS5jYXBzID0gTVRLX1NDUERfQUNUSVZFX1dBS0VVUCwNCiAJfSwNCiAJW01U NzYyMl9QT1dFUl9ET01BSU5fSElGMF0gPSB7DQpAQCAtODA0LDcgKzgxOCwxMCBAQCBzdGF0aWMg dm9pZCBtdGtfcmVnaXN0ZXJfcG93ZXJfZG9tYWlucyhzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpw ZGV2LA0KIAkJLnNyYW1fcGRuX2JpdHMgPSBHRU5NQVNLKDExLCA4KSwNCiAJCS5zcmFtX3Bkbl9h Y2tfYml0cyA9IEdFTk1BU0soMTUsIDEyKSwNCiAJCS5iYXNpY19jbGtfbmFtZSA9IHsiaGlmX3Nl bCJ9LA0KLQkJLmJ1c19wcm90X21hc2sgPSBNVDc2MjJfVE9QX0FYSV9QUk9UX0VOX0hJRjAsDQor CQkuYnBfdGFibGUgPSB7DQorCQkJQlVTX1BST1QoSUZSX1RZUEUsIDAsIDAsIDB4MjIwLCAweDIy OCwNCisJCQkJTVQ3NjIyX1RPUF9BWElfUFJPVF9FTl9ISUYwKSwNCisJCX0sDQogCQkuY2FwcyA9 IE1US19TQ1BEX0FDVElWRV9XQUtFVVAsDQogCX0sDQogCVtNVDc2MjJfUE9XRVJfRE9NQUlOX0hJ RjFdID0gew0KQEAgLTgxNCw3ICs4MzEsMTAgQEAgc3RhdGljIHZvaWQgbXRrX3JlZ2lzdGVyX3Bv d2VyX2RvbWFpbnMoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldiwNCiAJCS5zcmFtX3Bkbl9i aXRzID0gR0VOTUFTSygxMSwgOCksDQogCQkuc3JhbV9wZG5fYWNrX2JpdHMgPSBHRU5NQVNLKDE1 LCAxMiksDQogCQkuYmFzaWNfY2xrX25hbWUgPSB7ImhpZl9zZWwifSwNCi0JCS5idXNfcHJvdF9t YXNrID0gTVQ3NjIyX1RPUF9BWElfUFJPVF9FTl9ISUYxLA0KKwkJLmJwX3RhYmxlID0gew0KKwkJ CUJVU19QUk9UKElGUl9UWVBFLCAwLCAwLCAweDIyMCwgMHgyMjgsDQorCQkJCU1UNzYyMl9UT1Bf QVhJX1BST1RfRU5fSElGMSksDQorCQl9LA0KIAkJLmNhcHMgPSBNVEtfU0NQRF9BQ1RJVkVfV0FL RVVQLA0KIAl9LA0KIAlbTVQ3NjIyX1BPV0VSX0RPTUFJTl9XQl0gPSB7DQpAQCAtODIzLDcgKzg0 MywxMCBAQCBzdGF0aWMgdm9pZCBtdGtfcmVnaXN0ZXJfcG93ZXJfZG9tYWlucyhzdHJ1Y3QgcGxh dGZvcm1fZGV2aWNlICpwZGV2LA0KIAkJLmN0bF9vZmZzID0gU1BNX1dCX1BXUl9DT04sDQogCQku c3JhbV9wZG5fYml0cyA9IDAsDQogCQkuc3JhbV9wZG5fYWNrX2JpdHMgPSAwLA0KLQkJLmJ1c19w cm90X21hc2sgPSBNVDc2MjJfVE9QX0FYSV9QUk9UX0VOX1dCLA0KKwkJLmJwX3RhYmxlID0gew0K KwkJCUJVU19QUk9UKElGUl9UWVBFLCAwLCAwLCAweDIyMCwgMHgyMjgsDQorCQkJCU1UNzYyMl9U T1BfQVhJX1BST1RfRU5fV0IpLA0KKwkJfSwNCiAJCS5jYXBzID0gTVRLX1NDUERfQUNUSVZFX1dB S0VVUCB8IE1US19TQ1BEX0ZXQUlUX1NSQU0sDQogCX0sDQogfTsNCkBAIC04MzcsOCArODYwLDEx IEBAIHN0YXRpYyB2b2lkIG10a19yZWdpc3Rlcl9wb3dlcl9kb21haW5zKHN0cnVjdCBwbGF0Zm9y bV9kZXZpY2UgKnBkZXYsDQogCQkubmFtZSA9ICJjb25uIiwNCiAJCS5zdGFfbWFzayA9IFBXUl9T VEFUVVNfQ09OTiwNCiAJCS5jdGxfb2ZmcyA9IFNQTV9DT05OX1BXUl9DT04sDQotCQkuYnVzX3By b3RfbWFzayA9IE1UMjcwMV9UT1BfQVhJX1BST1RfRU5fQ09OTl9NIHwNCi0JCQkJIE1UMjcwMV9U T1BfQVhJX1BST1RfRU5fQ09OTl9TLA0KKwkJLmJwX3RhYmxlID0gew0KKwkJCUJVU19QUk9UKElG Ul9UWVBFLCAwLCAwLCAweDIyMCwgMHgyMjgsDQorCQkJCU1UMjcwMV9UT1BfQVhJX1BST1RfRU5f Q09OTl9NIHwNCisJCQkJTVQyNzAxX1RPUF9BWElfUFJPVF9FTl9DT05OX1MpLA0KKwkJfSwNCiAJ CS5jYXBzID0gTVRLX1NDUERfQUNUSVZFX1dBS0VVUCwNCiAJfSwNCiAJW01UNzYyM0FfUE9XRVJf RE9NQUlOX0VUSF0gPSB7DQpAQCAtOTAzLDggKzkyOSwxMSBAQCBzdGF0aWMgdm9pZCBtdGtfcmVn aXN0ZXJfcG93ZXJfZG9tYWlucyhzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LA0KIAkJLnNy YW1fcGRuX2JpdHMgPSBHRU5NQVNLKDExLCA4KSwNCiAJCS5zcmFtX3Bkbl9hY2tfYml0cyA9IEdF Tk1BU0soMTIsIDEyKSwNCiAJCS5iYXNpY19jbGtfbmFtZSA9IHsibW0ifSwNCi0JCS5idXNfcHJv dF9tYXNrID0gTVQ4MTczX1RPUF9BWElfUFJPVF9FTl9NTV9NMCB8DQotCQkJTVQ4MTczX1RPUF9B WElfUFJPVF9FTl9NTV9NMSwNCisJCS5icF90YWJsZSA9IHsNCisJCQlCVVNfUFJPVChJRlJfVFlQ RSwgMCwgMCwgMHgyMjAsIDB4MjI4LA0KKwkJCQlNVDgxNzNfVE9QX0FYSV9QUk9UX0VOX01NX00w IHwNCisJCQkJTVQ4MTczX1RPUF9BWElfUFJPVF9FTl9NTV9NMSksDQorCQl9LA0KIAl9LA0KIAlb TVQ4MTczX1BPV0VSX0RPTUFJTl9WRU5DX0xUXSA9IHsNCiAJCS5uYW1lID0gInZlbmNfbHQiLA0K QEAgLTk1MCwxMCArOTc5LDEzIEBAIHN0YXRpYyB2b2lkIG10a19yZWdpc3Rlcl9wb3dlcl9kb21h aW5zKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsDQogCQkuY3RsX29mZnMgPSBTUE1fTUZH X1BXUl9DT04sDQogCQkuc3JhbV9wZG5fYml0cyA9IEdFTk1BU0soMTMsIDgpLA0KIAkJLnNyYW1f cGRuX2Fja19iaXRzID0gR0VOTUFTSygyMSwgMTYpLA0KLQkJLmJ1c19wcm90X21hc2sgPSBNVDgx NzNfVE9QX0FYSV9QUk9UX0VOX01GR19TIHwNCi0JCQlNVDgxNzNfVE9QX0FYSV9QUk9UX0VOX01G R19NMCB8DQotCQkJTVQ4MTczX1RPUF9BWElfUFJPVF9FTl9NRkdfTTEgfA0KLQkJCU1UODE3M19U T1BfQVhJX1BST1RfRU5fTUZHX1NOT09QX09VVCwNCisJCS5icF90YWJsZSA9IHsNCisJCQlCVVNf UFJPVChJRlJfVFlQRSwgMCwgMCwgMHgyMjAsIDB4MjI4LA0KKwkJCQlNVDgxNzNfVE9QX0FYSV9Q Uk9UX0VOX01GR19TIHwNCisJCQkJTVQ4MTczX1RPUF9BWElfUFJPVF9FTl9NRkdfTTAgfA0KKwkJ CQlNVDgxNzNfVE9QX0FYSV9QUk9UX0VOX01GR19NMSB8DQorCQkJCU1UODE3M19UT1BfQVhJX1BS T1RfRU5fTUZHX1NOT09QX09VVCksDQorCQl9LA0KIAl9LA0KIH07DQogDQpAQCAtOTY5LDcgKzEw MDEsNiBAQCBzdGF0aWMgdm9pZCBtdGtfcmVnaXN0ZXJfcG93ZXJfZG9tYWlucyhzdHJ1Y3QgcGxh dGZvcm1fZGV2aWNlICpwZGV2LA0KIAkJLnB3cl9zdGFfb2ZmcyA9IFNQTV9QV1JfU1RBVFVTLA0K IAkJLnB3cl9zdGEybmRfb2ZmcyA9IFNQTV9QV1JfU1RBVFVTXzJORA0KIAl9LA0KLQkuYnVzX3By b3RfcmVnX3VwZGF0ZSA9IHRydWUsDQogfTsNCiANCiBzdGF0aWMgY29uc3Qgc3RydWN0IHNjcF9z b2NfZGF0YSBtdDI3MTJfZGF0YSA9IHsNCkBAIC05ODEsNyArMTAxMiw2IEBAIHN0YXRpYyB2b2lk IG10a19yZWdpc3Rlcl9wb3dlcl9kb21haW5zKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYs DQogCQkucHdyX3N0YV9vZmZzID0gU1BNX1BXUl9TVEFUVVMsDQogCQkucHdyX3N0YTJuZF9vZmZz ID0gU1BNX1BXUl9TVEFUVVNfMk5EDQogCX0sDQotCS5idXNfcHJvdF9yZWdfdXBkYXRlID0gZmFs c2UsDQogfTsNCiANCiBzdGF0aWMgY29uc3Qgc3RydWN0IHNjcF9zb2NfZGF0YSBtdDY3OTdfZGF0 YSA9IHsNCkBAIC05OTMsNyArMTAyMyw2IEBAIHN0YXRpYyB2b2lkIG10a19yZWdpc3Rlcl9wb3dl cl9kb21haW5zKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsDQogCQkucHdyX3N0YV9vZmZz ID0gU1BNX1BXUl9TVEFUVVNfTVQ2Nzk3LA0KIAkJLnB3cl9zdGEybmRfb2ZmcyA9IFNQTV9QV1Jf U1RBVFVTXzJORF9NVDY3OTcNCiAJfSwNCi0JLmJ1c19wcm90X3JlZ191cGRhdGUgPSB0cnVlLA0K IH07DQogDQogc3RhdGljIGNvbnN0IHN0cnVjdCBzY3Bfc29jX2RhdGEgbXQ3NjIyX2RhdGEgPSB7 DQpAQCAtMTAwMyw3ICsxMDMyLDYgQEAgc3RhdGljIHZvaWQgbXRrX3JlZ2lzdGVyX3Bvd2VyX2Rv bWFpbnMoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldiwNCiAJCS5wd3Jfc3RhX29mZnMgPSBT UE1fUFdSX1NUQVRVUywNCiAJCS5wd3Jfc3RhMm5kX29mZnMgPSBTUE1fUFdSX1NUQVRVU18yTkQN CiAJfSwNCi0JLmJ1c19wcm90X3JlZ191cGRhdGUgPSB0cnVlLA0KIH07DQogDQogc3RhdGljIGNv bnN0IHN0cnVjdCBzY3Bfc29jX2RhdGEgbXQ3NjIzYV9kYXRhID0gew0KQEAgLTEwMTMsNyArMTA0 MSw2IEBAIHN0YXRpYyB2b2lkIG10a19yZWdpc3Rlcl9wb3dlcl9kb21haW5zKHN0cnVjdCBwbGF0 Zm9ybV9kZXZpY2UgKnBkZXYsDQogCQkucHdyX3N0YV9vZmZzID0gU1BNX1BXUl9TVEFUVVMsDQog CQkucHdyX3N0YTJuZF9vZmZzID0gU1BNX1BXUl9TVEFUVVNfMk5EDQogCX0sDQotCS5idXNfcHJv dF9yZWdfdXBkYXRlID0gdHJ1ZSwNCiB9Ow0KIA0KIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgc2NwX3Nv Y19kYXRhIG10ODE3M19kYXRhID0gew0KQEAgLTEwMjUsNyArMTA1Miw2IEBAIHN0YXRpYyB2b2lk IG10a19yZWdpc3Rlcl9wb3dlcl9kb21haW5zKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYs DQogCQkucHdyX3N0YV9vZmZzID0gU1BNX1BXUl9TVEFUVVMsDQogCQkucHdyX3N0YTJuZF9vZmZz ID0gU1BNX1BXUl9TVEFUVVNfMk5EDQogCX0sDQotCS5idXNfcHJvdF9yZWdfdXBkYXRlID0gdHJ1 ZSwNCiB9Ow0KIA0KIC8qDQpAQCAtMTA2Niw4ICsxMDkyLDcgQEAgc3RhdGljIGludCBzY3BzeXNf cHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikNCiANCiAJc29jID0gb2ZfZGV2aWNl X2dldF9tYXRjaF9kYXRhKCZwZGV2LT5kZXYpOw0KIA0KLQlzY3AgPSBpbml0X3NjcChwZGV2LCBz b2MtPmRvbWFpbnMsIHNvYy0+bnVtX2RvbWFpbnMsICZzb2MtPnJlZ3MsDQotCQkJc29jLT5idXNf cHJvdF9yZWdfdXBkYXRlKTsNCisJc2NwID0gaW5pdF9zY3AocGRldiwgc29jLT5kb21haW5zLCBz b2MtPm51bV9kb21haW5zLCAmc29jLT5yZWdzKTsNCiAJaWYgKElTX0VSUihzY3ApKQ0KIAkJcmV0 dXJuIFBUUl9FUlIoc2NwKTsNCiANCmRpZmYgLS1naXQgYS9kcml2ZXJzL3NvYy9tZWRpYXRlay9z Y3BzeXMtZXh0LmggYi9kcml2ZXJzL3NvYy9tZWRpYXRlay9zY3BzeXMtZXh0LmgNCm5ldyBmaWxl IG1vZGUgMTAwNjQ0DQppbmRleCAwMDAwMDAwLi40NThiMmM1DQotLS0gL2Rldi9udWxsDQorKysg Yi9kcml2ZXJzL3NvYy9tZWRpYXRlay9zY3BzeXMtZXh0LmgNCkBAIC0wLDAgKzEsNjcgQEANCisv KiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMCAqLw0KKyNpZm5kZWYgX19TT0NfTUVE SUFURUtfU0NQU1lTX0VYVF9IDQorI2RlZmluZSBfX1NPQ19NRURJQVRFS19TQ1BTWVNfRVhUX0gN CisNCisjZGVmaW5lIE1BWF9TVEVQUwk0DQorDQorI2RlZmluZSBfQlVTX1BST1QoX3R5cGUsIF9z ZXRfb2ZzLCBfY2xyX29mcywJCQlcDQorCQlfZW5fb2ZzLCBfc3RhX29mcywgX21hc2ssIF9pZ25v cmVfY2xyX2FjaykgewlcDQorCQkudHlwZSA9IF90eXBlLAkJCQkJXA0KKwkJLnNldF9vZnMgPSBf c2V0X29mcywJCQkJXA0KKwkJLmNscl9vZnMgPSBfY2xyX29mcywJCQkJXA0KKwkJLmVuX29mcyA9 IF9lbl9vZnMsCQkJCVwNCisJCS5zdGFfb2ZzID0gX3N0YV9vZnMsCQkJCVwNCisJCS5tYXNrID0g X21hc2ssCQkJCQlcDQorCQkuaWdub3JlX2Nscl9hY2sgPSBfaWdub3JlX2Nscl9hY2ssCQlcDQor CX0NCisNCisjZGVmaW5lIEJVU19QUk9UKF90eXBlLCBfc2V0X29mcywgX2Nscl9vZnMsCQlcDQor CQlfZW5fb2ZzLCBfc3RhX29mcywgX21hc2spCQlcDQorCQlfQlVTX1BST1QoX3R5cGUsIF9zZXRf b2ZzLCBfY2xyX29mcywJXA0KKwkJX2VuX29mcywgX3N0YV9vZnMsIF9tYXNrLCBmYWxzZSkNCisN CisjZGVmaW5lIEJVU19QUk9UX0lHTihfdHlwZSwgX3NldF9vZnMsIF9jbHJfb2ZzLAlcDQorCQlf ZW5fb2ZzLCBfc3RhX29mcywgX21hc2spCQlcDQorCQlfQlVTX1BST1QoX3R5cGUsIF9zZXRfb2Zz LCBfY2xyX29mcywJXA0KKwkJX2VuX29mcywgX3N0YV9vZnMsIF9tYXNrLCB0cnVlKQ0KKw0KKyNk ZWZpbmUgTVQyNzAxX1RPUF9BWElfUFJPVF9FTl9NTV9NMAkJQklUKDEpDQorI2RlZmluZSBNVDI3 MDFfVE9QX0FYSV9QUk9UX0VOX0NPTk5fTQkJQklUKDIpDQorI2RlZmluZSBNVDI3MDFfVE9QX0FY SV9QUk9UX0VOX0NPTk5fUwkJQklUKDgpDQorDQorI2RlZmluZSBNVDc2MjJfVE9QX0FYSV9QUk9U X0VOX0VUSFNZUwkJKEJJVCgzKSB8IEJJVCgxNykpDQorI2RlZmluZSBNVDc2MjJfVE9QX0FYSV9Q Uk9UX0VOX0hJRjAJCShCSVQoMjQpIHwgQklUKDI1KSkNCisjZGVmaW5lIE1UNzYyMl9UT1BfQVhJ X1BST1RfRU5fSElGMQkJKEJJVCgyNikgfCBCSVQoMjcpIHwgXA0KKwkJCQkJCSBCSVQoMjgpKQ0K KyNkZWZpbmUgTVQ3NjIyX1RPUF9BWElfUFJPVF9FTl9XQgkJKEJJVCgyKSB8IEJJVCg2KSB8IFwN CisJCQkJCQkgQklUKDcpIHwgQklUKDgpKQ0KKw0KKyNkZWZpbmUgTVQ4MTczX1RPUF9BWElfUFJP VF9FTl9NTV9NMAkJQklUKDEpDQorI2RlZmluZSBNVDgxNzNfVE9QX0FYSV9QUk9UX0VOX01NX00x CQlCSVQoMikNCisjZGVmaW5lIE1UODE3M19UT1BfQVhJX1BST1RfRU5fTUZHX1MJCUJJVCgxNCkN CisjZGVmaW5lIE1UODE3M19UT1BfQVhJX1BST1RfRU5fTUZHX00wCQlCSVQoMjEpDQorI2RlZmlu ZSBNVDgxNzNfVE9QX0FYSV9QUk9UX0VOX01GR19NMQkJQklUKDIyKQ0KKyNkZWZpbmUgTVQ4MTcz X1RPUF9BWElfUFJPVF9FTl9NRkdfU05PT1BfT1VUCUJJVCgyMykNCisNCitlbnVtIHJlZ21hcF90 eXBlIHsNCisJSU5WQUxJRF9UWVBFID0gMCwNCisJSUZSX1RZUEUsDQorCVNNSV9UWVBFLA0KK307 DQorDQorc3RydWN0IGJ1c19wcm90IHsNCisJZW51bSByZWdtYXBfdHlwZSB0eXBlOw0KKwl1MzIg c2V0X29mczsNCisJdTMyIGNscl9vZnM7DQorCXUzMiBlbl9vZnM7DQorCXUzMiBzdGFfb2ZzOw0K Kwl1MzIgbWFzazsNCisJYm9vbCBpZ25vcmVfY2xyX2FjazsNCit9Ow0KKw0KK2ludCBtdGtfc2Nw c3lzX2V4dF9zZXRfYnVzX3Byb3RlY3Rpb24oY29uc3Qgc3RydWN0IGJ1c19wcm90ICpicF90YWJs ZSwNCisJc3RydWN0IHJlZ21hcCAqaW5mcmFjZmcsIHN0cnVjdCByZWdtYXAgKnNtaV9jb21tb24p Ow0KK2ludCBtdGtfc2Nwc3lzX2V4dF9jbGVhcl9idXNfcHJvdGVjdGlvbihjb25zdCBzdHJ1Y3Qg YnVzX3Byb3QgKmJwX3RhYmxlLA0KKwlzdHJ1Y3QgcmVnbWFwICppbmZyYWNmZywgc3RydWN0IHJl Z21hcCAqc21pX2NvbW1vbik7DQorDQorI2VuZGlmIC8qIF9fU09DX01FRElBVEVLX1NDUFNZU19F WFRfSCAqLw0KLS0gDQoxLjguMS4xLmRpcnR5DQo=