Received: by 10.213.65.68 with SMTP id h4csp219613imn; Tue, 13 Mar 2018 01:54:41 -0700 (PDT) X-Google-Smtp-Source: AG47ELtG6oauOBVTy5kSlHHJj2Kr+o0wogiEuLm3DXN2AikFBpdEqR/i1XrLEuN/s3xBOgJ/uXrd X-Received: by 2002:a17:902:32a2:: with SMTP id z31-v6mr10873743plb.32.1520931281859; Tue, 13 Mar 2018 01:54:41 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1520931281; cv=none; d=google.com; s=arc-20160816; b=R9oGz5kqAAahJ17yo4ttqR+krewZE4y3ZUXUElsjErgoexABWno8q4U6+WXvzbjs0q ZhZLAslCne+eljQLdZiuolnMegii3N0ECHGnnMgWu5KGNYcSxHqGoI5Ut86nI7wZQ5eo i5KWfuhuHgnBFvhVSgerOv2dEi59nSiYmD9c9/BUWkWqjXt6r5XLbJ54FfpCf0n3ZjD4 qUP6xyu3wlFtq3/7nzRcqHQyYoh+rHGxmWDu3E3uaOcS6e2d2D5mRHqUes/Ih61Rtg7p dssPQFyOVw8b2YN2yOGZA4YiATUuQuYenRYhG9R1rt1uSafBRKo+hEvmB0xi5nI0X1Wb auog== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:content-transfer-encoding :content-id:user-agent:content-language:accept-language:in-reply-to :references:message-id:date:thread-index:thread-topic:subject:cc:to :from:arc-authentication-results; bh=6SiSaeNFgI/+7avBtum/XP+vDyVw/sQIOXm8LFTwP3g=; b=tMxVMByvXvNgf0Dy+1nnKqcmWeTMpZnX1TlJosIZi/QHPVaoFxgkL8WiGoKp1PoctX NEDcRetkEMhqpPguOEUUr0IqYUoMaJyb8vR9b20p7Rcq59r49dJypzAh9zedshw+IXie OGxADYP1wfFEEJlJxG+Tze4dABo0LbctYSxgQC11Rqs+9W2N4cYSgbKCbJZJExrwpfhS KvlPCB7bgoE5xf5+sS12oobOEbm/RBxCGhoopyAQ25HsOxdM0NRVfcGGPvZN4Wck3FDM gg4BTzjU9zsRXcXbILOleFvahzwDLSWi9iOOL1ZMKv/bI+wpG9QFeY0C4Nu/taFsFIBa rLMg== ARC-Authentication-Results: i=1; mx.google.com; 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 Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id y7si6338600pgy.161.2018.03.13.01.54.27; Tue, 13 Mar 2018 01:54:41 -0700 (PDT) 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; 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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752593AbeCMIxd (ORCPT + 99 others); Tue, 13 Mar 2018 04:53:33 -0400 Received: from mx07-00178001.pphosted.com ([62.209.51.94]:31938 "EHLO mx07-00178001.pphosted.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751965AbeCMIxb (ORCPT ); Tue, 13 Mar 2018 04:53:31 -0400 Received: from pps.filterd (m0046037.ppops.net [127.0.0.1]) by mx07-.pphosted.com (8.16.0.21/8.16.0.21) with SMTP id w2D8nPws031282; Tue, 13 Mar 2018 09:52:11 +0100 Received: from beta.dmz-eu.st.com (beta.dmz-eu.st.com [164.129.1.35]) by mx07-00178001.pphosted.com with ESMTP id 2gp8ktrua6-1 (version=TLSv1 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NOT); Tue, 13 Mar 2018 09:52:10 +0100 Received: from zeta.dmz-eu.st.com (zeta.dmz-eu.st.com [164.129.230.9]) by beta.dmz-eu.st.com (STMicroelectronics) with ESMTP id E579038; Tue, 13 Mar 2018 08:52:09 +0000 (GMT) Received: from Webmail-eu.st.com (sfhdag6node3.st.com [10.75.127.18]) by zeta.dmz-eu.st.com (STMicroelectronics) with ESMTP id 9DF674ECD; Tue, 13 Mar 2018 08:52:09 +0000 (GMT) Received: from SFHDAG6NODE3.st.com (10.75.127.18) by SFHDAG6NODE3.st.com (10.75.127.18) with Microsoft SMTP Server (TLS) id 15.0.1347.2; Tue, 13 Mar 2018 09:52:09 +0100 Received: from SFHDAG6NODE3.st.com ([fe80::d04:5337:ab17:b6f6]) by SFHDAG6NODE3.st.com ([fe80::d04:5337:ab17:b6f6%20]) with mapi id 15.00.1347.000; Tue, 13 Mar 2018 09:52:09 +0100 From: Patrice CHOTARD To: Yannick FERTRE , Vikas MANOCHA , Benjamin Gaignard , Philippe CORNU , Patrick DELAUNAY , Christophe KERELLO , Archit Taneja , Andrzej Hajda , Laurent Pinchart , David Airlie , Brian Norris , Bhumika Goyal , Gustavo Padovan , "Maarten Lankhorst" , Sean Paul , Albert Aribaud , "Simon Glass" , Anatolij Gustschin , Thierry Reding CC: "u-boot@lists.denx.de" , "dri-devel@lists.freedesktop.org" , "linux-kernel@vger.kernel.org" Subject: Re: [PATCH v2 04/10] video: add support of panel OTM8009A Thread-Topic: [PATCH v2 04/10] video: add support of panel OTM8009A Thread-Index: AQHTsj1UEhBKslk8wUCZ5OMTyP65vKPN298A Date: Tue, 13 Mar 2018 08:52:09 +0000 Message-ID: <897d61dc-cf79-d603-00f4-84bdfd809bdc@st.com> References: <1520005451-23217-1-git-send-email-yannick.fertre@st.com> <1520005451-23217-5-git-send-email-yannick.fertre@st.com> In-Reply-To: <1520005451-23217-5-git-send-email-yannick.fertre@st.com> Accept-Language: fr-FR, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: user-agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.6.0 x-ms-exchange-messagesentrepresentingtype: 1 x-ms-exchange-transport-fromentityheader: Hosted x-originating-ip: [10.75.127.47] Content-Type: text/plain; charset="utf-8" Content-ID: <214933FBF1DE804F89B9646E1CBF8F6F@st.com> Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10432:,, definitions=2018-03-13_04:,, signatures=0 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org SGkgWWFubmljaw0KDQpPbiAwMy8wMi8yMDE4IDA0OjQ0IFBNLCB5YW5uaWNrIGZlcnRyZSB3cm90 ZToNCj4gU3VwcG9ydCBmb3IgT3Jpc2UgVGVjaCBvdG04MDA5YSA0ODBwIGRzaSAyZGwgdmlkZW8g bW9kZSBwYW5lbC4NCj4gDQo+IFNpZ25lZC1vZmYtYnk6IHlhbm5pY2sgZmVydHJlIDx5YW5uaWNr LmZlcnRyZUBzdC5jb20+DQo+IC0tLQ0KPiAgIGRyaXZlcnMvdmlkZW8vS2NvbmZpZyAgICAgICAg ICAgICAgfCAgIDggKw0KPiAgIGRyaXZlcnMvdmlkZW8vTWFrZWZpbGUgICAgICAgICAgICAgfCAg IDEgKw0KPiAgIGRyaXZlcnMvdmlkZW8vb3Jpc2V0ZWNoX290bTgwMDlhLmMgfCAzMjkgKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKw0KPiAgIDMgZmlsZXMgY2hhbmdlZCwgMzM4 IGluc2VydGlvbnMoKykNCj4gICBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy92aWRlby9vcmlz ZXRlY2hfb3RtODAwOWEuYw0KPiANCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvdmlkZW8vS2NvbmZp ZyBiL2RyaXZlcnMvdmlkZW8vS2NvbmZpZw0KPiBpbmRleCAxOTgxMjk4Li5iNWZjNTM1IDEwMDY0 NA0KPiAtLS0gYS9kcml2ZXJzL3ZpZGVvL0tjb25maWcNCj4gKysrIGIvZHJpdmVycy92aWRlby9L Y29uZmlnDQo+IEBAIC0zMjAsNiArMzIwLDE0IEBAIGNvbmZpZyBWSURFT19MQ0RfQU5YOTgwNA0K PiAgIAlmcm9tIGEgcGFyYWxsZWwgTENEIGludGVyZmFjZSBhbmQgdHJhbnNsYXRlIGl0IG9uIHRo ZSBmeSBpbnRvIGEgRFANCj4gICAJaW50ZXJmYWNlIGZvciBkcml2aW5nIGVEUCBURlQgZGlzcGxh eXMuIEl0IHVzZXMgSTJDIGZvciBjb25maWd1cmF0aW9uLg0KPiAgIA0KPiArY29uZmlnIFZJREVP X0xDRF9PUklTRVRFQ0hfT1RNODAwOUENCj4gKwlib29sICJPVE04MDA5QSBEU0kgTENEIHBhbmVs IHN1cHBvcnQiDQo+ICsJZGVwZW5kcyBvbiBETV9WSURFTw0KPiArCXNlbGVjdCBWSURFT19NSVBJ X0RTSQ0KPiArCWRlZmF1bHQgbg0KPiArCS0tLWhlbHAtLS0NCj4gKwlTdXBwb3J0IGZvciBPcmlz ZSBUZWNoIG90bTgwMDlhIDQ4MHAgZHNpIDJkbCB2aWRlbyBtb2RlIHBhbmVsLg0KPiArDQo+ICAg Y29uZmlnIFZJREVPX0xDRF9TU0QyODI4DQo+ICAgCWJvb2wgIlNTRDI4MjggYnJpZGdlIGNoaXAi DQo+ICAgCWRlZmF1bHQgbg0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy92aWRlby9NYWtlZmlsZSBi L2RyaXZlcnMvdmlkZW8vTWFrZWZpbGUNCj4gaW5kZXggNmY0MmNjYS4uNjUwMDJhZiAxMDA2NDQN Cj4gLS0tIGEvZHJpdmVycy92aWRlby9NYWtlZmlsZQ0KPiArKysgYi9kcml2ZXJzL3ZpZGVvL01h a2VmaWxlDQo+IEBAIC0zNyw2ICszNyw3IEBAIG9iai0kKENPTkZJR19WSURFT19DT1JFQk9PVCkg Kz0gY29yZWJvb3Qubw0KPiAgIG9iai0kKENPTkZJR19WSURFT19EQThYWCkgKz0gZGE4eHgtZmIu byB2aWRlb21vZGVzLm8NCj4gICBvYmotJChDT05GSUdfVklERU9fTENEX0FOWDk4MDQpICs9IGFu eDk4MDQubw0KPiAgIG9iai0kKENPTkZJR19WSURFT19MQ0RfSElUQUNISV9UWDE4RDQyVk0pICs9 IGhpdGFjaGlfdHgxOGQ0MnZtX2xjZC5vDQo+ICtvYmotJChDT05GSUdfVklERU9fTENEX09SSVNF VEVDSF9PVE04MDA5QSkgKz0gb3Jpc2V0ZWNoX290bTgwMDlhLm8NCj4gICBvYmotJChDT05GSUdf VklERU9fTENEX1NTRDI4MjgpICs9IHNzZDI4Mjgubw0KPiAgIG9iai0kKENPTkZJR19WSURFT19N Qjg2Mnh4KSArPSBtYjg2Mnh4Lm8gdmlkZW9tb2Rlcy5vDQo+ICAgb2JqLSQoQ09ORklHX1ZJREVP X01YMykgKz0gbXgzZmIubyB2aWRlb21vZGVzLm8NCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvdmlk ZW8vb3Jpc2V0ZWNoX290bTgwMDlhLmMgYi9kcml2ZXJzL3ZpZGVvL29yaXNldGVjaF9vdG04MDA5 YS5jDQo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+IGluZGV4IDAwMDAwMDAuLjc5ZjJkYTgNCj4g LS0tIC9kZXYvbnVsbA0KPiArKysgYi9kcml2ZXJzL3ZpZGVvL29yaXNldGVjaF9vdG04MDA5YS5j DQo+IEBAIC0wLDAgKzEsMzI5IEBADQo+ICsvKg0KPiArICogQ29weXJpZ2h0IChDKSAyMDE4IFNU TWljcm9lbGVjdHJvbmljcyAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQNCj4gKyAqIEF1dGhvcihzKTog WWFubmljayBGZXJ0cmUgPHlhbm5pY2suZmVydHJlQHN0LmNvbT4gZm9yIFNUTWljcm9lbGVjdHJv bmljcy4NCj4gKyAqCSAgICAgIFBoaWxpcHBlIENvcm51IDxwaGlsaXBwZS5jb3JudUBzdC5jb20+ IGZvciBTVE1pY3JvZWxlY3Ryb25pY3MuDQo+ICsgKg0KPiArICogVGhpcyBvdG04MDA5YSBwYW5l bCBkcml2ZXIgaXMgYmFzZWQgb24gdGhlIHBhbmVsIGRyaXZlciBmcm9tDQo+ICsgKiBkcml2ZXJz L2dwdS9kcm0vcGFuZWwvcGFuZWwtb3Jpc2V0ZWNoLW90bTgwMDlhLmMgKGtlcm5lbCBsaW51eCkN Cj4gKyAqDQo+ICsgKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMA0KPiArICovDQo+ ICsjaW5jbHVkZSA8YXNtL2dwaW8uaD4NCj4gKyNpbmNsdWRlIDxiYWNrbGlnaHQuaD4NCj4gKyNp bmNsdWRlIDxjb21tb24uaD4NCj4gKyNpbmNsdWRlIDxkbS5oPg0KPiArI2luY2x1ZGUgPHBhbmVs Lmg+DQo+ICsjaW5jbHVkZSA8cG93ZXIvcmVndWxhdG9yLmg+DQo+ICsjaW5jbHVkZSA8bWlwaV9k aXNwbGF5Lmg+DQo+ICsNCj4gK0RFQ0xBUkVfR0xPQkFMX0RBVEFfUFRSOw0KPiArDQo+ICsjZGVm aW5lIERSVl9OQU1FICJvcmlzZXRlY2hfb3RtODAwOWEiDQo+ICsNCj4gKyNkZWZpbmUgT1RNODAw OUFfQkFDS0xJR0hUX0RFRkFVTFQJMjQwDQo+ICsjZGVmaW5lIE9UTTgwMDlBX0JBQ0tMSUdIVF9N QVgJCTI1NQ0KPiArDQo+ICsvKiBNYW51ZmFjdHVyZXIgQ29tbWFuZCBTZXQgKi8NCj4gKyNkZWZp bmUgTUNTX0FEUlNGVAkweDAwMDAJLyogQWRkcmVzcyBTaGlmdCBGdW5jdGlvbiAqLw0KPiArI2Rl ZmluZSBNQ1NfUEFOU0VUCTB4QjNBNgkvKiBQYW5lbCBUeXBlIFNldHRpbmcgKi8NCj4gKyNkZWZp bmUgTUNTX1NEX0NUUkwJMHhDMEEyCS8qIFNvdXJjZSBEcml2ZXIgVGltaW5nIFNldHRpbmcgKi8N Cj4gKyNkZWZpbmUgTUNTX1BfRFJWX00JMHhDMEI0CS8qIFBhbmVsIERyaXZpbmcgTW9kZSAqLw0K PiArI2RlZmluZSBNQ1NfT1NDX0FESgkweEMxODEJLyogT3NjaWxsYXRvciBBZGp1c3RtZW50IGZv ciBJZGxlL05vcm1hbCBtb2RlICovDQo+ICsjZGVmaW5lIE1DU19SR0JfVklEX1NFVAkweEMxQTEJ LyogUkdCIFZpZGVvIE1vZGUgU2V0dGluZyAqLw0KPiArI2RlZmluZSBNQ1NfU0RfUENIX0NUUkwJ MHhDNDgwCS8qIFNvdXJjZSBEcml2ZXIgUHJlY2hhcmdlIENvbnRyb2wgKi8NCj4gKyNkZWZpbmUg TUNTX05PX0RPQzEJMHhDNDhBCS8qIENvbW1hbmQgbm90IGRvY3VtZW50ZWQgKi8NCj4gKyNkZWZp bmUgTUNTX1BXUl9DVFJMMQkweEM1ODAJLyogUG93ZXIgQ29udHJvbCBTZXR0aW5nIDEgKi8NCj4g KyNkZWZpbmUgTUNTX1BXUl9DVFJMMgkweEM1OTAJLyogUG93ZXIgQ29udHJvbCBTZXR0aW5nIDIg Zm9yIE5vcm1hbCBNb2RlICovDQo+ICsjZGVmaW5lIE1DU19QV1JfQ1RSTDQJMHhDNUIwCS8qIFBv d2VyIENvbnRyb2wgU2V0dGluZyA0IGZvciBEQyBWb2x0YWdlICovDQo+ICsjZGVmaW5lIE1DU19Q QU5DVFJMU0VUMQkweENCODAJLyogUGFuZWwgQ29udHJvbCBTZXR0aW5nIDEgKi8NCj4gKyNkZWZp bmUgTUNTX1BBTkNUUkxTRVQyCTB4Q0I5MAkvKiBQYW5lbCBDb250cm9sIFNldHRpbmcgMiAqLw0K PiArI2RlZmluZSBNQ1NfUEFOQ1RSTFNFVDMJMHhDQkEwCS8qIFBhbmVsIENvbnRyb2wgU2V0dGlu ZyAzICovDQo+ICsjZGVmaW5lIE1DU19QQU5DVFJMU0VUNAkweENCQjAJLyogUGFuZWwgQ29udHJv bCBTZXR0aW5nIDQgKi8NCj4gKyNkZWZpbmUgTUNTX1BBTkNUUkxTRVQ1CTB4Q0JDMAkvKiBQYW5l bCBDb250cm9sIFNldHRpbmcgNSAqLw0KPiArI2RlZmluZSBNQ1NfUEFOQ1RSTFNFVDYJMHhDQkQw CS8qIFBhbmVsIENvbnRyb2wgU2V0dGluZyA2ICovDQo+ICsjZGVmaW5lIE1DU19QQU5DVFJMU0VU NwkweENCRTAJLyogUGFuZWwgQ29udHJvbCBTZXR0aW5nIDcgKi8NCj4gKyNkZWZpbmUgTUNTX1BB TkNUUkxTRVQ4CTB4Q0JGMAkvKiBQYW5lbCBDb250cm9sIFNldHRpbmcgOCAqLw0KPiArI2RlZmlu ZSBNQ1NfUEFOVTJEMQkweENDODAJLyogUGFuZWwgVTJEIFNldHRpbmcgMSAqLw0KPiArI2RlZmlu ZSBNQ1NfUEFOVTJEMgkweENDOTAJLyogUGFuZWwgVTJEIFNldHRpbmcgMiAqLw0KPiArI2RlZmlu ZSBNQ1NfUEFOVTJEMwkweENDQTAJLyogUGFuZWwgVTJEIFNldHRpbmcgMyAqLw0KPiArI2RlZmlu ZSBNQ1NfUEFORDJVMQkweENDQjAJLyogUGFuZWwgRDJVIFNldHRpbmcgMSAqLw0KPiArI2RlZmlu ZSBNQ1NfUEFORDJVMgkweENDQzAJLyogUGFuZWwgRDJVIFNldHRpbmcgMiAqLw0KPiArI2RlZmlu ZSBNQ1NfUEFORDJVMwkweENDRDAJLyogUGFuZWwgRDJVIFNldHRpbmcgMyAqLw0KPiArI2RlZmlu ZSBNQ1NfR09BVlNUCTB4Q0U4MAkvKiBHT0EgVlNUIFNldHRpbmcgKi8NCj4gKyNkZWZpbmUgTUNT X0dPQUNMS0ExCTB4Q0VBMAkvKiBHT0EgQ0xLQTEgU2V0dGluZyAqLw0KPiArI2RlZmluZSBNQ1Nf R09BQ0xLQTMJMHhDRUIwCS8qIEdPQSBDTEtBMyBTZXR0aW5nICovDQo+ICsjZGVmaW5lIE1DU19H T0FFQ0xLCTB4Q0ZDMAkvKiBHT0EgRUNMSyBTZXR0aW5nICovDQo+ICsjZGVmaW5lIE1DU19OT19E T0MyCTB4Q0ZEMAkvKiBDb21tYW5kIG5vdCBkb2N1bWVudGVkICovDQo+ICsjZGVmaW5lIE1DU19H VkREU0VUCTB4RDgwMAkvKiBHVkREL05HVkREICovDQo+ICsjZGVmaW5lIE1DU19WQ09NREMJMHhE OTAwCS8qIFZDT00gVm9sdGFnZSBTZXR0aW5nICovDQo+ICsjZGVmaW5lIE1DU19HTUNUMl8yUAkw eEUxMDAJLyogR2FtbWEgQ29ycmVjdGlvbiAyLjIrIFNldHRpbmcgKi8NCj4gKyNkZWZpbmUgTUNT X0dNQ1QyXzJOCTB4RTIwMAkvKiBHYW1tYSBDb3JyZWN0aW9uIDIuMi0gU2V0dGluZyAqLw0KPiAr I2RlZmluZSBNQ1NfTk9fRE9DMwkweEY1QjYJLyogQ29tbWFuZCBub3QgZG9jdW1lbnRlZCAqLw0K PiArI2RlZmluZSBNQ1NfQ01EMl9FTkExCTB4RkYwMAkvKiBFbmFibGUgQWNjZXNzIENvbW1hbmQy ICJDTUQyIiAqLw0KPiArI2RlZmluZSBNQ1NfQ01EMl9FTkEyCTB4RkY4MAkvKiBFbmFibGUgQWNj ZXNzIE9yaXNlIENvbW1hbmQyICovDQo+ICsNCj4gK3N0cnVjdCBvdG04MDA5YV9wYW5lbF9wcml2 IHsNCj4gKwlzdHJ1Y3QgdWRldmljZSAqcmVnOw0KPiArCXN0cnVjdCBncGlvX2Rlc2MgcmVzZXQ7 DQo+ICt9Ow0KPiArDQo+ICtzdGF0aWMgdm9pZCBvdG04MDA5YV9kY3Nfd3JpdGVfYnVmKHN0cnVj dCB1ZGV2aWNlICpkZXYsIGNvbnN0IHZvaWQgKmRhdGEsDQo+ICsJCQkJICAgc2l6ZV90IGxlbikN Cj4gK3sNCj4gKwlzdHJ1Y3QgbWlwaV9kc2lfcGFuZWxfcGxhdCAqcGxhdCA9IGRldl9nZXRfcGxh dGRhdGEoZGV2KTsNCj4gKwlzdHJ1Y3QgbWlwaV9kc2lfZGV2aWNlICpkZXZpY2UgPSBwbGF0LT5k ZXZpY2U7DQo+ICsNCj4gKwlpZiAobWlwaV9kc2lfZGNzX3dyaXRlX2J1ZmZlcihkZXZpY2UsIGRh dGEsIGxlbikgPCAwKQ0KPiArCQlwcl9lcnIoIm1pcGkgZHNpIGRjcyB3cml0ZSBidWZmZXIgZmFp bGVkXG4iKTsNCg0KDQpkZXZfZXJyKCkNCg0KPiArfQ0KPiArDQo+ICsjZGVmaW5lIGRjc193cml0 ZV9zZXEoZGV2LCBzZXEuLi4pCQkJCVwNCj4gKyh7CQkJCQkJCQlcDQo+ICsJc3RhdGljIGNvbnN0 IHU4IGRbXSA9IHsgc2VxIH07CQkJCVwNCj4gKwlvdG04MDA5YV9kY3Nfd3JpdGVfYnVmKGRldiwg ZCwgQVJSQVlfU0laRShkKSk7CQlcDQo+ICt9KQ0KPiArDQo+ICsjZGVmaW5lIGRjc193cml0ZV9j bWRfYXQoZGV2LCBjbWQsIHNlcS4uLikJCVwNCj4gKyh7CQkJCQkJCVwNCj4gKwlzdGF0aWMgY29u c3QgdTE2IGMgPSBjbWQ7CQkJXA0KPiArCXN0cnVjdCB1ZGV2aWNlICpkZXZpY2UgPSBkZXY7CQkJ XA0KPiArCWRjc193cml0ZV9zZXEoZGV2aWNlLCBNQ1NfQURSU0ZULCAoYykgJiAweEZGKTsJXA0K PiArCWRjc193cml0ZV9zZXEoZGV2aWNlLCAoYykgPj4gOCwgc2VxKTsJCVwNCj4gK30pDQo+ICsN Cj4gK3N0YXRpYyBpbnQgb3RtODAwOWFfaW5pdF9zZXF1ZW5jZShzdHJ1Y3QgdWRldmljZSAqZGV2 KQ0KPiArew0KPiArCXN0cnVjdCBtaXBpX2RzaV9wYW5lbF9wbGF0ICpwbGF0ID0gZGV2X2dldF9w bGF0ZGF0YShkZXYpOw0KPiArCXN0cnVjdCBtaXBpX2RzaV9kZXZpY2UgKmRldmljZSA9IHBsYXQt PmRldmljZTsNCj4gKwlpbnQgcmV0Ow0KPiArDQo+ICsJLyogRW50ZXIgQ01EMiAqLw0KPiArCWRj c193cml0ZV9jbWRfYXQoZGV2LCBNQ1NfQ01EMl9FTkExLCAweDgwLCAweDA5LCAweDAxKTsNCj4g Kw0KPiArCS8qIEVudGVyIE9yaXNlIENvbW1hbmQyICovDQo+ICsJZGNzX3dyaXRlX2NtZF9hdChk ZXYsIE1DU19DTUQyX0VOQTIsIDB4ODAsIDB4MDkpOw0KPiArDQo+ICsJZGNzX3dyaXRlX2NtZF9h dChkZXYsIE1DU19TRF9QQ0hfQ1RSTCwgMHgzMCk7DQo+ICsJbWRlbGF5KDEwKTsNCj4gKw0KPiAr CWRjc193cml0ZV9jbWRfYXQoZGV2LCBNQ1NfTk9fRE9DMSwgMHg0MCk7DQo+ICsJbWRlbGF5KDEw KTsNCj4gKw0KPiArCWRjc193cml0ZV9jbWRfYXQoZGV2LCBNQ1NfUFdSX0NUUkw0ICsgMSwgMHhB OSk7DQo+ICsJZGNzX3dyaXRlX2NtZF9hdChkZXYsIE1DU19QV1JfQ1RSTDIgKyAxLCAweDM0KTsN Cj4gKwlkY3Nfd3JpdGVfY21kX2F0KGRldiwgTUNTX1BfRFJWX00sIDB4NTApOw0KPiArCWRjc193 cml0ZV9jbWRfYXQoZGV2LCBNQ1NfVkNPTURDLCAweDRFKTsNCj4gKwlkY3Nfd3JpdGVfY21kX2F0 KGRldiwgTUNTX09TQ19BREosIDB4NjYpOyAvKiA2NUh6ICovDQo+ICsJZGNzX3dyaXRlX2NtZF9h dChkZXYsIE1DU19QV1JfQ1RSTDIgKyAyLCAweDAxKTsNCj4gKwlkY3Nfd3JpdGVfY21kX2F0KGRl diwgTUNTX1BXUl9DVFJMMiArIDUsIDB4MzQpOw0KPiArCWRjc193cml0ZV9jbWRfYXQoZGV2LCBN Q1NfUFdSX0NUUkwyICsgNCwgMHgzMyk7DQo+ICsJZGNzX3dyaXRlX2NtZF9hdChkZXYsIE1DU19H VkREU0VULCAweDc5LCAweDc5KTsNCj4gKwlkY3Nfd3JpdGVfY21kX2F0KGRldiwgTUNTX1NEX0NU UkwgKyAxLCAweDFCKTsNCj4gKwlkY3Nfd3JpdGVfY21kX2F0KGRldiwgTUNTX1BXUl9DVFJMMSAr IDIsIDB4ODMpOw0KPiArCWRjc193cml0ZV9jbWRfYXQoZGV2LCBNQ1NfU0RfUENIX0NUUkwgKyAx LCAweDgzKTsNCj4gKwlkY3Nfd3JpdGVfY21kX2F0KGRldiwgTUNTX1JHQl9WSURfU0VULCAweDBF KTsNCj4gKwlkY3Nfd3JpdGVfY21kX2F0KGRldiwgTUNTX1BBTlNFVCwgMHgwMCwgMHgwMSk7DQo+ ICsNCj4gKwlkY3Nfd3JpdGVfY21kX2F0KGRldiwgTUNTX0dPQVZTVCwgMHg4NSwgMHgwMSwgMHgw MCwgMHg4NCwgMHgwMSwgMHgwMCk7DQo+ICsJZGNzX3dyaXRlX2NtZF9hdChkZXYsIE1DU19HT0FD TEtBMSwgMHgxOCwgMHgwNCwgMHgwMywgMHgzOSwgMHgwMCwgMHgwMCwNCj4gKwkJCSAweDAwLCAw eDE4LCAweDAzLCAweDAzLCAweDNBLCAweDAwLCAweDAwLCAweDAwKTsNCj4gKwlkY3Nfd3JpdGVf Y21kX2F0KGRldiwgTUNTX0dPQUNMS0EzLCAweDE4LCAweDAyLCAweDAzLCAweDNCLCAweDAwLCAw eDAwLA0KPiArCQkJIDB4MDAsIDB4MTgsIDB4MDEsIDB4MDMsIDB4M0MsIDB4MDAsIDB4MDAsIDB4 MDApOw0KPiArCWRjc193cml0ZV9jbWRfYXQoZGV2LCBNQ1NfR09BRUNMSywgMHgwMSwgMHgwMSwg MHgyMCwgMHgyMCwgMHgwMCwgMHgwMCwNCj4gKwkJCSAweDAxLCAweDAyLCAweDAwLCAweDAwKTsN Cj4gKw0KPiArCWRjc193cml0ZV9jbWRfYXQoZGV2LCBNQ1NfTk9fRE9DMiwgMHgwMCk7DQo+ICsN Cj4gKwlkY3Nfd3JpdGVfY21kX2F0KGRldiwgTUNTX1BBTkNUUkxTRVQxLCAwLCAwLCAwLCAwLCAw LCAwLCAwLCAwLCAwLCAwKTsNCj4gKwlkY3Nfd3JpdGVfY21kX2F0KGRldiwgTUNTX1BBTkNUUkxT RVQyLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLA0KPiArCQkJIDAsIDAsIDAsIDAsIDAp Ow0KPiArCWRjc193cml0ZV9jbWRfYXQoZGV2LCBNQ1NfUEFOQ1RSTFNFVDMsIDAsIDAsIDAsIDAs IDAsIDAsIDAsIDAsIDAsIDAsDQo+ICsJCQkgMCwgMCwgMCwgMCwgMCk7DQo+ICsJZGNzX3dyaXRl X2NtZF9hdChkZXYsIE1DU19QQU5DVFJMU0VUNCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwg MCk7DQo+ICsJZGNzX3dyaXRlX2NtZF9hdChkZXYsIE1DU19QQU5DVFJMU0VUNSwgMCwgNCwgNCwg NCwgNCwgNCwgMCwgMCwgMCwgMCwNCj4gKwkJCSAwLCAwLCAwLCAwLCAwKTsNCj4gKwlkY3Nfd3Jp dGVfY21kX2F0KGRldiwgTUNTX1BBTkNUUkxTRVQ2LCAwLCAwLCAwLCAwLCAwLCAwLCA0LCA0LCA0 LCA0LA0KPiArCQkJIDQsIDAsIDAsIDAsIDApOw0KPiArCWRjc193cml0ZV9jbWRfYXQoZGV2LCBN Q1NfUEFOQ1RSTFNFVDcsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDApOw0KPiArCWRjc193 cml0ZV9jbWRfYXQoZGV2LCBNQ1NfUEFOQ1RSTFNFVDgsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYs IDB4RkYsDQo+ICsJCQkgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRik7DQo+ICsNCj4gKwlk Y3Nfd3JpdGVfY21kX2F0KGRldiwgTUNTX1BBTlUyRDEsIDB4MDAsIDB4MjYsIDB4MDksIDB4MEIs IDB4MDEsIDB4MjUsDQo+ICsJCQkgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCk7DQo+ICsJZGNzX3dy aXRlX2NtZF9hdChkZXYsIE1DU19QQU5VMkQyLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAw LCAweDAwLA0KPiArCQkJIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MjYsIDB4MEEs IDB4MEMsIDB4MDIpOw0KPiArCWRjc193cml0ZV9jbWRfYXQoZGV2LCBNQ1NfUEFOVTJEMywgMHgy NSwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwNCj4gKwkJCSAweDAwLCAweDAwLCAweDAw LCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwKTsNCj4gKwlkY3Nfd3JpdGVfY21k X2F0KGRldiwgTUNTX1BBTkQyVTEsIDB4MDAsIDB4MjUsIDB4MEMsIDB4MEEsIDB4MDIsIDB4MjYs DQo+ICsJCQkgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCk7DQo+ICsJZGNzX3dyaXRlX2NtZF9hdChk ZXYsIE1DU19QQU5EMlUyLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLA0KPiAr CQkJIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MjUsIDB4MEIsIDB4MDksIDB4MDEp Ow0KPiArCWRjc193cml0ZV9jbWRfYXQoZGV2LCBNQ1NfUEFORDJVMywgMHgyNiwgMHgwMCwgMHgw MCwgMHgwMCwgMHgwMCwgMHgwMCwNCj4gKwkJCSAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAw LCAweDAwLCAweDAwLCAweDAwLCAweDAwKTsNCj4gKw0KPiArCWRjc193cml0ZV9jbWRfYXQoZGV2 LCBNQ1NfUFdSX0NUUkwxICsgMSwgMHg2Nik7DQo+ICsNCj4gKwlkY3Nfd3JpdGVfY21kX2F0KGRl diwgTUNTX05PX0RPQzMsIDB4MDYpOw0KPiArDQo+ICsJZGNzX3dyaXRlX2NtZF9hdChkZXYsIE1D U19HTUNUMl8yUCwgMHgwMCwgMHgwOSwgMHgwRiwgMHgwRSwgMHgwNywgMHgxMCwNCj4gKwkJCSAw eDBCLCAweDBBLCAweDA0LCAweDA3LCAweDBCLCAweDA4LCAweDBGLCAweDEwLCAweDBBLA0KPiAr CQkJIDB4MDEpOw0KPiArCWRjc193cml0ZV9jbWRfYXQoZGV2LCBNQ1NfR01DVDJfMk4sIDB4MDAs IDB4MDksIDB4MEYsIDB4MEUsIDB4MDcsIDB4MTAsDQo+ICsJCQkgMHgwQiwgMHgwQSwgMHgwNCwg MHgwNywgMHgwQiwgMHgwOCwgMHgwRiwgMHgxMCwgMHgwQSwNCj4gKwkJCSAweDAxKTsNCj4gKw0K PiArCS8qIEV4aXQgQ01EMiAqLw0KPiArCWRjc193cml0ZV9jbWRfYXQoZGV2LCBNQ1NfQ01EMl9F TkExLCAweEZGLCAweEZGLCAweEZGKTsNCj4gKw0KPiArCXJldCA9ICBtaXBpX2RzaV9kY3Nfbm9w KGRldmljZSk7DQo+ICsJaWYgKHJldCkNCj4gKwkJcmV0dXJuIHJldDsNCj4gKw0KPiArCXJldCA9 IG1pcGlfZHNpX2Rjc19leGl0X3NsZWVwX21vZGUoZGV2aWNlKTsNCj4gKwlpZiAocmV0KQ0KPiAr CQlyZXR1cm4gcmV0Ow0KPiArDQo+ICsJLyogV2FpdCBmb3Igc2xlZXAgb3V0IGV4aXQgKi8NCj4g KwltZGVsYXkoMTIwKTsNCj4gKw0KPiArCS8qIERlZmF1bHQgcG9ydHJhaXQgNDgweDgwMCByZ2Iy NCAqLw0KPiArCWRjc193cml0ZV9zZXEoZGV2LCBNSVBJX0RDU19TRVRfQUREUkVTU19NT0RFLCAw eDAwKTsNCj4gKw0KPiArCXJldCA9ICBtaXBpX2RzaV9kY3Nfc2V0X2NvbHVtbl9hZGRyZXNzKGRl dmljZSwgMCwgNDc5KTsNCj4gKwlpZiAocmV0KQ0KPiArCQlyZXR1cm4gcmV0Ow0KPiArDQo+ICsJ cmV0ID0gIG1pcGlfZHNpX2Rjc19zZXRfcGFnZV9hZGRyZXNzKGRldmljZSwgMCwgNzk5KTsNCj4g KwlpZiAocmV0KQ0KPiArCQlyZXR1cm4gcmV0Ow0KPiArDQo+ICsJLyogU2VlIG90bTgwMDlhIGRy aXZlciBkb2N1bWVudGF0aW9uIGZvciBwaXhlbCBmb3JtYXQgZGVzY3JpcHRpb25zICovDQo+ICsJ cmV0ID0gIG1pcGlfZHNpX2Rjc19zZXRfcGl4ZWxfZm9ybWF0KGRldmljZSwgTUlQSV9EQ1NfUElY RUxfRk1UXzI0QklUIHwNCj4gKwkJCQkJICAgICBNSVBJX0RDU19QSVhFTF9GTVRfMjRCSVQgPDwg NCk7DQo+ICsJaWYgKHJldCkNCj4gKwkJcmV0dXJuIHJldDsNCj4gKw0KPiArCS8qIERpc2FibGUg Q0FCQyBmZWF0dXJlICovDQo+ICsJZGNzX3dyaXRlX3NlcShkZXYsIE1JUElfRENTX1dSSVRFX1BP V0VSX1NBVkUsIDB4MDApOw0KPiArDQo+ICsJcmV0ID0gbWlwaV9kc2lfZGNzX3NldF9kaXNwbGF5 X29uKGRldmljZSk7DQo+ICsJaWYgKHJldCkNCj4gKwkJcmV0dXJuIHJldDsNCj4gKw0KPiArCXJl dCA9IG1pcGlfZHNpX2Rjc19ub3AoZGV2aWNlKTsNCj4gKwlpZiAocmV0KQ0KPiArCQlyZXR1cm4g cmV0Ow0KPiArDQo+ICsJLyogU2VuZCBDb21tYW5kIEdSQU0gbWVtb3J5IHdyaXRlIChubyBwYXJh bWV0ZXJzKSAqLw0KPiArCWRjc193cml0ZV9zZXEoZGV2LCBNSVBJX0RDU19XUklURV9NRU1PUllf U1RBUlQpOw0KPiArDQo+ICsJcmV0dXJuIDA7DQo+ICt9DQo+ICsNCj4gK3N0YXRpYyBpbnQgb3Rt ODAwOWFfcGFuZWxfZW5hYmxlX2JhY2tsaWdodChzdHJ1Y3QgdWRldmljZSAqZGV2KQ0KPiArew0K PiArCXN0cnVjdCBtaXBpX2RzaV9wYW5lbF9wbGF0ICpwbGF0ID0gZGV2X2dldF9wbGF0ZGF0YShk ZXYpOw0KPiArCXN0cnVjdCBtaXBpX2RzaV9kZXZpY2UgKmRldmljZSA9IHBsYXQtPmRldmljZTsN Cj4gKwlpbnQgcmV0Ow0KPiArDQo+ICsJZGV2aWNlLT5sYW5lcyA9IDI7DQo+ICsJZGV2aWNlLT5m b3JtYXQgPSBNSVBJX0RTSV9GTVRfUkdCODg4Ow0KPiArCWRldmljZS0+bW9kZV9mbGFncyA9IE1J UElfRFNJX01PREVfVklERU8gfA0KPiArCQkJICAgICBNSVBJX0RTSV9NT0RFX1ZJREVPX0JVUlNU IHwNCj4gKwkJCSAgICAgTUlQSV9EU0lfTU9ERV9MUE07DQo+ICsNCj4gKwlyZXQgPSBtaXBpX2Rz aV9hdHRhY2goZGV2aWNlKTsNCj4gKwlpZiAocmV0IDwgMCkNCj4gKwkJcmV0dXJuIHJldDsNCj4g Kw0KPiArCXByX2luZm8oIiVzOiBpbml0aWFsaXplIHBhbmVsXG4iLCBfX2Z1bmNfXyk7DQoNCklz IGl0IHVzZWZ1bCB0byBwcmludCB0aGlzIGVhY2ggdGltZSB0aGUgYmFja2xpZ3RoIGlzIGVuYWJs ZWQgPw0KDQo+ICsJcmV0ID0gb3RtODAwOWFfaW5pdF9zZXF1ZW5jZShkZXYpOw0KPiArCWlmIChy ZXQpDQo+ICsJCXJldHVybiByZXQ7DQo+ICsNCj4gKwkvKg0KPiArCSAqIFBvd2VyIG9uIHRoZSBi YWNrbGlnaHQgd2l0aCB0aGUgcmVxdWVzdGVkIGJyaWdodG5lc3MNCj4gKwkgKiBOb3RlIFdlIGNh biBub3QgdXNlIG1pcGlfZHNpX2Rjc19zZXRfZGlzcGxheV9icmlnaHRuZXNzKCkNCj4gKwkgKiBh cyBvdG04MDA5YSBkcml2ZXIgc3VwcG9ydCBvbmx5IDgtYml0IGJyaWdodG5lc3MgKDEgcGFyYW0p Lg0KPiArCSAqLw0KPiArCXByX2luZm8oIiVzOiBzdGFydCwgYmFja2xpZ2h0XG4iLCBfX2Z1bmNf Xyk7DQoNCmRpdHRvDQoNCj4gKw0KPiArCWRjc193cml0ZV9zZXEoZGV2LCBNSVBJX0RDU19TRVRf RElTUExBWV9CUklHSFRORVNTLA0KPiArCQkgICAgICBPVE04MDA5QV9CQUNLTElHSFRfREVGQVVM VCk7DQo+ICsNCj4gKwkvKiBVcGRhdGUgQnJpZ2h0bmVzcyBDb250cm9sICYgQmFja2xpZ2h0ICov DQo+ICsJZGNzX3dyaXRlX3NlcShkZXYsIE1JUElfRENTX1dSSVRFX0NPTlRST0xfRElTUExBWSwg MHgyNCk7DQo+ICsNCj4gKwkvKiAgbmVlZCB0byB3YWl0IGEgZmV3IHRpbWUgYmVmb3JlIHNldCB0 aGUgRFNJIGJyaWRnZSBpbiB2aWRlbyBtb2RlICovDQo+ICsJbWRlbGF5KDEwKTsNCj4gKw0KPiAr CXJldHVybiAwOw0KPiArfQ0KPiArDQo+ICtzdGF0aWMgaW50IG90bTgwMDlhX3BhbmVsX29mZGF0 YV90b19wbGF0ZGF0YShzdHJ1Y3QgdWRldmljZSAqZGV2KQ0KPiArew0KPiArCXN0cnVjdCBvdG04 MDA5YV9wYW5lbF9wcml2ICpwcml2ID0gZGV2X2dldF9wcml2KGRldik7DQo+ICsJaW50IHJldDsN Cj4gKw0KPiArCWlmIChJU19FTkFCTEVEKENPTkZJR19ETV9SRUdVTEFUT1IpKSB7DQo+ICsJCXJl dCA9IHVjbGFzc19nZXRfZGV2aWNlX2J5X3BoYW5kbGUoVUNMQVNTX1JFR1VMQVRPUiwgZGV2LA0K PiArCQkJCQkJICAgInBvd2VyLXN1cHBseSIsICZwcml2LT5yZWcpOw0KPiArCQlpZiAocmV0KSB7 DQo+ICsJCQlwcl9lcnIoIiVzOiBXYXJuaW5nOiBjYW5ub3QgZ2V0IHBvd2VyIHN1cHBseVxuIiwN Cj4gKwkJCSAgICAgICBfX2Z1bmNfXyk7DQoNCmRldl9lcnIoKQ0KDQo+ICsJCQlpZiAocmV0ICE9 IC1FTk9FTlQpDQo+ICsJCQkJcmV0dXJuIHJldDsNCj4gKwkJfQ0KPiArCX0NCj4gKw0KPiArCXJl dCA9IGdwaW9fcmVxdWVzdF9ieV9uYW1lKGRldiwgInJlc2V0LWdwaW9zIiwgMCwgJnByaXYtPnJl c2V0LA0KPiArCQkJCSAgIEdQSU9EX0lTX09VVCk7DQo+ICsJaWYgKHJldCkgew0KPiArCQlwcl9l cnIoIiVzOiBXYXJuaW5nOiBjYW5ub3QgZ2V0IHJlc2V0IEdQSU9cbiIsIF9fZnVuY19fKTsNCg0K ZGl0dG8NCg0KPiArCQlpZiAocmV0ICE9IC1FTk9FTlQpDQo+ICsJCQlyZXR1cm4gcmV0Ow0KPiAr CX0NCj4gKw0KPiArCS8qIHJlc2V0IHBhbmVsIG11c3QgYmUgZG9uZSBiZWZvcmUgcHJvYmUgKi8N Cj4gKwlkbV9ncGlvX3NldF92YWx1ZSgmcHJpdi0+cmVzZXQsIHRydWUpOw0KPiArDQo+ICsJcmV0 dXJuIDA7DQo+ICt9DQo+ICsNCj4gK3N0YXRpYyBpbnQgb3RtODAwOWFfcGFuZWxfcHJvYmUoc3Ry dWN0IHVkZXZpY2UgKmRldikNCj4gK3sNCj4gKwlzdHJ1Y3Qgb3RtODAwOWFfcGFuZWxfcHJpdiAq cHJpdiA9IGRldl9nZXRfcHJpdihkZXYpOw0KPiArCWludCByZXQ7DQo+ICsNCj4gKwlpZiAoSVNf RU5BQkxFRChDT05GSUdfRE1fUkVHVUxBVE9SKSAmJiBwcml2LT5yZWcpIHsNCj4gKwkJcHJfZXJy KCIlczogRW5hYmxlIHJlZ3VsYXRvciAnJXMnXG4iLCBfX2Z1bmNfXywNCj4gKwkJICAgICAgIHBy aXYtPnJlZy0+bmFtZSk7DQoNCmRlYnVnKCkgPw0KDQo+ICsJCXJldCA9IHJlZ3VsYXRvcl9zZXRf ZW5hYmxlKHByaXYtPnJlZywgdHJ1ZSk7DQo+ICsJCWlmIChyZXQpDQo+ICsJCQlyZXR1cm4gcmV0 Ow0KPiArCX0NCj4gKw0KPiArCWRtX2dwaW9fc2V0X3ZhbHVlKCZwcml2LT5yZXNldCwgZmFsc2Up Ow0KPiArDQo+ICsJcmV0dXJuIDA7DQo+ICt9DQo+ICsNCj4gK3N0YXRpYyBjb25zdCBzdHJ1Y3Qg cGFuZWxfb3BzIG90bTgwMDlhX3BhbmVsX29wcyA9IHsNCj4gKwkuZW5hYmxlX2JhY2tsaWdodCA9 IG90bTgwMDlhX3BhbmVsX2VuYWJsZV9iYWNrbGlnaHQsDQo+ICt9Ow0KPiArDQo+ICtzdGF0aWMg Y29uc3Qgc3RydWN0IHVkZXZpY2VfaWQgb3RtODAwOWFfcGFuZWxfaWRzW10gPSB7DQo+ICsJeyAu Y29tcGF0aWJsZSA9ICJvcmlzZXRlY2gsb3RtODAwOWEiIH0sDQo+ICsJeyB9DQo+ICt9Ow0KPiAr DQo+ICtVX0JPT1RfRFJJVkVSKG90bTgwMDlhX3BhbmVsKSA9IHsNCj4gKwkubmFtZQkJCSAgPSAi b3RtODAwOWFfcGFuZWwiLA0KPiArCS5pZAkJCSAgPSBVQ0xBU1NfUEFORUwsDQo+ICsJLm9mX21h dGNoCQkgID0gb3RtODAwOWFfcGFuZWxfaWRzLA0KPiArCS5vcHMJCQkgID0gJm90bTgwMDlhX3Bh bmVsX29wcywNCj4gKwkub2ZkYXRhX3RvX3BsYXRkYXRhCSAgPSBvdG04MDA5YV9wYW5lbF9vZmRh dGFfdG9fcGxhdGRhdGEsDQo+ICsJLnByb2JlCQkJICA9IG90bTgwMDlhX3BhbmVsX3Byb2JlLA0K PiArCS5wbGF0ZGF0YV9hdXRvX2FsbG9jX3NpemUgPSBzaXplb2Yoc3RydWN0IG1pcGlfZHNpX3Bh bmVsX3BsYXQpLA0KPiArCS5wcml2X2F1dG9fYWxsb2Nfc2l6ZQk9IHNpemVvZihzdHJ1Y3Qgb3Rt ODAwOWFfcGFuZWxfcHJpdiksDQo+ICt9Ow0KPiA=