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 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 smtp.lore.kernel.org (Postfix) with ESMTPS id 291A5CD5BAC for ; Thu, 21 May 2026 12:49:50 +0000 (UTC) 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:MIME-Version:Reply-To:List-Subscribe: List-Help:List-Post:List-Archive:List-Unsubscribe:List-Id:Message-Id:Date: References:In-Reply-To:Cc:To:Subject:From:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=T034dsnnqEgN94oMhstCNM8VgcqgyP1irbdJ+fS9u34=; b=ww49ODY96xQ4i6 3d8bPTxoZddQxteG8AnVEiA64rUzzHaaC2p2ZYI9ah5DuXzz7/thmWO/SuEh1rLW63WnYe28uDPHV Zh/IPCDEgUs8OjQckzci1hSnDozSyF5GJeyAzBGmhTX2BNC0I+PL2beIJpHaLbTeoqBfzNVtoh+HK FjmXXC4eJDtCzHA0gNs3n3SR7GDSilSFoyNqfqnt+J6pqqbyUCOql0lTNiXYt34McGOm4HWSA8/RR MNBL/r7GoSuzC4R6/fA9ieFKWvaWnKgPTU9M83AAy/6VfSLb8mYnOasF9/5/lnJlYwMnSuZx5j6+h w9nabi8mZVwC05cQb4JQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.99.1 #2 (Red Hat Linux)) id 1wQ2qT-00000007m40-3mLN; Thu, 21 May 2026 12:49:49 +0000 Received: from tor.source.kernel.org ([172.105.4.254]) by bombadil.infradead.org with esmtps (Exim 4.99.1 #2 (Red Hat Linux)) id 1wQ2qS-00000007m3W-2DGs for linux-phy@lists.infradead.org; Thu, 21 May 2026 12:49:48 +0000 Received: from smtp.kernel.org (quasi.space.kernel.org [100.103.45.18]) by tor.source.kernel.org (Postfix) with ESMTP id 0152D601F4; Thu, 21 May 2026 12:49:48 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 4BE4B1F000E9; Thu, 21 May 2026 12:49:47 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1779367787; bh=ZaX1yRVwoAIQPo5u8yZwxTQxL6Z39uxFZlr7eDcOV4g=; h=From:Subject:Reply-To:To:Cc:In-Reply-To:References:Date; b=JzHThAUdcbXu4fIwPnIDPFd3yDUWiDmOx6vTZ65dzh/Uwjf/p0QYINVMm/4BH39rZ wypJF/7oNC3qRMKj47IFyQyTk4dXOyB82vZe6WzclZV54o/YmNhKpnM7+WXezATn57 16d870TRgF4HDuIyUR1l3VJ02RdHUuUYaUzO0nz1TUc1Twqig9VN/l0n1tW9Fr4TXG TtT+2tShgj9T5pAJG7l1Y20/mWZmsASmORaDbZaBpUo5+I9A2+PAkg3+NuSICqFpZ+ MEvzSvssbGCX78dL9qIqohF5H1kOj2ub5UnjPY5AmR9n9tusL7b4PFw3wQZx2GBY/X h0EMV18zylLTQ== From: sashiko-bot@kernel.org Subject: Re: [PATCH v6 2/2] phy: qcom-mipi-csi2: Add a CSI2 MIPI DPHY driver To: =?utf-8?b?QnJ5YW4gTydEb25vZ2h1ZQ==?= Cc: devicetree@vger.kernel.org, vkoul@kernel.org, robh@kernel.org, olteanv@gmail.com, linux-phy@lists.infradead.org, neil.armstrong@linaro.org, conor+dt@kernel.org In-Reply-To: <20260521-x1e-csi2-phy-v6-2-9d73d9bd7d20@linaro.org> References: <20260521-x1e-csi2-phy-v6-2-9d73d9bd7d20@linaro.org> Date: Thu, 21 May 2026 12:49:47 +0000 Message-Id: <20260521124947.4BE4B1F000E9@smtp.kernel.org> X-BeenThere: linux-phy@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Linux Phy Mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: sashiko-reviews@lists.linux.dev MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-phy" Errors-To: linux-phy-bounces+linux-phy=archiver.kernel.org@lists.infradead.org VGhhbmsgeW91IGZvciB5b3VyIGNvbnRyaWJ1dGlvbiEgU2FzaGlrbyBBSSByZXZpZXcgZm91bmQg MTAgcG90ZW50aWFsIGlzc3VlKHMpIHRvIGNvbnNpZGVyOgotIFtIaWdoXSBFeHRlbnNpdmUgcmVz b3VyY2UgbGVha3Mgb24gZXJyb3IgcGF0aHMgaW4gcG93ZXJfb24gYW5kIHNldF9jbG9ja19yYXRl cywgYW5kIG1pc3NpbmcgT1BQIHJhdGUgcmVzZXQgaW4gcG93ZXJfb2ZmLgotIFtIaWdoXSBwaHlf cWNvbV9taXBpX2NzaTJfY29uZmlndXJlIG92ZXJyaWRlcyB0aGUgRFQtcGFyc2VkIGxhbmUgY291 bnQgd2l0aG91dCBib3VuZHMgY2hlY2tpbmcgYWdhaW5zdCB0aGUgcGh5c2ljYWwgbGF5b3V0Lgot IFtIaWdoXSBVbmNvbmRpdGlvbmFsIGRlcmVmZXJlbmNlIG9mIHBkX2xpc3QgbGVhZHMgdG8gYSBO VUxMIHBvaW50ZXIgZGVyZWZlcmVuY2UgcGFuaWMuCi0gW0hpZ2hdIERpdmlzaW9uIGJ5IHplcm8g b2NjdXJzIGlmIHRoZSB0aW1lciBjbG9jayByYXRlIHJlc29sdmVzIHRvIDAuCi0gW0hpZ2hdIFNl dHRsZSBjb3VudCBjYWxjdWxhdGlvbiBjYW4gdW5kZXJmbG93IHRvIGEgdmVyeSBsYXJnZSBwb3Np dGl2ZSB2YWx1ZS4KLSBbTWVkaXVtXSBUaGUgb3BzLT5sYW5lc19kaXNhYmxlIGNhbGxiYWNrIGlz IG9taXR0ZWQgaW4gcGh5X3Fjb21fbWlwaV9jc2kyX3Bvd2VyX29mZi4KLSBbTWVkaXVtXSBDbG9j ayBsYW5lIHBvc2l0aW9uaW5nIGFuZCBsYW5lIHBvbGFyaXRpZXMgYXJlIHBhcnNlZCBidXQgZW50 aXJlbHkgaWdub3JlZC4KLSBbTWVkaXVtXSBUaGUgcHJvYmUgZnVuY3Rpb24gYWxsb3dzIHRoZSBh YnNlbmNlIG9mIGFuIE9QUCB0YWJsZSwgYnV0IHBvd2VyX29uIHN0cmljdGx5IHJlcXVpcmVzIGl0 LgotIFtNZWRpdW1dIHFjb21fY3NpMl9waHlfeGxhdGUgYWNjZXNzZXMgUEhZIGFyZ3VtZW50cyB3 aXRob3V0IGNoZWNraW5nIGFyZ3NfY291bnQuCi0gW01lZGl1bV0gVW52YWxpZGF0ZWQgZGF0YS1s YW5lcyBpbnRlZ2VyIGZyb20gRFQgY2FuIGNhdXNlIGFuIG91dC1vZi1ib3VuZHMgYml0d2lzZSBz aGlmdC4KLS0KCmNvbW1pdCAzYzM3M2IzYWI3NzgzYTY3N2VjNGM5OGYzNDRkOGIxYzU3ZTJlMTEw CkF1dGhvcjogQnJ5YW4gTydEb25vZ2h1ZSA8YnJ5YW4ub2Rvbm9naHVlQGxpbmFyby5vcmc+Cgpw aHk6IHFjb20tbWlwaS1jc2kyOiBBZGQgYSBDU0kyIE1JUEkgRFBIWSBkcml2ZXIKCkFkZCBhIG5l dyBNSVBJIENTSTIgZHJpdmVyIGluIERQSFkgbW9kZSBpbml0aWFsbHkuIFRoZSBlbnRpcmUgc2V0 IG9mCmV4aXN0aW5nIENBTVNTIENTSSBQSFkgaW5pdCBzZXF1ZW5jZXMgYXJlIGltcG9ydGVkIGlu IG9yZGVyIHRvIHNhdmUgdGltZQphbmQgZWZmb3J0IGluIGxhdGVyIHBhdGNoZXMuCgo+IGRpZmYg LS1naXQgYS9kcml2ZXJzL3BoeS9xdWFsY29tbS9waHktcWNvbS1taXBpLWNzaTItM3BoLWRwaHku YyBiL2RyaXZlcnMvcGh5L3F1YWxjb21tL3BoeS1xY29tLW1pcGktY3NpMi0zcGgtZHBoeS5jCj4g aW5kZXggMDAwMDAwMDAwMDAwMC4uOGNkZmYzNWJlMmRhOQo+IC0tLSAvZGV2L251bGwKPiArKysg Yi9kcml2ZXJzL3BoeS9xdWFsY29tbS9waHktcWNvbS1taXBpLWNzaTItM3BoLWRwaHkuYwpbIC4u LiBdCj4gK3N0YXRpYyB1OCBwaHlfcWNvbV9taXBpX2NzaTJfc2V0dGxlX2NudF9jYWxjKHM2NCBs aW5rX2ZyZXEsIHUzMiB0aW1lcl9jbGtfcmF0ZSkKPiArewpbIC4uLiBdCj4gKwl0aW1lcl9wZXJp b2RfcHMgPSBkaXZfdTY0KFBTRUNfUEVSX1NFQywgdGltZXJfY2xrX3JhdGUpOwo+ICsJc2V0dGxl X2NudCA9IHRfaHNfc2V0dGxlX3BzIC8gdGltZXJfcGVyaW9kX3BzIC0gNjsKCltTZXZlcml0eTog SGlnaF0KQ2FuIHRoaXMgc3VidHJhY3Rpb24gdW5kZXJmbG93IHRvIGEgdmVyeSBsYXJnZSBwb3Np dGl2ZSB2YWx1ZT8KCklmIHRoZSBzeXN0ZW0gaGFzIGEgbG93IHRpbWVyIGNsb2NrIHJhdGUgcmVz dWx0aW5nIGluIGEgaGlnaAp0aW1lcl9wZXJpb2RfcHMsIHRoZSBkaXZpc2lvbiBjb3VsZCB5aWVs ZCBhIHZhbHVlIGxlc3MgdGhhbiA2LiBTaW5jZQpzZXR0bGVfY250IGlzIGFuIHVuc2lnbmVkIDgt Yml0IGludGVnZXIsIHdyYXBwaW5nIGFyb3VuZCB0byBhIGxhcmdlCnZhbHVlIGNvdWxkIHNldmVy ZWx5IG1pc2NvbmZpZ3VyZSB0aGUgUEhZIGhhcmR3YXJlIHRpbWluZ3MuCgo+ICsKPiArCXJldHVy biBzZXR0bGVfY250Owo+ICt9ClsgLi4uIF0KPiArc3RhdGljIGludCBwaHlfcWNvbV9taXBpX2Nz aTJfbGFuZXNfZW5hYmxlKHN0cnVjdCBtaXBpX2NzaTJwaHlfZGV2aWNlICpjc2kycGh5LAo+ICsJ CQkJCSAgIHN0cnVjdCBtaXBpX2NzaTJwaHlfc3RyZWFtX2NmZyAqY2ZnKQo+ICt7ClsgLi4uIF0K PiArCXNldHRsZV9jbnQgPSBwaHlfcWNvbV9taXBpX2NzaTJfc2V0dGxlX2NudF9jYWxjKGNmZy0+ bGlua19mcmVxLCBjc2kycGh5LT50aW1lcl9jbGtfcmF0ZSk7Cj4gKwo+ICsJdmFsID0gQ1NJUEhZ XzNQSF9DTU5fQ1NJX0NPTU1PTl9DVFJMNV9DTEtfRU5BQkxFOwoKW1NldmVyaXR5OiBNZWRpdW1d ClRoZSBjb21taXQgbWVzc2FnZSBzdGF0ZXMgdGhhdCBkYXRhLWxhbmUgYW5kIGNsb2NrIGxhbmUg cG9zaXRpb25pbmcgYW5kCnBvbGFyaXR5IHNlbGVjdGlvbiBhcmUgc3VwcG9ydGVkLiBBcmUgdGhl IHBvbGFyaXR5IGZpZWxkcyBpZ25vcmVkIGhlcmU/CgpJdCBhcHBlYXJzIHRoZSBjbG9jayBsYW5l IGVuYWJsZSBiaXQgaXMgaGFyZGNvZGVkIGFuZCB0aGUgcG9sYXJpdHkgZmllbGRzCnBhcnNlZCBm cm9tIHRoZSBEVCBhcmUgbm90IHByb2dyYW1tZWQgaW50byB0aGUgUEhZIHJlZ2lzdGVycy4KCj4g Kwlmb3IgKGkgPSAwOyBpIDwgY2ZnLT5udW1fZGF0YV9sYW5lczsgaSsrKQo+ICsJCXZhbCB8PSBC SVQobGFuZV9jZmctPmRhdGFbaV0ucG9zICogMik7CgpbU2V2ZXJpdHk6IE1lZGl1bV0KQ2FuIHRo aXMgcmVzdWx0IGluIGFuIG91dC1vZi1ib3VuZHMgc2hpZnQ/CgpUaGUgcG9zIHZhbHVlIGlzIHJl YWQgZnJvbSB0aGUgZGV2aWNlIHRyZWUgYXMgYW4gdW52YWxpZGF0ZWQgMzItYml0CmludGVnZXIu IEEgbWFsZm9ybWVkIERUIHdpdGggbGFyZ2UgbGFuZSBwb3NpdGlvbnMgKGUuZy4gPiAxNSkgY291 bGQKcmVzdWx0IGluIGEgc2hpZnQgdmFsdWUgPj0gMzIsIHdoaWNoIGlzIHVuZGVmaW5lZCBiZWhh dmlvciBhbmQgbWlnaHQKdHJ1bmNhdGUgdGhlIGhhcmR3YXJlIGNvbmZpZ3VyYXRpb24gbWFzay4K Cj4gKwo+ICsJd3JpdGVsKHZhbCwgY3NpMnBoeS0+YmFzZSArCj4gKwkgICAgICAgQ1NJUEhZXzNQ SF9DTU5fQ1NJX0NPTU1PTl9DVFJMbihyZWdzLT5jb21tb25fcmVnc19vZmZzZXQsIDUpKTsKWyAu Li4gXQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL3BoeS9xdWFsY29tbS9waHktcWNvbS1taXBpLWNz aTItY29yZS5jIGIvZHJpdmVycy9waHkvcXVhbGNvbW0vcGh5LXFjb20tbWlwaS1jc2kyLWNvcmUu Ywo+IGluZGV4IDAwMDAwMDAwMDAwMDAuLmQ4YmRiMmRkM2MyYWMKPiAtLS0gL2Rldi9udWxsCj4g KysrIGIvZHJpdmVycy9waHkvcXVhbGNvbW0vcGh5LXFjb20tbWlwaS1jc2kyLWNvcmUuYwpbIC4u LiBdCj4gK3N0YXRpYyBpbnQKPiArcGh5X3Fjb21fbWlwaV9jc2kyX3NldF9jbG9ja19yYXRlcyhz dHJ1Y3QgbWlwaV9jc2kycGh5X2RldmljZSAqY3NpMnBoeSwKPiArCQkJCSAgIHM2NCBsaW5rX2Zy ZXEpCj4gK3sKWyAuLi4gXQo+ICsJb3BwID0gZGV2X3BtX29wcF9maW5kX2ZyZXFfY2VpbChkZXYs ICZvcHBfcmF0ZSk7Cj4gKwlpZiAoSVNfRVJSKG9wcCkpIHsKCltTZXZlcml0eTogTWVkaXVtXQpT aW5jZSB0aGUgcHJvYmUgZnVuY3Rpb24gdG9sZXJhdGVzIC1FTk9ERVYgZm9yIHRoZSBPUFAgdGFi bGUsIHdvbid0CnBvd2VyX29uIHVuY29uZGl0aW9uYWxseSBmYWlsIGhlcmUgaWYgdGhlIHRhYmxl IGlzIGFjdHVhbGx5IG1pc3Npbmc/Cgo+ICsJCWRldl9lcnIoY3NpMnBoeS0+ZGV2LCAiQ291bGRu J3QgZmluZCBjZWlsaW5nIGZvciAlbGxkIEh6XG4iLAo+ICsJCQlsaW5rX2ZyZXEpOwo+ICsJCXJl dHVybiBQVFJfRVJSKG9wcCk7Cj4gKwl9Cj4gKwo+ICsJZm9yIChpbnQgaSA9IDA7IGkgPCBjc2ky cGh5LT5wZF9saXN0LT5udW1fcGRzOyBpKyspIHsKCltTZXZlcml0eTogSGlnaF0KV2hhdCBoYXBw ZW5zIHRvIHBkX2xpc3QgaWYgQ09ORklHX1BNIGlzIGRpc2FibGVkPwoKZGV2bV9wbV9kb21haW5f YXR0YWNoX2xpc3QoKSByZXR1cm5zIDAgd2hlbiBDT05GSUdfUE0gaXMgZGlzYWJsZWQsIGJ1dApw ZF9saXN0IHdpbGwgcmVtYWluIE5VTEwuIFRoaXMgd291bGQgY2F1c2UgYSBOVUxMIHBvaW50ZXIg ZGVyZWZlcmVuY2UKaGVyZSBhbmQgaW4gcGh5X3Fjb21fbWlwaV9jc2kyX3Bvd2VyX29mZigpLgoK PiArCQl1bnNpZ25lZCBpbnQgcGVyZiA9IGRldl9wbV9vcHBfZ2V0X3JlcXVpcmVkX3BzdGF0ZShv cHAsIGkpOwo+ICsKPiArCQlyZXQgPSBkZXZfcG1fZ2VucGRfc2V0X3BlcmZvcm1hbmNlX3N0YXRl KGNzaTJwaHktPnBkX2xpc3QtPnBkX2RldnNbaV0sIHBlcmYpOwo+ICsJCWlmIChyZXQpIHsKPiAr CQkJZGV2X2Vycihjc2kycGh5LT5kZXYsICJDb3VsZG4ndCBzZXQgcGVyZiBzdGF0ZSAldVxuIiwK PiArCQkJCXBlcmYpOwo+ICsJCQlkZXZfcG1fb3BwX3B1dChvcHApOwo+ICsJCQlyZXR1cm4gcmV0 OwoKW1NldmVyaXR5OiBIaWdoXQpEb2VzIHRoaXMgbGVhayB0aGUgcGVyZm9ybWFuY2Ugc3RhdGUg Zm9yIHByZXZpb3VzbHkgc2V0IGRvbWFpbnM/IAoKSWYgdGhlIGxvb3AgZmFpbHMgb24gYSBsYXRl ciBpdGVyYXRpb24sIGl0IGFwcGVhcnMgdG8gcmV0dXJuIHdpdGhvdXQgcmVzZXR0aW5nCnRoZSBk b21haW5zIHRoYXQgd2VyZSBhbHJlYWR5IHN1Y2Nlc3NmdWxseSBjb25maWd1cmVkLgoKPiArCQl9 Cj4gKwl9Cj4gKwlkZXZfcG1fb3BwX3B1dChvcHApOwo+ICsKPiArCXJldCA9IGRldl9wbV9vcHBf c2V0X3JhdGUoZGV2LCBvcHBfcmF0ZSk7Cj4gKwlpZiAocmV0KSB7Cj4gKwkJZGV2X2Vycihjc2ky cGh5LT5kZXYsICJkZXZfcG1fb3BwX3NldF9yYXRlKCkgZmFpbFxuIik7Cj4gKwkJcmV0dXJuIHJl dDsKPiArCX0KPiArCj4gKwl0aW1lcl9yYXRlID0gY2xrX3JvdW5kX3JhdGUoY3NpMnBoeS0+dGlt ZXJfY2xrLCBsaW5rX2ZyZXEgLyA0KTsKPiArCWlmICh0aW1lcl9yYXRlIDwgMCkKPiArCQlyZXR1 cm4gdGltZXJfcmF0ZTsKPiArCj4gKwlyZXQgPSBjbGtfc2V0X3JhdGUoY3NpMnBoeS0+dGltZXJf Y2xrLCB0aW1lcl9yYXRlKTsKPiArCWlmIChyZXQpCj4gKwkJcmV0dXJuIHJldDsKPiArCj4gKwlj c2kycGh5LT50aW1lcl9jbGtfcmF0ZSA9IHRpbWVyX3JhdGU7CgpbU2V2ZXJpdHk6IEhpZ2hdCldo YXQgaWYgY2xrX3JvdW5kX3JhdGUoKSByZXR1cm5zIDA/CgpJZiB0aGUgY2xvY2sgaXMgZGlzYWJs ZWQgb3IgbWlzY29uZmlndXJlZCwgdGltZXJfcmF0ZSBjb3VsZCBiZSAwLiBMYXRlciwKcGh5X3Fj b21fbWlwaV9jc2kyX3NldHRsZV9jbnRfY2FsYygpIGNhbGxzCmRpdl91NjQoUFNFQ19QRVJfU0VD LCB0aW1lcl9jbGtfcmF0ZSksIHdoaWNoIHdvdWxkIHJlc3VsdCBpbiBhIGRpdmlzaW9uCmJ5IHpl cm8gYW5kIGEga2VybmVsIHBhbmljLgoKPiArCj4gKwlyZXR1cm4gMDsKPiArfQo+ICsKPiArc3Rh dGljIGludCBwaHlfcWNvbV9taXBpX2NzaTJfY29uZmlndXJlKHN0cnVjdCBwaHkgKnBoeSwKPiAr CQkJCQl1bmlvbiBwaHlfY29uZmlndXJlX29wdHMgKm9wdHMpCj4gK3sKWyAuLi4gXQo+ICsJc3Ry ZWFtX2NmZy0+bGlua19mcmVxID0gZHBoeV9jZmctPmhzX2Nsa19yYXRlOwo+ICsJc3RyZWFtX2Nm Zy0+bnVtX2RhdGFfbGFuZXMgPSBkcGh5X2NmZy0+bGFuZXM7CgpbU2V2ZXJpdHk6IEhpZ2hdCkRv ZXMgdGhpcyBibGluZGx5IG92ZXJ3cml0ZSB0aGUgRFQtcGFyc2VkIGxhbmUgY291bnQgd2l0aG91 dCBib3VuZHMKY2hlY2tpbmcgYWdhaW5zdCB0aGUgcGh5c2ljYWwgbGF5b3V0PwoKSWYgYSBjb25z dW1lciByZXF1ZXN0cyBtb3JlIGxhbmVzIHRoYW4gYXJlIHBoeXNpY2FsbHkgbWFwcGVkIGluIHRo ZQpkZXZpY2UgdHJlZSwgdGhlIGhhcmR3YXJlIGNvbmZpZ3VyYXRpb24gY291bGQgaXRlcmF0ZSBv dXQtb2YtYm91bmRzIG9mCnRoZSBpbml0aWFsaXplZCBhcnJheSBlbGVtZW50cywgcmVwZWF0ZWRs eSBhcHBseWluZyBiaXRtYXNrcyBmb3IgcGh5c2ljYWwKcG9zaXRpb24gMC4KCj4gKwo+ICsJcmV0 dXJuIDA7Cj4gK30KPiArCj4gK3N0YXRpYyBpbnQgcGh5X3Fjb21fbWlwaV9jc2kyX3Bvd2VyX29u KHN0cnVjdCBwaHkgKnBoeSkKPiArewpbIC4uLiBdCj4gKwlyZXQgPSBjbGtfYnVsa19wcmVwYXJl X2VuYWJsZShjc2kycGh5LT5zb2NfY2ZnLT5udW1fY2xrLAo+ICsJCQkJICAgICAgY3NpMnBoeS0+ Y2xrcyk7Cj4gKwlpZiAocmV0KSB7Cj4gKwkJZGV2X2VycihkZXYsICJmYWlsZWQgdG8gZW5hYmxl IGNsb2NrcywgJWRcbiIsIHJldCk7Cj4gKwkJZ290byBwb3dlcm9mZl9waHk7Cj4gKwl9Cj4gKwpb IC4uLiBdCj4gK3Bvd2Vyb2ZmX3BoeToKPiArCXJlZ3VsYXRvcl9idWxrX2Rpc2FibGUoY3NpMnBo eS0+c29jX2NmZy0+bnVtX3N1cHBsaWVzLAo+ICsJCQkgICAgICAgY3NpMnBoeS0+c3VwcGxpZXMp Owo+ICsKPiArCXJldHVybiByZXQ7CgpbU2V2ZXJpdHk6IEhpZ2hdCkRvZXMgdGhpcyBlcnJvciBw YXRoIGxlYWsgdGhlIHBlcmZvcm1hbmNlIHN0YXRlIGFuZCBPUFAgcmF0ZT8KCkl0IHNlZW1zIHRv IG9ubHkgZGlzYWJsZSByZWd1bGF0b3JzLCBjb21wbGV0ZWx5IG1pc3NpbmcgdGhlIGNsZWFudXAg Zm9yCmRldl9wbV9nZW5wZF9zZXRfcGVyZm9ybWFuY2Vfc3RhdGUoKSBhbmQgZGV2X3BtX29wcF9z ZXRfcmF0ZSgpLgoKPiArfQo+ICsKPiArc3RhdGljIGludCBwaHlfcWNvbV9taXBpX2NzaTJfcG93 ZXJfb2ZmKHN0cnVjdCBwaHkgKnBoeSkKPiArewo+ICsJc3RydWN0IG1pcGlfY3NpMnBoeV9kZXZp Y2UgKmNzaTJwaHkgPSBwaHlfZ2V0X2RydmRhdGEocGh5KTsKPiArCWludCBpOwo+ICsKPiArCWZv ciAoaSA9IDA7IGkgPCBjc2kycGh5LT5wZF9saXN0LT5udW1fcGRzOyBpKyspCj4gKwkJZGV2X3Bt X2dlbnBkX3NldF9wZXJmb3JtYW5jZV9zdGF0ZShjc2kycGh5LT5wZF9saXN0LT5wZF9kZXZzW2ld LCAwKTsKCltTZXZlcml0eTogSGlnaF0KRG9lcyB0aGlzIGxlYXZlIHRoZSBPUFAgZnJlcXVlbmN5 IHZvdGUgZWxldmF0ZWQ/CgpJdCBkb2Vzbid0IGxvb2sgbGlrZSBkZXZfcG1fb3BwX3NldF9yYXRl KGRldiwgMCkgaXMgY2FsbGVkIHRvIHJlbGVhc2UKdGhlIE9QUCBmcmVxdWVuY3kgdm90ZS4KCltT ZXZlcml0eTogTWVkaXVtXQpJcyB0aGUgb3BzLT5sYW5lc19kaXNhYmxlKCkgY2FsbGJhY2sgaW50 ZW50aW9uYWxseSBvbWl0dGVkIGhlcmU/CgpEaXNhYmxpbmcgdGhlIGNsb2NrcyBhbmQgcmVndWxh dG9ycyB3aXRob3V0IGludm9raW5nIHRoZSBjYWxsYmFjawpieXBhc3NlcyB0aGUgaGFyZHdhcmUt c3BlY2lmaWMgdGVhcmRvd24gc2VxdWVuY2UgKGxpa2UgY2xlYXJpbmcKQ0xLX0VOQUJMRSBhbmQg Q09NTU9OX1BXUkROX0IpLiBDb3VsZCB0aGlzIGxlYXZlIHRoZSBQSFkgaW4gYW4gaW52YWxpZAps b2dpY2FsIHN0YXRlIGZvciB0aGUgbmV4dCBwb3dlci1vbiBjeWNsZT8KCj4gKwo+ICsJY2xrX2J1 bGtfZGlzYWJsZV91bnByZXBhcmUoY3NpMnBoeS0+c29jX2NmZy0+bnVtX2NsaywKPiArCQkJCSAg IGNzaTJwaHktPmNsa3MpOwo+ICsJcmVndWxhdG9yX2J1bGtfZGlzYWJsZShjc2kycGh5LT5zb2Nf Y2ZnLT5udW1fc3VwcGxpZXMsCj4gKwkJCSAgICAgICBjc2kycGh5LT5zdXBwbGllcyk7Cj4gKwo+ ICsJcmV0dXJuIDA7Cj4gK30KWyAuLi4gXQo+ICtzdGF0aWMgc3RydWN0IHBoeSAqcWNvbV9jc2ky X3BoeV94bGF0ZShzdHJ1Y3QgZGV2aWNlICpkZXYsCj4gKwkJCQkgICAgICAgY29uc3Qgc3RydWN0 IG9mX3BoYW5kbGVfYXJncyAqYXJncykKPiArewo+ICsJc3RydWN0IG1pcGlfY3NpMnBoeV9kZXZp Y2UgKmNzaTJwaHkgPSBkZXZfZ2V0X2RydmRhdGEoZGV2KTsKPiArCj4gKwlpZiAoYXJncy0+YXJn c1swXSAhPSBQSFlfVFlQRV9EUEhZKSB7CgpbU2V2ZXJpdHk6IE1lZGl1bV0KQ2FuIHRoaXMgYWNj ZXNzIHVuaW5pdGlhbGl6ZWQgc3RhY2sgbWVtb3J5PwoKSWYgdGhlIGRldmljZSB0cmVlIG5vZGUg aGFzICNwaHktY2VsbHMgPSA8MD4sIGFyZ3NfY291bnQgd2lsbCBiZSAwLCBhbmQKcmVhZGluZyBh cmdzLT5hcmdzWzBdIG1pZ2h0IHlpZWxkIHVuaW5pdGlhbGl6ZWQgbWVtb3J5LCBsZWFkaW5nIHRv CnVucHJlZGljdGFibGUgYmVoYXZpb3Igb3IgdGhlIGluY29ycmVjdCByZWplY3Rpb24gb2YgdmFs aWQgUEhZIGJpbmRpbmdzLgpTaG91bGQgYXJncy0+YXJnc19jb3VudCBiZSBjaGVja2VkIGZpcnN0 PwoKPiArCQlkZXZfZXJyKGNzaTJwaHktPmRldiwgIm1vZGUgJWQgLUVPUE5PVFNVUFBcbiIsIGFy Z3MtPmFyZ3NbMF0pOwo+ICsJCXJldHVybiBFUlJfUFRSKC1FT1BOT1RTVVBQKTsKPiArCX0KCi0t IApTYXNoaWtvIEFJIHJldmlldyDCtyBodHRwczovL3Nhc2hpa28uZGV2LyMvcGF0Y2hzZXQvMjAy NjA1MjEteDFlLWNzaTItcGh5LXY2LTAtOWQ3M2Q5YmQ3ZDIwQGxpbmFyby5vcmc/cGFydD0yCgot LSAKbGludXgtcGh5IG1haWxpbmcgbGlzdApsaW51eC1waHlAbGlzdHMuaW5mcmFkZWFkLm9yZwpo dHRwczovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1waHkK