From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-11.7 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS, UNWANTED_LANGUAGE_BODY autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 0573EC636C9 for ; Thu, 15 Jul 2021 21:50:15 +0000 (UTC) Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id B230F613D3 for ; Thu, 15 Jul 2021 21:50:14 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org B230F613D3 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=ideasonboard.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:References: Message-ID:Subject:Cc:To:From:Date:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=REyo6NAqMe2yomwGGY0Q9uxPBtaZYTutTTE+VAX2NEg=; b=LXJAsBno9HSKfE ISYK4YChpSI5jpE3ZDQL1bqyaUycCQhB5rUknu2RX6MzFg0RW1b4tqGCE1zaQDu4zmdCiECM/s7tt cQV6lN/H1niK/Flfb7FQjQBtQxCHP+zbjOFicvWpN5JFmF4pAPS26bn8OEr1IDjceQJaj526LRpwm TD9br6F4XRZeFmOwBn6DpEnn0xU8Wk5IYqGTd+BjU8fFLXCn98MtH5hWDGAmQ0c5YR7aybpePtYVH 3JpN6/QQKjlkpyxiQSjHHl9XoWsWiNWlBivDGq5iKND4KUP/q9NTjscgs9bJJ39HWeShIjla+kHzp 6YdT19ACemEpRgQpmswQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1m49DH-002OsE-7p; Thu, 15 Jul 2021 21:48:11 +0000 Received: from perceval.ideasonboard.com ([213.167.242.64]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1m49DB-002Or7-LK for linux-arm-kernel@lists.infradead.org; Thu, 15 Jul 2021 21:48:08 +0000 Received: from pendragon.ideasonboard.com (62-78-145-57.bb.dnainternet.fi [62.78.145.57]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id AE6E1340; Thu, 15 Jul 2021 23:48:00 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1626385680; bh=3f7mh8euXbSQN6HcGF3I1ESl67jUlkhy/OhQpoacxLo=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=EYcJl6FJhUAjs53UwnNFKnVlzYZhlfyuszTwoajZ6WCBfAqyEWb/VYhvID6A/4Ant ixTqCiKSisrfqc1BNBbpxWGSzVzhSNECiU9jQ+2ubkei9YwQXE1ZDBl3KrdBXjB2zb 7fUQqlsnr8kSYXK3IVasqoAmri9JxhGSNB6H8Acs= Date: Fri, 16 Jul 2021 00:47:59 +0300 From: Laurent Pinchart To: Martin Kepplinger Cc: festevam@gmail.com, krzk@kernel.org, devicetree@vger.kernel.org, kernel@pengutronix.de, kernel@puri.sm, linux-arm-kernel@lists.infradead.org, linux-imx@nxp.com, linux-kernel@vger.kernel.org, linux-media@vger.kernel.org, linux-staging@lists.linux.dev, m.felsch@pengutronix.de, mchehab@kernel.org, phone-devel@vger.kernel.org, robh@kernel.org, shawnguo@kernel.org, slongerbeam@gmail.com Subject: Re: [PATCH v6 2/3] media: imx: add a driver for i.MX8MQ mipi csi rx phy and controller Message-ID: References: <20210714111931.324485-1-martin.kepplinger@puri.sm> <20210714111931.324485-3-martin.kepplinger@puri.sm> <33f9ab8ea253c01d3311346bc871d7f62213215f.camel@puri.sm> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <33f9ab8ea253c01d3311346bc871d7f62213215f.camel@puri.sm> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20210715_144806_036113_CB46A66B X-CRM114-Status: GOOD ( 39.49 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org SGkgTWFydGluLAoKT24gVGh1LCBKdWwgMTUsIDIwMjEgYXQgMDg6NDk6NTFBTSArMDIwMCwgTWFy dGluIEtlcHBsaW5nZXIgd3JvdGU6Cj4gQW0gTWl0dHdvY2gsIGRlbSAxNC4wNy4yMDIxIHVtIDIx OjI0ICswMzAwIHNjaHJpZWIgTGF1cmVudCBQaW5jaGFydDoKPiA+IEhpIE1hcnRpbiwKPiA+IAo+ ID4gVGhhbmsgeW91IGZvciB0aGUgcGF0Y2guCj4gCj4gdGhhbmsgeW91IGZvciByZXZpZXdpbmcu Cj4gCj4gPiBPbiBXZWQsIEp1bCAxNCwgMjAyMSBhdCAwMToxOTozMFBNICswMjAwLCBNYXJ0aW4g S2VwcGxpbmdlciB3cm90ZToKPiA+ID4gQWRkIGEgZHJpdmVyIHRvIHN1cHBvcnQgdGhlIGkuTVg4 TVEgTUlQSSBDU0kgcmVjZWl2ZXIuIFRoZSBoYXJkd2FyZQo+ID4gPiBzaWRlCj4gPiA+IGlzIGJh c2VkIG9uCj4gPiA+ICAKPiA+ID4gaHR0cHM6Ly9zb3VyY2UuY29kZWF1cm9yYS5vcmcvZXh0ZXJu YWwvaW14L2xpbnV4LWlteC90cmVlL2RyaXZlcnMvbWVkaWEvcGxhdGZvcm0vaW14OC9teGMtbWlw aS1jc2kyX3lhdi5jP2g9aW14XzUuNC43MF8yLjMuMAo+ID4gPiAKPiA+ID4gSXQncyBidWlsdCBh cyBwYXJ0IG9mIFZJREVPX0lNWDdfQ1NJIGJlY2F1c2UgdGhhdCdzIGRvY3VtZW50ZWQgdG8KPiA+ ID4gc3VwcG9ydAo+ID4gPiBpLk1YOE0gcGxhdGZvcm1zLiBUaGlzIGRyaXZlciBhZGRzIGkuTVg4 TVEgc3VwcG9ydCB3aGVyZSBjdXJyZW50bHkKPiA+ID4gb25seSB0aGUKPiA+ID4gaS5NWDhNTSBw bGF0Zm9ybSBoYXMgYmVlbiBzdXBwb3J0ZWQuCj4gPiA+IAo+ID4gPiBTaWduZWQtb2ZmLWJ5OiBN YXJ0aW4gS2VwcGxpbmdlciA8bWFydGluLmtlcHBsaW5nZXJAcHVyaS5zbT4KPiA+ID4gLS0tCj4g PiA+IMKgZHJpdmVycy9zdGFnaW5nL21lZGlhL2lteC9NYWtlZmlsZcKgwqDCoMKgwqDCoMKgwqDC oMKgIHzCoMKgIDEgKwo+ID4gPiDCoGRyaXZlcnMvc3RhZ2luZy9tZWRpYS9pbXgvaW14OG1xLW1p cGktY3NpMi5jIHwgOTQ5Cj4gPiA+ICsrKysrKysrKysrKysrKysrKysKPiA+ID4gwqAyIGZpbGVz IGNoYW5nZWQsIDk1MCBpbnNlcnRpb25zKCspCj4gPiA+IMKgY3JlYXRlIG1vZGUgMTAwNjQ0IGRy aXZlcnMvc3RhZ2luZy9tZWRpYS9pbXgvaW14OG1xLW1pcGktY3NpMi5jCj4gPiA+IAo+ID4gPiBk aWZmIC0tZ2l0IGEvZHJpdmVycy9zdGFnaW5nL21lZGlhL2lteC9NYWtlZmlsZQo+ID4gPiBiL2Ry aXZlcnMvc3RhZ2luZy9tZWRpYS9pbXgvTWFrZWZpbGUKPiA+ID4gaW5kZXggNmFjMzMyNzVjYzk3 Li4xOWMyZmM1NGQ0MjQgMTAwNjQ0Cj4gPiA+IC0tLSBhL2RyaXZlcnMvc3RhZ2luZy9tZWRpYS9p bXgvTWFrZWZpbGUKPiA+ID4gKysrIGIvZHJpdmVycy9zdGFnaW5nL21lZGlhL2lteC9NYWtlZmls ZQo+ID4gPiBAQCAtMTYsMyArMTYsNCBAQCBvYmotJChDT05GSUdfVklERU9fSU1YX0NTSSkgKz0g aW14Ni1taXBpLWNzaTIubwo+ID4gPiDCoAo+ID4gPiDCoG9iai0kKENPTkZJR19WSURFT19JTVg3 X0NTSSkgKz0gaW14Ny1tZWRpYS1jc2kubwo+ID4gPiDCoG9iai0kKENPTkZJR19WSURFT19JTVg3 X0NTSSkgKz0gaW14Ny1taXBpLWNzaXMubwo+ID4gPiArb2JqLSQoQ09ORklHX1ZJREVPX0lNWDdf Q1NJKSArPSBpbXg4bXEtbWlwaS1jc2kyLm8KPiA+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvc3Rh Z2luZy9tZWRpYS9pbXgvaW14OG1xLW1pcGktY3NpMi5jCj4gPiA+IGIvZHJpdmVycy9zdGFnaW5n L21lZGlhL2lteC9pbXg4bXEtbWlwaS1jc2kyLmMKPiA+ID4gbmV3IGZpbGUgbW9kZSAxMDA2NDQK PiA+ID4gaW5kZXggMDAwMDAwMDAwMDAwLi45NDliM2VmN2EyMGEKPiA+ID4gLS0tIC9kZXYvbnVs bAo+ID4gPiArKysgYi9kcml2ZXJzL3N0YWdpbmcvbWVkaWEvaW14L2lteDhtcS1taXBpLWNzaTIu Ywo+ID4gPiBAQCAtMCwwICsxLDk0OSBAQAo+ID4gPiArLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZp ZXI6IEdQTC0yLjAKPiA+ID4gKy8qCj4gPiA+ICsgKiBGcmVlc2NhbGUgaS5NWDhNUSBTb0Mgc2Vy aWVzIE1JUEktQ1NJMiByZWNlaXZlciBkcml2ZXIKPiA+IAo+ID4gTWF5YmUgdGhleSBzaG91bGQg YmUgY2FsbGVkIE5YUCB0aGVzZSBkYXlzIDotKQo+ID4gCj4gPiA+ICsgKgo+ID4gPiArICogQ29w eXJpZ2h0IChDKSAyMDIxIFB1cmlzbSBTUEMKPiA+ID4gKyAqLwo+ID4gPiArCj4gPiA+ICsjaW5j bHVkZSA8bGludXgvY2xrLmg+Cj4gPiA+ICsjaW5jbHVkZSA8bGludXgvZGVsYXkuaD4KPiA+ID4g KyNpbmNsdWRlIDxsaW51eC9lcnJuby5oPgo+ID4gPiArI2luY2x1ZGUgPGxpbnV4L2ludGVyY29u bmVjdC5oPgo+ID4gPiArI2luY2x1ZGUgPGxpbnV4L2ludGVycnVwdC5oPgo+ID4gPiArI2luY2x1 ZGUgPGxpbnV4L2lvLmg+Cj4gPiA+ICsjaW5jbHVkZSA8bGludXgva2VybmVsLmg+Cj4gPiA+ICsj aW5jbHVkZSA8bGludXgvbWZkL3N5c2Nvbi5oPgo+ID4gPiArI2luY2x1ZGUgPGxpbnV4L21vZHVs ZS5oPgo+ID4gPiArI2luY2x1ZGUgPGxpbnV4L211dGV4Lmg+Cj4gPiA+ICsjaW5jbHVkZSA8bGlu dXgvb2YuaD4KPiA+ID4gKyNpbmNsdWRlIDxsaW51eC9vZl9kZXZpY2UuaD4KPiA+ID4gKyNpbmNs dWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4KPiA+ID4gKyNpbmNsdWRlIDxsaW51eC9wbV9y dW50aW1lLmg+Cj4gPiA+ICsjaW5jbHVkZSA8bGludXgvcmVnbWFwLmg+Cj4gPiA+ICsjaW5jbHVk ZSA8bGludXgvcmVndWxhdG9yL2NvbnN1bWVyLmg+Cj4gPiA+ICsjaW5jbHVkZSA8bGludXgvcmVz ZXQuaD4KPiA+ID4gKyNpbmNsdWRlIDxsaW51eC9zcGlubG9jay5oPgo+ID4gPiArCj4gPiA+ICsj aW5jbHVkZSA8bWVkaWEvdjRsMi1jb21tb24uaD4KPiA+ID4gKyNpbmNsdWRlIDxtZWRpYS92NGwy LWRldmljZS5oPgo+ID4gPiArI2luY2x1ZGUgPG1lZGlhL3Y0bDItZndub2RlLmg+Cj4gPiA+ICsj aW5jbHVkZSA8bWVkaWEvdjRsMi1tYy5oPgo+ID4gPiArI2luY2x1ZGUgPG1lZGlhL3Y0bDItc3Vi ZGV2Lmg+Cj4gPiA+ICsKPiA+ID4gKyNkZWZpbmUgTUlQSV9DU0kyX0RSSVZFUl9OQU1FwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgImlteDhtcS1taXBpLWNzaTIiCj4gPiA+ICsj ZGVmaW5lCj4gPiA+IE1JUElfQ1NJMl9TVUJERVZfTkFNRcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoE1JUElfQ1NJMl9EUklWRVJfTkFNRQo+ID4gPiArCj4gPiA+ICsjZGVmaW5l IE1JUElfQ1NJMl9QQURfU0lOS8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoDAKPiA+ID4gKyNkZWZpbmUgTUlQSV9DU0kyX1BBRF9TT1VSQ0XCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoDEKPiA+ID4gKyNkZWZpbmUgTUlQSV9DU0kyX1BBRFNfTlVN wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgMgo+ID4gPiArCj4gPiA+ ICsjZGVmaW5lIE1JUElfQ1NJMl9ERUZfUElYX1dJRFRIwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgNjQwCj4gPiA+ICsjZGVmaW5lIE1JUElfQ1NJMl9ERUZf UElYX0hFSUdIVMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoDQ4MAo+ID4gPiArCj4gPiA+ ICsvKiBSZWdpc3RlciBtYXAgZGVmaW5pdGlvbiAqLwo+ID4gPiArCj4gPiA+ICsvKiBpLk1YOE1R IENTSS0yIGNvbnRyb2xsZXIgQ1NSICovCj4gPiA+ICsjZGVmaW5lIENTSTJSWF9DRkdfTlVNX0xB TkVTwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAweDEwMAo+ID4gPiArI2Rl ZmluZSBDU0kyUlhfQ0ZHX0RJU0FCTEVfREFUQV9MQU5FU8KgwqDCoMKgwqDCoMKgwqDCoMKgMHgx MDQKPiA+ID4gKyNkZWZpbmUgQ1NJMlJYX0JJVF9FUlLCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoDB4MTA4Cj4gPiA+ICsjZGVmaW5lIENTSTJSWF9JUlFf U1RBVFVTwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAweDEwYwo+ ID4gPiArI2RlZmluZSBDU0kyUlhfSVJRX01BU0vCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgMHgxMTAKPiA+ID4gKyNkZWZpbmUg Q1NJMlJYX0lSUV9NQVNLX0FMTMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqAweDFmZgo+ID4gPiArI2RlZmluZSBDU0kyUlhfSVJRX01BU0tfVUxQU19TVEFUVVNfQ0hBTkdF wqDCoMKgwqDCoDB4OAo+ID4gPiArI2RlZmluZSBDU0kyUlhfVUxQU19TVEFUVVPCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAweDExNAo+ID4gPiArI2RlZmluZSBDU0ky UlhfUFBJX0VSUlNPVF9IU8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgMHgx MTgKPiA+ID4gKyNkZWZpbmUgQ1NJMlJYX1BQSV9FUlJTT1RTWU5DX0hTwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgMHgxMWMKPiA+ID4gKyNkZWZpbmUgQ1NJMlJYX1BQSV9FUlJFU0PCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoDB4MTIwCj4gPiA+ICsjZGVm aW5lIENTSTJSWF9QUElfRVJSU1lOQ0VTQ8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoDB4MTI0Cj4gPiA+ICsjZGVmaW5lIENTSTJSWF9QUElfRVJSQ09OVFJPTMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoDB4MTI4Cj4gPiA+ICsjZGVmaW5lIENTSTJSWF9DRkdf RElTQUJMRV9QQVlMT0FEXzDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgMHgxMmMKPiA+ID4gKyNkZWZp bmUgQ1NJMlJYX0NGR19WSURfUF9GSUZPX1NFTkRfTEVWRUzCoMKgwqDCoMKgwqDCoDB4MTg4Cj4g PiA+ICsjZGVmaW5lIENTSTJSWF9DRkdfRElTQUJMRV9QQVlMT0FEXzHCoMKgwqDCoMKgwqDCoMKg wqDCoMKgMHgxMzAKPiA+ID4gKwo+ID4gPiArZW51bSB7Cj4gPiA+ICvCoMKgwqDCoMKgwqDCoFNU X1BPV0VSRUTCoMKgwqDCoMKgwqA9IDEsCj4gPiA+ICvCoMKgwqDCoMKgwqDCoFNUX1NUUkVBTUlO R8KgwqDCoMKgPSAyLAo+ID4gPiArwqDCoMKgwqDCoMKgwqBTVF9TVVNQRU5ERUTCoMKgwqDCoD0g NCwKPiA+ID4gK307Cj4gPiA+ICsKPiA+ID4gK3N0YXRpYyBjb25zdCBjaGFyICogY29uc3QgaW14 OG1xX21pcGlfY3NpX2Nsa19pZFtdID0gewo+ID4gPiArwqDCoMKgwqDCoMKgwqAiY29yZSIsCj4g PiA+ICvCoMKgwqDCoMKgwqDCoCJlc2MiLAo+ID4gPiArwqDCoMKgwqDCoMKgwqAidWkiLAo+ID4g PiArfTsKPiA+ID4gKwo+ID4gPiArI2RlZmluZSBDU0kyX05VTV9DTEtTwqDCoEFSUkFZX1NJWkUo aW14OG1xX21pcGlfY3NpX2Nsa19pZCkKPiA+ID4gKwo+ID4gPiArI2RlZmluZcKgwqDCoMKgwqDC oMKgwqBHUFJfQ1NJMl8xX1JYX0VOQUJMRcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoEJJVCgxMykK PiA+ID4gKyNkZWZpbmXCoMKgwqDCoMKgwqDCoMKgR1BSX0NTSTJfMV9WSURfSU5URkNfRU5CwqDC oMKgwqDCoMKgwqDCoEJJVCgxMikKPiA+ID4gKyNkZWZpbmXCoMKgwqDCoMKgwqDCoMKgR1BSX0NT STJfMV9IU0VMwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoEJJVCgxMCkKPiA+ID4g KyNkZWZpbmXCoMKgwqDCoMKgwqDCoMKgR1BSX0NTSTJfMV9DT05UX0NMS19NT0RFwqDCoMKgwqDC oMKgwqDCoEJJVCg4KQo+ID4gPiArI2RlZmluZcKgwqDCoMKgwqDCoMKgwqBHUFJfQ1NJMl8xX1Nf UFJHX1JYSFNfU0VUVExFKHgpwqAoKCh4KSAmIDB4M2YpIDw8IDIpCj4gPiA+ICsKPiA+ID4gKy8q Cj4gPiA+ICsgKiBUaGUgc2VuZCBsZXZlbCBjb25maWd1cmVzIHRoZSBudW1iZXIgb2YgZW50cmll cyB0aGF0IG11c3QKPiA+ID4gYWNjdW11bGF0ZSBpbgo+ID4gPiArICogdGhlIFBpeGVsIEZJRk8g YmVmb3JlIHRoZSBkYXRhIHdpbGwgYmUgdHJhbnNmZXJyZWQgdG8gdGhlIHZpZGVvCj4gPiA+IG91 dHB1dC4KPiA+ID4gKyAqIFNlZSAgCj4gPiA+IGh0dHBzOi8vY29tbXVuaXR5Lm54cC5jb20vdDUv aS1NWC1Qcm9jZXNzb3JzL0lNWDhNLU1JUEktQ1NJLUhvc3QtQ29udHJvbGxlci1zZW5kLWxldmVs L20tcC84NjQwMDUvaGlnaGxpZ2h0L3RydWUjTTEzMTcwNAo+ID4gPiArICovCj4gPiA+ICsjZGVm aW5lIENTSTJSWF9TRU5EX0xFVkVMwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqA2NAo+ID4gPiArCj4gPiA+ICtzdHJ1Y3QgY3NpX3N0YXRlIHsKPiA+ID4gK8KgwqDC oMKgwqDCoMKgc3RydWN0IGRldmljZSAqZGV2Owo+ID4gPiArwqDCoMKgwqDCoMKgwqB2b2lkIF9f aW9tZW0gKnJlZ3M7Cj4gPiA+ICvCoMKgwqDCoMKgwqDCoHN0cnVjdCBjbGtfYnVsa19kYXRhIGNs a3NbQ1NJMl9OVU1fQ0xLU107Cj4gPiA+ICvCoMKgwqDCoMKgwqDCoHN0cnVjdCByZXNldF9jb250 cm9sICpyc3Q7Cj4gPiA+ICvCoMKgwqDCoMKgwqDCoHN0cnVjdCByZWd1bGF0b3IgKm1pcGlfcGh5 X3JlZ3VsYXRvcjsKPiA+ID4gKwo+ID4gPiArwqDCoMKgwqDCoMKgwqBzdHJ1Y3QgdjRsMl9zdWJk ZXYgc2Q7Cj4gPiA+ICvCoMKgwqDCoMKgwqDCoHN0cnVjdCBtZWRpYV9wYWQgcGFkc1tNSVBJX0NT STJfUEFEU19OVU1dOwo+ID4gPiArwqDCoMKgwqDCoMKgwqBzdHJ1Y3QgdjRsMl9hc3luY19ub3Rp ZmllciBub3RpZmllcjsKPiA+ID4gK8KgwqDCoMKgwqDCoMKgc3RydWN0IHY0bDJfc3ViZGV2ICpz cmNfc2Q7Cj4gPiA+ICsKPiA+ID4gK8KgwqDCoMKgwqDCoMKgc3RydWN0IHY0bDJfZndub2RlX2J1 c19taXBpX2NzaTIgYnVzOwo+ID4gPiArCj4gPiA+ICvCoMKgwqDCoMKgwqDCoHN0cnVjdCBtdXRl eCBsb2NrOyAvKiBQcm90ZWN0IGNzaTJfZm10LCBmb3JtYXRfbWJ1cywgc3RhdGUsCj4gPiA+IGhz X3NldHRsZSovCj4gPiAKPiA+IE1pc3Npbmcgc3BhY2UgYmVmb3JlICovCj4gPiAKPiA+ID4gK8Kg wqDCoMKgwqDCoMKgY29uc3Qgc3RydWN0IGNzaTJfcGl4X2Zvcm1hdCAqY3NpMl9mbXQ7Cj4gPiA+ ICvCoMKgwqDCoMKgwqDCoHN0cnVjdCB2NGwyX21idXNfZnJhbWVmbXQgZm9ybWF0X21idXNbTUlQ SV9DU0kyX1BBRFNfTlVNXTsKPiA+ID4gK8KgwqDCoMKgwqDCoMKgdTMyIHN0YXRlOwo+ID4gPiAr wqDCoMKgwqDCoMKgwqB1MzIgaHNfc2V0dGxlOwo+ID4gPiArCj4gPiA+ICvCoMKgwqDCoMKgwqDC oHN0cnVjdCByZWdtYXAgKnBoeV9ncHI7Cj4gPiA+ICvCoMKgwqDCoMKgwqDCoHU4IHBoeV9ncHJf cmVnOwo+ID4gPiArCj4gPiA+ICvCoMKgwqDCoMKgwqDCoHN0cnVjdCBpY2NfcGF0aMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAqaWNjX3BhdGg7Cj4gPiA+ICvCoMKgwqDCoMKgwqDC oHMzMsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqBpY2NfcGF0aF9idzsKPiA+ID4gK307Cj4gPiA+ICsKPiA+ID4gKy8qIC0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ID4g PiAtLS0tLS0tLS0tLS0tLQo+ID4gPiArICogRm9ybWF0IGhlbHBlcnMKPiA+ID4gKyAqLwo+ID4g PiArCj4gPiA+ICtzdHJ1Y3QgY3NpMl9waXhfZm9ybWF0IHsKPiA+ID4gK8KgwqDCoMKgwqDCoMKg dTMyIGNvZGU7Cj4gPiA+ICvCoMKgwqDCoMKgwqDCoHU4IHdpZHRoOwo+ID4gPiArfTsKPiA+ID4g Kwo+ID4gPiArc3RhdGljIGNvbnN0IHN0cnVjdCBjc2kyX3BpeF9mb3JtYXQgaW14OG1xX21pcGlf Y3NpX2Zvcm1hdHNbXSA9IHsKPiA+ID4gK8KgwqDCoMKgwqDCoMKgLyogUkFXIChCYXllciBhbmQg Z3JleXNjYWxlKSBmb3JtYXRzLiAqLwo+ID4gPiArwqDCoMKgwqDCoMKgwqB7Cj4gPiA+ICvCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAuY29kZSA9IE1FRElBX0JVU19GTVRfU0JHR1I4XzFY OCwKPiA+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoC53aWR0aCA9IDgsCj4gPiA+ ICvCoMKgwqDCoMKgwqDCoH0sIHsKPiA+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oC5jb2RlID0gTUVESUFfQlVTX0ZNVF9TR0JSRzhfMVg4LAo+ID4gPiArwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgLndpZHRoID0gOCwKPiA+ID4gK8KgwqDCoMKgwqDCoMKgfSwgewo+ID4g PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgLmNvZGUgPSBNRURJQV9CVVNfRk1UX1NH UkJHOF8xWDgsCj4gPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAud2lkdGggPSA4 LAo+ID4gPiArwqDCoMKgwqDCoMKgwqB9LCB7Cj4gPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqAuY29kZSA9IE1FRElBX0JVU19GTVRfU1JHR0I4XzFYOCwKPiA+ID4gK8KgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoC53aWR0aCA9IDgsCj4gPiA+ICvCoMKgwqDCoMKgwqDCoH0s IHsKPiA+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoC5jb2RlID0gTUVESUFfQlVT X0ZNVF9ZOF8xWDgsCj4gPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAud2lkdGgg PSA4LAo+ID4gPiArwqDCoMKgwqDCoMKgwqB9LCB7Cj4gPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqAuY29kZSA9IE1FRElBX0JVU19GTVRfU0JHR1IxMF8xWDEwLAo+ID4gPiArwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgLndpZHRoID0gMTAsCj4gPiA+ICvCoMKgwqDCoMKg wqDCoH0sIHsKPiA+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoC5jb2RlID0gTUVE SUFfQlVTX0ZNVF9TR0JSRzEwXzFYMTAsCj4gPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqAud2lkdGggPSAxMCwKPiA+ID4gK8KgwqDCoMKgwqDCoMKgfSwgewo+ID4gPiArwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgLmNvZGUgPSBNRURJQV9CVVNfRk1UX1NHUkJHMTBfMVgx MCwKPiA+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoC53aWR0aCA9IDEwLAo+ID4g PiArwqDCoMKgwqDCoMKgwqB9LCB7Cj4gPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqAuY29kZSA9IE1FRElBX0JVU19GTVRfU1JHR0IxMF8xWDEwLAo+ID4gPiArwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgLndpZHRoID0gMTAsCj4gPiA+ICvCoMKgwqDCoMKgwqDCoH0sIHsK PiA+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoC5jb2RlID0gTUVESUFfQlVTX0ZN VF9ZMTBfMVgxMCwKPiA+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoC53aWR0aCA9 IDEwLAo+ID4gPiArwqDCoMKgwqDCoMKgwqB9LCB7Cj4gPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqAuY29kZSA9IE1FRElBX0JVU19GTVRfU0JHR1IxMl8xWDEyLAo+ID4gPiArwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgLndpZHRoID0gMTIsCj4gPiA+ICvCoMKgwqDCoMKg wqDCoH0sIHsKPiA+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoC5jb2RlID0gTUVE SUFfQlVTX0ZNVF9TR0JSRzEyXzFYMTIsCj4gPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqAud2lkdGggPSAxMiwKPiA+ID4gK8KgwqDCoMKgwqDCoMKgfSwgewo+ID4gPiArwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgLmNvZGUgPSBNRURJQV9CVVNfRk1UX1NHUkJHMTJfMVgx MiwKPiA+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoC53aWR0aCA9IDEyLAo+ID4g PiArwqDCoMKgwqDCoMKgwqB9LCB7Cj4gPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqAuY29kZSA9IE1FRElBX0JVU19GTVRfU1JHR0IxMl8xWDEyLAo+ID4gPiArwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgLndpZHRoID0gMTIsCj4gPiA+ICvCoMKgwqDCoMKgwqDCoH0sIHsK PiA+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoC5jb2RlID0gTUVESUFfQlVTX0ZN VF9ZMTJfMVgxMiwKPiA+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoC53aWR0aCA9 IDEyLAo+ID4gPiArwqDCoMKgwqDCoMKgwqB9LCB7Cj4gPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqAuY29kZSA9IE1FRElBX0JVU19GTVRfU0JHR1IxNF8xWDE0LAo+ID4gPiArwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgLndpZHRoID0gMTQsCj4gPiA+ICvCoMKgwqDCoMKg wqDCoH0sIHsKPiA+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoC5jb2RlID0gTUVE SUFfQlVTX0ZNVF9TR0JSRzE0XzFYMTQsCj4gPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqAud2lkdGggPSAxNCwKPiA+ID4gK8KgwqDCoMKgwqDCoMKgfSwgewo+ID4gPiArwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgLmNvZGUgPSBNRURJQV9CVVNfRk1UX1NHUkJHMTRfMVgx NCwKPiA+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoC53aWR0aCA9IDE0LAo+ID4g PiArwqDCoMKgwqDCoMKgwqB9LCB7Cj4gPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqAuY29kZSA9IE1FRElBX0JVU19GTVRfU1JHR0IxNF8xWDE0LAo+ID4gPiArwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgLndpZHRoID0gMTQsCj4gPiA+ICvCoMKgwqDCoMKgwqDCoH0sIHsK PiA+ID4gK8KgwqDCoMKgwqDCoMKgLyogWVVWIGZvcm1hdHMgKi8KPiA+ID4gK8KgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoC5jb2RlID0gTUVESUFfQlVTX0ZNVF9ZVVlWOF8yWDgsCj4gPiA+ ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAud2lkdGggPSAxNiwKPiA+ID4gK8KgwqDC oMKgwqDCoMKgfSwgewo+ID4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgLmNvZGUg PSBNRURJQV9CVVNfRk1UX1lVWVY4XzFYMTYsCj4gPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqAud2lkdGggPSAxNiwKPiA+ID4gK8KgwqDCoMKgwqDCoMKgfQo+ID4gPiArfTsKPiA+ ID4gKwo+ID4gPiArc3RhdGljIGNvbnN0IHN0cnVjdCBjc2kyX3BpeF9mb3JtYXQgKmZpbmRfY3Np Ml9mb3JtYXQodTMyIGNvZGUpCj4gPiA+ICt7Cj4gPiA+ICvCoMKgwqDCoMKgwqDCoHVuc2lnbmVk IGludCBpOwo+ID4gPiArCj4gPiA+ICvCoMKgwqDCoMKgwqDCoGZvciAoaSA9IDA7IGkgPCBBUlJB WV9TSVpFKGlteDhtcV9taXBpX2NzaV9mb3JtYXRzKTsgaSsrKQo+ID4gPiArwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgaWYgKGNvZGUgPT0gaW14OG1xX21pcGlfY3NpX2Zvcm1hdHNbaV0u Y29kZSkKPiA+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqByZXR1cm4gJmlteDhtcV9taXBpX2NzaV9mb3JtYXRzW2ldOwo+ID4gPiArwqDCoMKgwqDCoMKg wqByZXR1cm4gTlVMTDsKPiA+ID4gK30KPiA+ID4gKwo+ID4gPiArLyogLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gPiA+IC0t LS0tLS0tLS0tLS0tCj4gPiA+ICsgKiBIYXJkd2FyZSBjb25maWd1cmF0aW9uCj4gPiA+ICsgKi8K PiA+ID4gKwo+ID4gPiArc3RhdGljIGlubGluZSB2b2lkIGlteDhtcV9taXBpX2NzaV93cml0ZShz dHJ1Y3QgY3NpX3N0YXRlICpzdGF0ZSwKPiA+ID4gdTMyIHJlZywgdTMyIHZhbCkKPiA+ID4gK3sK PiA+ID4gK8KgwqDCoMKgwqDCoMKgd3JpdGVsKHZhbCwgc3RhdGUtPnJlZ3MgKyByZWcpOwo+ID4g PiArfQo+ID4gPiArCj4gPiA+ICtzdGF0aWMgaW50IGlteDhtcV9taXBpX2NzaV9zd19yZXNldChz dHJ1Y3QgY3NpX3N0YXRlICpzdGF0ZSkKPiA+ID4gK3sKPiA+ID4gK8KgwqDCoMKgwqDCoMKgaW50 IHJldDsKPiA+ID4gKwo+ID4gPiArwqDCoMKgwqDCoMKgwqByZXQgPSByZXNldF9jb250cm9sX2Fz c2VydChzdGF0ZS0+cnN0KTsKPiA+IAo+ID4gVGhhdCdzIHBlY3VsaWFyLCBpcyB0aGVyZSBubyBu ZWVkIHRvIGRlYXNzZXJ0IHJlc2V0ID8KPiAKPiBJIHRyaWVkIGRpZmZlcmVudCB0aGluZ3MgaGVy ZSB0aGF0IHdvdWxkIGxvb2sgbW9yZSBpbnR1aXRpdmUsIGJ1dCBpbgo+IHRoZSBlbmQgb25seSB0 aGlzIHdvcmtlZCwgd2hpY2ggaXMgZGlyZWN0bHkgdGFrZW4gZnJvbQo+IGh0dHBzOi8vc291cmNl LmNvZGVhdXJvcmEub3JnL2V4dGVybmFsL2lteC9saW51eC1pbXgvdHJlZS9kcml2ZXJzL21lZGlh L3BsYXRmb3JtL2lteDgvbXhjLW1pcGktY3NpMl95YXYuYz9oPWlteF81LjQuNzBfMi4zLjAjbjEw NQo+IChhY3R1YWwgcmVnaXN0ZXIgdmFsdWUgcmVhZCBmcm9tIERUKSB0aGF0IHJlc3VsdHMgaW4g ZXhhY3RseSB0aGUgc2FtZQo+IHJlZ2lzdGVyIGJpdHMgc2V0IGxpa2UgdGhpcyBhc3NlcnRhdGlv bi4KCkl0J3MgdmVyeSBsaWtlbHkgdGhhdCB0aGVzZSBhcmUgc2VsZi1jbGVhcmluZyByZXNldCBi aXRzLgoKSSB3b3VsZCBoYXZlIGFkdmljZWQgdXNpbmcgcmVzZXRfY29udHJvbF9hc3NlcnQoKSwg YnV0IGl0IGxvb2tzIGxpa2UgdGhlCnJlc2V0IGNvbnRyb2xsZXIgZHJpdmVyIGRvZXNuJ3Qgc3Vw cG9ydCB0aGF0IG9wZXJhdGlvbi4gQ291bGQgeW91IGFkZCBhCmNvbW1lbnQgaGVyZSB0byBleHBs YWluIHdoYXQncyBnb2luZyBvbiwgbWF5YmUgd2l0aCBhIG5vdGUgdG8gdGVsbCB0aGF0CnRoZSBy ZXNldC1pbXg3IGRyaXZlciBzaG91bGQgaW1wbGVtZW50IHRoZSAucmVzZXQoKSBvcGVyYXRpb24g PwoKLS0gClJlZ2FyZHMsCgpMYXVyZW50IFBpbmNoYXJ0CgpfX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXwpsaW51eC1hcm0ta2VybmVsIG1haWxpbmcgbGlzdAps aW51eC1hcm0ta2VybmVsQGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cDovL2xpc3RzLmluZnJhZGVh ZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1hcm0ta2VybmVsCg==