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=-8.2 required=3.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_SANE_1 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 7DDD4C76188 for ; Tue, 16 Jul 2019 11:39:49 +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 551B52173B for ; Tue, 16 Jul 2019 11:39:49 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="hJDjY/Tj"; dkim=fail reason="signature verification failed" (1024-bit key) header.d=samsung.com header.i=@samsung.com header.b="iRodbfps" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 551B52173B Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=samsung.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+infradead-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.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:References:In-Reply-To:MIME-Version: Date:Message-ID:From:To:Subject:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=/gX3OZ/ZE3SzLwTZF8rY3rr4eKZgO8A6WID6+ERXCBM=; b=hJDjY/TjewrPLl g3ByjTn6fNMKNTX3lGdqNm0zCdo7N18eYmhPKb3h+28q2FKihXu1CgJpEbC2YTEwqDrWdyFQY0L77 o4WKD1+22apbgPxZW4Fqyu0QRSp4EZytLTfZ0z7CY4nuqSacP6+CXGLOs9yccv5cBiXjRAU92tuoF 5atcDzhQ0MSqWlNkLCO+6gYWX73+fiE+aF9EBMQYQMi25ypv1QV5tapycdBG0KTqhNK6fTcg0DeE7 5MOeDkSvjD3nSfpNH+Re5sDZVC8Q+ZDn4lSsjfCGqmhqxXLWnB7aMStRNQyRdFg1YHDF0eqvY5opT jV0pbsuW+fb3V8h0b1zw==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.92 #3 (Red Hat Linux)) id 1hnLo8-00038J-E9; Tue, 16 Jul 2019 11:39:44 +0000 Received: from mailout1.w1.samsung.com ([210.118.77.11]) by bombadil.infradead.org with esmtps (Exim 4.92 #3 (Red Hat Linux)) id 1hnLo4-00037Q-Cy for linux-arm-kernel@lists.infradead.org; Tue, 16 Jul 2019 11:39:43 +0000 Received: from eucas1p1.samsung.com (unknown [182.198.249.206]) by mailout1.w1.samsung.com (KnoxPortal) with ESMTP id 20190716113937euoutp01b49b07eb912452047ebae65bb10ae1b2~x4E94sKXy3106131061euoutp01E for ; Tue, 16 Jul 2019 11:39:37 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 mailout1.w1.samsung.com 20190716113937euoutp01b49b07eb912452047ebae65bb10ae1b2~x4E94sKXy3106131061euoutp01E DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1563277177; bh=fMb9MXvIHQMWmLmlYL443kSG4HRn1rGQIO9yE41AQpE=; h=Subject:To:Cc:From:Date:In-Reply-To:References:From; b=iRodbfpsWIXuv5hO8Hs60wTLuMO6m5B2tpVE2HIO1fOGWwHYbiIkl/AZSkTwhOPo3 tCB+becVrz7omQVKHTrFElW5HtQdCQquo6XrtDrkHCaQjHpqDOYVTGYCVF7qJYslHg CcwyBMhMDfWkyFCmbSJOj5RaNVhmE0i9lOMFN8tw= Received: from eusmges2new.samsung.com (unknown [203.254.199.244]) by eucas1p2.samsung.com (KnoxPortal) with ESMTP id 20190716113936eucas1p2f38cf6dbfdeacc0f609727c9b2a8a368~x4E9HGLtN1772817728eucas1p2S; Tue, 16 Jul 2019 11:39:36 +0000 (GMT) Received: from eucas1p2.samsung.com ( [182.198.249.207]) by eusmges2new.samsung.com (EUCPMTA) with SMTP id 83.75.04377.877BD2D5; Tue, 16 Jul 2019 12:39:36 +0100 (BST) Received: from eusmtrp2.samsung.com (unknown [182.198.249.139]) by eucas1p1.samsung.com (KnoxPortal) with ESMTPA id 20190716113936eucas1p1e7674eeed8fcabbd0e9b984d58891347~x4E8Z6nDN1106611066eucas1p1D; Tue, 16 Jul 2019 11:39:36 +0000 (GMT) Received: from eusmgms1.samsung.com (unknown [182.198.249.179]) by eusmtrp2.samsung.com (KnoxPortal) with ESMTP id 20190716113935eusmtrp24509b691f2fdbdcfebcbcdd099187932~x4E8Lg7mM0827908279eusmtrp2F; Tue, 16 Jul 2019 11:39:35 +0000 (GMT) X-AuditID: cbfec7f4-12dff70000001119-a7-5d2db778bbb1 Received: from eusmtip1.samsung.com ( [203.254.199.221]) by eusmgms1.samsung.com (EUCPMTA) with SMTP id 0A.1E.04146.777BD2D5; Tue, 16 Jul 2019 12:39:35 +0100 (BST) Received: from [106.120.51.71] (unknown [106.120.51.71]) by eusmtip1.samsung.com (KnoxPortal) with ESMTPA id 20190716113934eusmtip1e1a0ac3811597a893390ec244f48246a~x4E7bezhL1380313803eusmtip16; Tue, 16 Jul 2019 11:39:34 +0000 (GMT) Subject: Re: [PATCH v2 2/4] devfreq: exynos-bus: convert to use dev_pm_opp_set_rate() To: Chanwoo Choi From: Bartlomiej Zolnierkiewicz Message-ID: <1a9e5752-bc2b-3b08-a36b-fc02ca51764c@samsung.com> Date: Tue, 16 Jul 2019 13:39:25 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.6.1 MIME-Version: 1.0 In-Reply-To: <29cfafc4-ee22-6d38-4c67-776c48bfed8a@samsung.com> Content-Language: en-US X-Brightmail-Tracker: H4sIAAAAAAAAA01Sa0iTYRjt/e6OFp+r8EHFYmB0VYvAF28ZRuxHP/pjRrJq1YdKTmXTsqum Zipp2t0VTkXTZhebprUsSJca4aZkaq4wvGDptEIrG2npPiX/ned5znnPOfBypOwL7c7FxCUK mjhVrJyRUHXNv62bkus3Kf2qLF64e3KYxnqzhcZ5L/4ifGlglMRWazWL29LsLDYOdNH4rek2 gydyzQjftL4g8H3zRxaXd3cQ2HauksH2qTYCn39uZvFM1yMK13xqZkJdFfeK7iGF0ZDNKGrK UhQvxxsIRV6tASlaeuoJxYTRaze7TxJ0RIiNOSZofEMOSqJ16VephKlSlDxWamNTUeuZHOTC Ab8VPuSmETlIwsn4SgQ59mvzwySCru46JA4TCLILTMyCRNdhIcVDBYJ84ygrDmMIPhRmUHOs 5XwEOPpMaA6v4NdC4XSn8ymSb6egucpGzx0YPgAKLhicJCkfAr0lZU4xxXvDL4vZyVnJ74W+ 5mpa5LjC68JBJ8eF3wbZuY+ckUjeDXoH9YSIV0H641vOeMDnclCQYSfF3DugxtZHi3g5jLTU siL2hL9P9YQoeIBgOuvzvLoeQcWVmfnWgdDU0jGr5mYt1sFDk6+43g795x3E3Br4ZdAz5iqG WAaX626Q4loKWZkykb0Gqu9UMwu2OU/vkvlIrltUTbeojm5RHd1/32JEGZCbkKRVRwnaLXHC cR+tSq1NiovyORyvNqLZD/hmpmXyCTL9OdSIeA7Jl0pbGzYqZbTqmPaEuhEBR8pXSIN/bFDK pEdUJ04KmvgDmqRYQduIPDhK7iY9teRTpIyPUiUKRwUhQdAsXAnOxT0VyQoTAg/7H3Ac/5pV oofa/baKs2M+Htej+odWR6eUB3V+16/r7Ar3L0peXXExMtYgfxZeLk1OVRzMDmPDAvZsD7Na firdX8Uot3ng6edNJUO/hycj9EsbPu6yO6yDEe22CT/OMzS4nX4/Upwy/m5K4lBFFO3scfNm Dp3+ltlU1SCntNGqzetJjVb1D/uEv/98AwAA X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrJIsWRmVeSWpSXmKPExsVy+t/xu7rl23VjDf5d1rS4/uU5q8X8I+dY Lfr2/We06H/8mtni/PkN7BZnm96wW2x6fI3V4vKuOWwWn3uPMFrMOL+PyWLtkbvsFkuvX2Sy uN24gs3izY+zTBate4+wW/y7tpHFYvODY2wOgh5r5q1h9Ni0qpPNY/OSeo+D7/YwefRtWcXo cfzGdiaPz5vkAtij9GyK8ktLUhUy8otLbJWiDS2M9AwtLfSMTCz1DI3NY62MTJX07WxSUnMy y1KL9O0S9DJmNU9hKfixiLHi7aLb7A2MJ2q7GDk5JARMJGZdPMfcxcjFISSwlFHi3tNtbF2M HEAJGYnj68sgaoQl/lzrYoOoec0oMfN5JxtIQlggXOLX/V2MILaIgIbEzL9XwGxmgUssEs3T SyEabjFLbJo+lwUkwSZgJTGxfRVYEa+AncSthUvA4iwCqhLfzx1hBbFFBSIkzrxfwQJRIyhx cuYTMJtTwF6is3cjG8QCdYk/8y4xQ9jiEreezGeCsOUlmrfOZp7AKDQLSfssJC2zkLTMQtKy gJFlFaNIamlxbnpusaFecWJucWleul5yfu4mRmC0bzv2c/MOxksbgw8xCnAwKvHwntijEyvE mlhWXJl7iFGCg1lJhNf2q3asEG9KYmVValF+fFFpTmrxIUZToOcmMkuJJucDE1FeSbyhqaG5 haWhubG5sZmFkjhvh8DBGCGB9MSS1OzU1ILUIpg+Jg5OqQbGGNndO349WJrIdkgy+8jma73s 3wofKZulcaUz8641cQvR05ji3M0z36l2k1r1pbAVDs+ao7S1pHa6Vfz/e7v0qLrl1Z7MaVqn 8+bP518Ye6zqS8rmZWnq/yd9DxY2C+ZyX+KY5bjo0L4VDy5yZxWaaM9bcG/+wu9zNNKc50pk feeb7rbw78lXSizFGYmGWsxFxYkAbxhu0gwDAAA= X-CMS-MailID: 20190716113936eucas1p1e7674eeed8fcabbd0e9b984d58891347 X-Msg-Generator: CA X-RootMTR: 20190715120431eucas1p215eae81d0ca772d7e2a22a803669068a X-EPHeader: CA CMS-TYPE: 201P X-CMS-RootMailID: 20190715120431eucas1p215eae81d0ca772d7e2a22a803669068a References: <20190715120416.3561-1-k.konieczny@partner.samsung.com> <20190715120416.3561-3-k.konieczny@partner.samsung.com> <7f7cf551-005a-c647-d571-77eb5426478a@samsung.com> <3d1687b7-4825-ad82-2706-a712c30e530b@samsung.com> <5612547b-47c8-0dc4-cb3c-e972782d5a26@samsung.com> <3ba736fa-832c-a72c-e60b-f4328e54c524@samsung.com> <29cfafc4-ee22-6d38-4c67-776c48bfed8a@samsung.com> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20190716_043940_789230_38BDA129 X-CRM114-Status: GOOD ( 28.26 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Mark Rutland , Nishanth Menon , linux-samsung-soc@vger.kernel.org, devicetree@vger.kernel.org, Stephen Boyd , Viresh Kumar , linux-pm@vger.kernel.org, linux-kernel@vger.kernel.org, Krzysztof Kozlowski , Rob Herring , Kyungmin Park , Kukjin Kim , MyungJoo Ham , Kamil Konieczny , linux-arm-kernel@lists.infradead.org, Marek Szyprowski Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+infradead-linux-arm-kernel=archiver.kernel.org@lists.infradead.org Ck9uIDcvMTYvMTkgMToyNiBQTSwgQ2hhbndvbyBDaG9pIHdyb3RlOgo+IEhpLAo+IAo+IE9uIDE5 LiA3LiAxNi4g7Jik7ZuEIDc6NTksIEJhcnRsb21pZWogWm9sbmllcmtpZXdpY3ogd3JvdGU6Cj4+ Cj4+IE9uIDcvMTYvMTkgMTI6MzMgUE0sIENoYW53b28gQ2hvaSB3cm90ZToKPj4+IEhpIEJhcnRs b21pZWosCj4+Pgo+Pj4gT24gMTkuIDcuIDE2LiDsmKTtm4QgNzoxMywgQmFydGxvbWllaiBab2xu aWVya2lld2ljeiB3cm90ZToKPj4+Pgo+Pj4+IEhpIENoYW53b28sCj4+Pj4KPj4+PiBPbiA3LzE2 LzE5IDU6NTYgQU0sIENoYW53b28gQ2hvaSB3cm90ZToKPj4+Pj4gSGkgS2FtaWwsCj4+Pj4+Cj4+ Pj4+IExvb2tzIGdvb2QgdG8gbWUuIEJ1dCwgdGhpcyBwYXRjaCBoYXMgc29tZSBpc3N1ZS4KPj4+ Pj4gSSBhZGRlZCB0aGUgZGV0YWlsZWQgcmV2aWV3cy4KPj4+Pj4KPj4+Pj4gSSByZWNvbW1lbmQg dGhhdCB5b3UgbWFrZSB0aGUgc2VwYXJhdGUgcGF0Y2hlcyBhcyBmb2xsb3dpbmcKPj4+Pj4gaW4g b3JkZXIgdG8gY2xhcmlmeSB0aGUgcm9sZSBvZiB3aGljaCBhcHBseSB0aGUgZGV2X3BtX29wcF8q IGZ1bmN0aW9uLgo+Pj4+Pgo+Pj4+PiBGaXJzdCBwYXRjaCwKPj4+Pj4gTmVlZCB0byBjb25zb2xp ZGF0ZSB0aGUgZm9sbG93aW5nIHR3byBmdW5jdGlvbiBpbnRvIG9uZSBmdW5jdGlvbi4KPj4+Pj4g YmVjYXVzZSB0aGUgb3JpZ2luYWwgZXh5bm9zLWJ1cy5jIGhhcyB0aGUgcHJvYmxlbSB0aGF0IHRo ZSByZWd1bGF0b3IKPj4+Pj4gb2YgcGFyZW50IGRldmZyZXEgZGV2aWNlIGhhdmUgdG8gYmUgZW5h YmxlZCBiZWZvcmUgZW5hYmxpbmcgdGhlIGNsb2NrLgo+Pj4+PiBUaGlzIGlzc3VlIGRpZCBub3Qg aGFwcGVuIGJlY2F1c2UgYm9vdGxvYWRlciBlbmFibGVzIHRoZSBidXMtcmVsYXRlZAo+Pj4+PiBy ZWd1bGF0b3JzIGJlZm9yZSBrZXJuZWwgYm9vdGluZy4KPj4+Pj4gLSBleHlub3NfYnVzX3BhcnNl X29mKCkKPj4+Pj4gLSBleHlub3NfYnVzX3BhcmVudF9wYXJzZV9vZigpCj4+Pj4+PiBTZWNvbmQg cGF0Y2gsCj4+Pj4+IEFwcGx5IGRldl9wbV9vcHBfc2V0X3JlZ3VsYXRvcnMoKSBhbmQgZGV2X3Bt X29wcF9zZXRfcmF0ZSgpCj4+Pj4+Cj4+Pj4+Cj4+Pj4+IE9uIDE5LiA3LiAxNS4g7Jik7ZuEIDk6 MDQsIEthbWlsIEtvbmllY3pueSB3cm90ZToKPj4+Pj4+IFJldXNlIG9wcCBjb3JlIGNvZGUgZm9y IHNldHRpbmcgYnVzIGNsb2NrIGFuZCB2b2x0YWdlLiBBcyBhIHNpZGUKPj4+Pj4+IGVmZmVjdCB0 aGlzIGFsbG93IHVzZWFnZSBvZiBjb3VwbGVkIHJlZ3VsYXRvcnMgZmVhdHVyZSAocmVxdWlyZWQK Pj4+Pj4+IGZvciBib2FyZHMgdXNpbmcgRXh5bm9zNTQyMi81ODAwIFNvQ3MpIGJlY2F1c2UgZGV2 X3BtX29wcF9zZXRfcmF0ZSgpCj4+Pj4+PiB1c2VzIHJlZ3VsYXRvcl9zZXRfdm9sdGFnZV90cmlw bGV0KCkgZm9yIHNldHRpbmcgcmVndWxhdG9yIHZvbHRhZ2UKPj4+Pj4+IHdoaWxlIHRoZSBvbGQg Y29kZSB1c2VkIHJlZ3VsYXRvcl9zZXRfdm9sdGFnZV90b2woKSB3aXRoIGZpeGVkCj4+Pj4+PiB0 b2xlcmFuY2UuIFRoaXMgcGF0Y2ggYWxzbyByZW1vdmVzIG5vIGxvbmdlciBuZWVkZWQgcGFyc2lu ZyBvZiBEVAo+Pj4+Pj4gcHJvcGVydHkgImV4eW5vcyx2b2x0YWdlLXRvbGVyYW5jZSIgKG5vIEV4 eW5vcyBkZXZmcmVxIERUIG5vZGUgdXNlcwo+Pj4+Pj4gaXQpLgo+Pj4+Pj4KPj4+Pj4+IFNpZ25l ZC1vZmYtYnk6IEthbWlsIEtvbmllY3pueSA8ay5rb25pZWN6bnlAcGFydG5lci5zYW1zdW5nLmNv bT4KPj4+Pj4+IC0tLQo+Pj4+Pj4gIGRyaXZlcnMvZGV2ZnJlcS9leHlub3MtYnVzLmMgfCAxNzIg KysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLS0KPj4+Pj4+ICAxIGZpbGUgY2hhbmdl ZCwgNjYgaW5zZXJ0aW9ucygrKSwgMTA2IGRlbGV0aW9ucygtKQo+Pj4+Pj4KPj4+Pj4+IGRpZmYg LS1naXQgYS9kcml2ZXJzL2RldmZyZXEvZXh5bm9zLWJ1cy5jIGIvZHJpdmVycy9kZXZmcmVxL2V4 eW5vcy1idXMuYwo+Pj4+Pj4gaW5kZXggNDg2Y2M1YjQyMmYxLi43ZmM0Zjc2YmQ4NDggMTAwNjQ0 Cj4+Pj4+PiAtLS0gYS9kcml2ZXJzL2RldmZyZXEvZXh5bm9zLWJ1cy5jCj4+Pj4+PiArKysgYi9k cml2ZXJzL2RldmZyZXEvZXh5bm9zLWJ1cy5jCj4+Pj4+PiBAQCAtMjUsNyArMjUsNiBAQAo+Pj4+ Pj4gICNpbmNsdWRlIDxsaW51eC9zbGFiLmg+Cj4+Pj4+PiAgCj4+Pj4+PiAgI2RlZmluZSBERUZB VUxUX1NBVFVSQVRJT05fUkFUSU8JNDAKPj4+Pj4+IC0jZGVmaW5lIERFRkFVTFRfVk9MVEFHRV9U T0xFUkFOQ0UJMgo+Pj4+Pj4gIAo+Pj4+Pj4gIHN0cnVjdCBleHlub3NfYnVzIHsKPj4+Pj4+ICAJ c3RydWN0IGRldmljZSAqZGV2Owo+Pj4+Pj4gQEAgLTM3LDkgKzM2LDkgQEAgc3RydWN0IGV4eW5v c19idXMgewo+Pj4+Pj4gIAo+Pj4+Pj4gIAl1bnNpZ25lZCBsb25nIGN1cnJfZnJlcTsKPj4+Pj4+ ICAKPj4+Pj4+IC0Jc3RydWN0IHJlZ3VsYXRvciAqcmVndWxhdG9yOwo+Pj4+Pj4gKwlzdHJ1Y3Qg b3BwX3RhYmxlICpvcHBfdGFibGU7Cj4+Pj4+PiArCj4+Pj4+PiAgCXN0cnVjdCBjbGsgKmNsazsK Pj4+Pj4+IC0JdW5zaWduZWQgaW50IHZvbHRhZ2VfdG9sZXJhbmNlOwo+Pj4+Pj4gIAl1bnNpZ25l ZCBpbnQgcmF0aW87Cj4+Pj4+PiAgfTsKPj4+Pj4+ICAKPj4+Pj4+IEBAIC05OSw1NiArOTgsMjUg QEAgc3RhdGljIGludCBleHlub3NfYnVzX3RhcmdldChzdHJ1Y3QgZGV2aWNlICpkZXYsIHVuc2ln bmVkIGxvbmcgKmZyZXEsIHUzMiBmbGFncykKPj4+Pj4+ICB7Cj4+Pj4+PiAgCXN0cnVjdCBleHlu b3NfYnVzICpidXMgPSBkZXZfZ2V0X2RydmRhdGEoZGV2KTsKPj4+Pj4+ICAJc3RydWN0IGRldl9w bV9vcHAgKm5ld19vcHA7Cj4+Pj4+PiAtCXVuc2lnbmVkIGxvbmcgb2xkX2ZyZXEsIG5ld19mcmVx LCBuZXdfdm9sdCwgdG9sOwo+Pj4+Pj4gIAlpbnQgcmV0ID0gMDsKPj4+Pj4+IC0KPj4+Pj4+IC0J LyogR2V0IG5ldyBvcHAtYnVzIGluc3RhbmNlIGFjY29yZGluZyB0byBuZXcgYnVzIGNsb2NrICov Cj4+Pj4+PiArCS8qCj4+Pj4+PiArCSAqIE5ldyBmcmVxdWVuY3kgZm9yIGJ1cyBtYXkgbm90IGJl IGV4YWN0bHkgbWF0Y2hlZCB0byBvcHAsIGFkanVzdAo+Pj4+Pj4gKwkgKiAqZnJlcSB0byBjb3Jy ZWN0IHZhbHVlLgo+Pj4+Pj4gKwkgKi8KPj4+Pj4KPj4+Pj4gWW91IGJldHRlciB0byBjaGFuZ2Ug dGhpcyBjb21tZW50IHdpdGggZm9sbG93aW5nIHN0eWxlcwo+Pj4+PiB0byBrZWVwIHRoZSBjb25z aXN0ZW5jeToKPj4+Pj4KPj4+Pj4gCS8qIEdldCBjb3JyZWN0IGZyZXF1ZW5jeSBmb3IgYnVzIC4u LiAqLwo+Pj4+Pgo+Pj4+Pj4gIAluZXdfb3BwID0gZGV2ZnJlcV9yZWNvbW1lbmRlZF9vcHAoZGV2 LCBmcmVxLCBmbGFncyk7Cj4+Pj4+PiAgCWlmIChJU19FUlIobmV3X29wcCkpIHsKPj4+Pj4+ICAJ CWRldl9lcnIoZGV2LCAiZmFpbGVkIHRvIGdldCByZWNvbW1lbmRlZCBvcHAgaW5zdGFuY2VcbiIp Owo+Pj4+Pj4gIAkJcmV0dXJuIFBUUl9FUlIobmV3X29wcCk7Cj4+Pj4+PiAgCX0KPj4+Pj4+ICAK Pj4+Pj4+IC0JbmV3X2ZyZXEgPSBkZXZfcG1fb3BwX2dldF9mcmVxKG5ld19vcHApOwo+Pj4+Pj4g LQluZXdfdm9sdCA9IGRldl9wbV9vcHBfZ2V0X3ZvbHRhZ2UobmV3X29wcCk7Cj4+Pj4+PiAgCWRl dl9wbV9vcHBfcHV0KG5ld19vcHApOwo+Pj4+Pj4gIAo+Pj4+Pj4gLQlvbGRfZnJlcSA9IGJ1cy0+ Y3Vycl9mcmVxOwo+Pj4+Pj4gLQo+Pj4+Pj4gLQlpZiAob2xkX2ZyZXEgPT0gbmV3X2ZyZXEpCj4+ Pj4+PiAtCQlyZXR1cm4gMDsKPj4+Pj4+IC0JdG9sID0gbmV3X3ZvbHQgKiBidXMtPnZvbHRhZ2Vf dG9sZXJhbmNlIC8gMTAwOwo+Pj4+Pj4gLQo+Pj4+Pj4gIAkvKiBDaGFuZ2Ugdm9sdGFnZSBhbmQg ZnJlcXVlbmN5IGFjY29yZGluZyB0byBuZXcgT1BQIGxldmVsICovCj4+Pj4+PiAgCW11dGV4X2xv Y2soJmJ1cy0+bG9jayk7Cj4+Pj4+PiArCXJldCA9IGRldl9wbV9vcHBfc2V0X3JhdGUoZGV2LCAq ZnJlcSk7Cj4+Pj4+PiArCWlmICghcmV0KQo+Pj4+Pj4gKwkJYnVzLT5jdXJyX2ZyZXEgPSAqZnJl cTsKPj4+Pj4KPj4+Pj4gSGF2ZSB0byBwcmludCB0aGUgZXJyb3IgbG9nIGlmIHJldCBoYXMgbWlu dXMgZXJyb3IgdmFsdWUuCj4+Pj4KPj4+PiBkZXZfcG1fb3BwX3NldF9yYXRlKCkgc2hvdWxkIHBy aW50IHRoZSBlcnJvciBtZXNzYWdlIG9uIGFsbAo+Pj4+IGVycm9ycyBzbyB3b3VsZG4ndCBwcmlu dGluZyB0aGUgZXJyb3IgbG9nIGFsc28gaGVyZSBiZSBzdXBlcmZsdW91cz8KPj4+Pgo+Pj4+IFsg UGxlYXNlIGFsc28gbm90ZSB0aGF0IHRoZSBvdGhlciB1c2VyIG9mIGRldl9wbV9vcHBfc2V0X3Jh dGUoKQo+Pj4+ICAgKGNwdWZyZXEtZHQgY3B1ZnJlcSBkcml2ZXIpIGRvZXNuJ3QgZG8gdGhpcy4g XQo+Pj4KPj4+IE9LLiBUaGFua3MgZm9yIHRoZSBleHBsYW5hdGlvbi4gCj4+Pgo+Pj4+Cj4+Pj4+ IE1vZGlmeSBpdCBhcyBmb2xsb3dpbmc6Cj4+Pj4+Cj4+Pj4+IAlpZiAocmV0IDwgMCkgewo+Pj4+ PiAJCWRldl9lcnIoZGV2LCAiZmFpbGVkIHRvIHNldCBidXMgcmF0ZVxuIik7Cj4+Pj4+IAkJZ290 byBlcnI6Cj4+Pj4+IAl9Cj4+Pj4+IAlidXMtPmN1cnJfZnJlcSA9ICpmcmVxOwo+Pj4+Pgo+Pj4+ PiBlcnI6Cj4+Pj4+IAltdXRleF91bmxvY2soJmJ1cy0+bG9jayk7Cj4+Pj4+IAkKPj4+Pj4gCXJl dHVybiByZXQ7Cj4+Pj4+Cj4+Pj4+PiAgCj4+Pj4+PiAtCWlmIChvbGRfZnJlcSA8IG5ld19mcmVx KSB7Cj4+Pj4+PiAtCQlyZXQgPSByZWd1bGF0b3Jfc2V0X3ZvbHRhZ2VfdG9sKGJ1cy0+cmVndWxh dG9yLCBuZXdfdm9sdCwgdG9sKTsKPj4+Pj4+IC0JCWlmIChyZXQgPCAwKSB7Cj4+Pj4+PiAtCQkJ ZGV2X2VycihidXMtPmRldiwgImZhaWxlZCB0byBzZXQgdm9sdGFnZVxuIik7Cj4+Pj4+PiAtCQkJ Z290byBvdXQ7Cj4+Pj4+PiAtCQl9Cj4+Pj4+PiAtCX0KPj4+Pj4+IC0KPj4+Pj4+IC0JcmV0ID0g Y2xrX3NldF9yYXRlKGJ1cy0+Y2xrLCBuZXdfZnJlcSk7Cj4+Pj4+PiAtCWlmIChyZXQgPCAwKSB7 Cj4+Pj4+PiAtCQlkZXZfZXJyKGRldiwgImZhaWxlZCB0byBjaGFuZ2UgY2xvY2sgb2YgYnVzXG4i KTsKPj4+Pj4+IC0JCWNsa19zZXRfcmF0ZShidXMtPmNsaywgb2xkX2ZyZXEpOwo+Pj4+Pj4gLQkJ Z290byBvdXQ7Cj4+Pj4+PiAtCX0KPj4+Pj4+IC0KPj4+Pj4+IC0JaWYgKG9sZF9mcmVxID4gbmV3 X2ZyZXEpIHsKPj4+Pj4+IC0JCXJldCA9IHJlZ3VsYXRvcl9zZXRfdm9sdGFnZV90b2woYnVzLT5y ZWd1bGF0b3IsIG5ld192b2x0LCB0b2wpOwo+Pj4+Pj4gLQkJaWYgKHJldCA8IDApIHsKPj4+Pj4+ IC0JCQlkZXZfZXJyKGJ1cy0+ZGV2LCAiZmFpbGVkIHRvIHNldCB2b2x0YWdlXG4iKTsKPj4+Pj4+ IC0JCQlnb3RvIG91dDsKPj4+Pj4+IC0JCX0KPj4+Pj4+IC0JfQo+Pj4+Pj4gLQlidXMtPmN1cnJf ZnJlcSA9IG5ld19mcmVxOwo+Pj4+Pj4gLQo+Pj4+Pj4gLQlkZXZfZGJnKGRldiwgIlNldCB0aGUg ZnJlcXVlbmN5IG9mIGJ1cyAoJWx1SHogLT4gJWx1SHosICVsdUh6KVxuIiwKPj4+Pj4+IC0JCQlv bGRfZnJlcSwgbmV3X2ZyZXEsIGNsa19nZXRfcmF0ZShidXMtPmNsaykpOwo+Pj4+Pj4gLW91dDoK Pj4+Pj4+ICAJbXV0ZXhfdW5sb2NrKCZidXMtPmxvY2spOwo+Pj4+Pj4gIAo+Pj4+Pj4gIAlyZXR1 cm4gcmV0Owo+Pj4+Pj4gQEAgLTE5NCwxMCArMTYyLDExIEBAIHN0YXRpYyB2b2lkIGV4eW5vc19i dXNfZXhpdChzdHJ1Y3QgZGV2aWNlICpkZXYpCj4+Pj4+PiAgCWlmIChyZXQgPCAwKQo+Pj4+Pj4g IAkJZGV2X3dhcm4oZGV2LCAiZmFpbGVkIHRvIGRpc2FibGUgdGhlIGRldmZyZXEtZXZlbnQgZGV2 aWNlc1xuIik7Cj4+Pj4+PiAgCj4+Pj4+PiAtCWlmIChidXMtPnJlZ3VsYXRvcikKPj4+Pj4+IC0J CXJlZ3VsYXRvcl9kaXNhYmxlKGJ1cy0+cmVndWxhdG9yKTsKPj4+Pj4+ICsJaWYgKGJ1cy0+b3Bw X3RhYmxlKQo+Pj4+Pj4gKwkJZGV2X3BtX29wcF9wdXRfcmVndWxhdG9ycyhidXMtPm9wcF90YWJs ZSk7Cj4+Pj4+Cj4+Pj4+IEhhdmUgdG8gZGlzYWJsZSByZWd1bGF0b3IgYWZ0ZXIgZGlzYWJsaW5n IHRoZSBjbG9jawo+Pj4+PiB0byBwcmV2ZW50IHRoZSBoL3cgZmF1bHQuCj4+Pj4+Cj4+Pj4+IEkg dGhpbmsgdGhhdCB5b3Ugc2hvdWxkIGNhbGwgdGhlbSB3aXRoIGZvbGxvd2luZyBzZXF1ZW5jZToK Pj4+Pj4KPj4+Pj4gCWNsa19kaXNhYmxlX3VucHJlcGFyZShidXMtPmNsayk7Cj4+Pj4+IAlpZiAo YnVzLT5vcHBfdGFibGUpCj4+Pj4+IAkJZGV2X3BtX29wcF9wdXRfcmVndWxhdG9ycyhidXMtPm9w cF90YWJsZSk7Cj4+Pj4+IAlkZXZfcG1fb3BwX29mX3JlbW92ZV90YWJsZShkZXYpOwo+Pj4+Pgo+ Pj4+Pj4gIAo+Pj4+Pj4gIAlkZXZfcG1fb3BwX29mX3JlbW92ZV90YWJsZShkZXYpOwo+Pj4+Pj4g Kwo+Pj4+Pj4gIAljbGtfZGlzYWJsZV91bnByZXBhcmUoYnVzLT5jbGspOwo+Pj4+Pj4gIH0KPj4+ Pj4+ICAKPj4+Pj4+IEBAIC0yMDksMzkgKzE3OCwyNiBAQCBzdGF0aWMgaW50IGV4eW5vc19idXNf cGFzc2l2ZV90YXJnZXQoc3RydWN0IGRldmljZSAqZGV2LCB1bnNpZ25lZCBsb25nICpmcmVxLAo+ Pj4+Pj4gIHsKPj4+Pj4+ICAJc3RydWN0IGV4eW5vc19idXMgKmJ1cyA9IGRldl9nZXRfZHJ2ZGF0 YShkZXYpOwo+Pj4+Pj4gIAlzdHJ1Y3QgZGV2X3BtX29wcCAqbmV3X29wcDsKPj4+Pj4+IC0JdW5z aWduZWQgbG9uZyBvbGRfZnJlcSwgbmV3X2ZyZXE7Cj4+Pj4+PiAtCWludCByZXQgPSAwOwo+Pj4+ Pj4gKwlpbnQgcmV0Owo+Pj4+Pj4gIAo+Pj4+Pj4gLQkvKiBHZXQgbmV3IG9wcC1idXMgaW5zdGFu Y2UgYWNjb3JkaW5nIHRvIG5ldyBidXMgY2xvY2sgKi8KPj4+Pj4+ICsJLyoKPj4+Pj4+ICsJICog TmV3IGZyZXF1ZW5jeSBmb3IgYnVzIG1heSBub3QgYmUgZXhhY3RseSBtYXRjaGVkIHRvIG9wcCwg YWRqdXN0Cj4+Pj4+PiArCSAqICpmcmVxIHRvIGNvcnJlY3QgdmFsdWUuCj4+Pj4+PiArCSAqLwo+ Pj4+Pgo+Pj4+PiBZb3UgYmV0dGVyIHRvIGNoYW5nZSB0aGlzIGNvbW1lbnQgd2l0aCBmb2xsb3dp bmcgc3R5bGVzCj4+Pj4+IHRvIGtlZXAgdGhlIGNvbnNpc3RlbmN5Ogo+Pj4+Pgo+Pj4+PiAJLyog R2V0IGNvcnJlY3QgZnJlcXVlbmN5IGZvciBidXMgLi4uICovCj4+Pj4+Cj4+Pj4+PiAgCW5ld19v cHAgPSBkZXZmcmVxX3JlY29tbWVuZGVkX29wcChkZXYsIGZyZXEsIGZsYWdzKTsKPj4+Pj4+ICAJ aWYgKElTX0VSUihuZXdfb3BwKSkgewo+Pj4+Pj4gIAkJZGV2X2VycihkZXYsICJmYWlsZWQgdG8g Z2V0IHJlY29tbWVuZGVkIG9wcCBpbnN0YW5jZVxuIik7Cj4+Pj4+PiAgCQlyZXR1cm4gUFRSX0VS UihuZXdfb3BwKTsKPj4+Pj4+ICAJfQo+Pj4+Pj4gIAo+Pj4+Pj4gLQluZXdfZnJlcSA9IGRldl9w bV9vcHBfZ2V0X2ZyZXEobmV3X29wcCk7Cj4+Pj4+PiAgCWRldl9wbV9vcHBfcHV0KG5ld19vcHAp Owo+Pj4+Pj4gIAo+Pj4+Pj4gLQlvbGRfZnJlcSA9IGJ1cy0+Y3Vycl9mcmVxOwo+Pj4+Pj4gLQo+ Pj4+Pj4gLQlpZiAob2xkX2ZyZXEgPT0gbmV3X2ZyZXEpCj4+Pj4+PiAtCQlyZXR1cm4gMDsKPj4+ Pj4+IC0KPj4+Pj4+ICAJLyogQ2hhbmdlIHRoZSBmcmVxdWVuY3kgYWNjb3JkaW5nIHRvIG5ldyBP UFAgbGV2ZWwgKi8KPj4+Pj4+ICAJbXV0ZXhfbG9jaygmYnVzLT5sb2NrKTsKPj4+Pj4+ICsJcmV0 ID0gZGV2X3BtX29wcF9zZXRfcmF0ZShkZXYsICpmcmVxKTsKPj4+Pj4+ICsJaWYgKCFyZXQpCj4+ Pj4+PiArCQlidXMtPmN1cnJfZnJlcSA9ICpmcmVxOwo+Pj4+Pgo+Pj4+PiBkaXR0by4gSGF2ZSB0 byBwcmludCB0aGUgZXJyb3IgbG9nLCBjaGVjayBhYm92ZSBjb21tZW50Lgo+Pj4+Pgo+Pj4+Pj4g IAo+Pj4+Pj4gLQlyZXQgPSBjbGtfc2V0X3JhdGUoYnVzLT5jbGssIG5ld19mcmVxKTsKPj4+Pj4+ IC0JaWYgKHJldCA8IDApIHsKPj4+Pj4+IC0JCWRldl9lcnIoZGV2LCAiZmFpbGVkIHRvIHNldCB0 aGUgY2xvY2sgb2YgYnVzXG4iKTsKPj4+Pj4+IC0JCWdvdG8gb3V0Owo+Pj4+Pj4gLQl9Cj4+Pj4+ PiAtCj4+Pj4+PiAtCSpmcmVxID0gbmV3X2ZyZXE7Cj4+Pj4+PiAtCWJ1cy0+Y3Vycl9mcmVxID0g bmV3X2ZyZXE7Cj4+Pj4+PiAtCj4+Pj4+PiAtCWRldl9kYmcoZGV2LCAiU2V0IHRoZSBmcmVxdWVu Y3kgb2YgYnVzICglbHVIeiAtPiAlbHVIeiwgJWx1SHopXG4iLAo+Pj4+Pj4gLQkJCW9sZF9mcmVx LCBuZXdfZnJlcSwgY2xrX2dldF9yYXRlKGJ1cy0+Y2xrKSk7Cj4+Pj4+PiAtb3V0Ogo+Pj4+Pj4g IAltdXRleF91bmxvY2soJmJ1cy0+bG9jayk7Cj4+Pj4+PiAgCj4+Pj4+PiAgCXJldHVybiByZXQ7 Cj4+Pj4+PiBAQCAtMjU5LDIwICsyMTUsNyBAQCBzdGF0aWMgaW50IGV4eW5vc19idXNfcGFyZW50 X3BhcnNlX29mKHN0cnVjdCBkZXZpY2Vfbm9kZSAqbnAsCj4+Pj4+PiAgCQkJCQlzdHJ1Y3QgZXh5 bm9zX2J1cyAqYnVzKQo+Pj4+Pj4gIHsKPj4+Pj4+ICAJc3RydWN0IGRldmljZSAqZGV2ID0gYnVz LT5kZXY7Cj4+Pj4+PiAtCWludCBpLCByZXQsIGNvdW50LCBzaXplOwo+Pj4+Pj4gLQo+Pj4+Pj4g LQkvKiBHZXQgdGhlIHJlZ3VsYXRvciB0byBwcm92aWRlIGVhY2ggYnVzIHdpdGggdGhlIHBvd2Vy ICovCj4+Pj4+PiAtCWJ1cy0+cmVndWxhdG9yID0gZGV2bV9yZWd1bGF0b3JfZ2V0KGRldiwgInZk ZCIpOwo+Pj4+Pj4gLQlpZiAoSVNfRVJSKGJ1cy0+cmVndWxhdG9yKSkgewo+Pj4+Pj4gLQkJZGV2 X2VycihkZXYsICJmYWlsZWQgdG8gZ2V0IFZERCByZWd1bGF0b3JcbiIpOwo+Pj4+Pj4gLQkJcmV0 dXJuIFBUUl9FUlIoYnVzLT5yZWd1bGF0b3IpOwo+Pj4+Pj4gLQl9Cj4+Pj4+PiAtCj4+Pj4+PiAt CXJldCA9IHJlZ3VsYXRvcl9lbmFibGUoYnVzLT5yZWd1bGF0b3IpOwo+Pj4+Pj4gLQlpZiAocmV0 IDwgMCkgewo+Pj4+Pj4gLQkJZGV2X2VycihkZXYsICJmYWlsZWQgdG8gZW5hYmxlIFZERCByZWd1 bGF0b3JcbiIpOwo+Pj4+Pj4gLQkJcmV0dXJuIHJldDsKPj4+Pj4+IC0JfQo+Pj4+Pj4gKwlpbnQg aSwgY291bnQsIHNpemU7Cj4+Pj4+PiAgCj4+Pj4+PiAgCS8qCj4+Pj4+PiAgCSAqIEdldCB0aGUg ZGV2ZnJlcS1ldmVudCBkZXZpY2VzIHRvIGdldCB0aGUgY3VycmVudCB1dGlsaXphdGlvbiBvZgo+ Pj4+Pj4gQEAgLTI4MSwyNCArMjI0LDIwIEBAIHN0YXRpYyBpbnQgZXh5bm9zX2J1c19wYXJlbnRf cGFyc2Vfb2Yoc3RydWN0IGRldmljZV9ub2RlICpucCwKPj4+Pj4+ICAJY291bnQgPSBkZXZmcmVx X2V2ZW50X2dldF9lZGV2X2NvdW50KGRldik7Cj4+Pj4+PiAgCWlmIChjb3VudCA8IDApIHsKPj4+ Pj4+ICAJCWRldl9lcnIoZGV2LCAiZmFpbGVkIHRvIGdldCB0aGUgY291bnQgb2YgZGV2ZnJlcS1l dmVudCBkZXZcbiIpOwo+Pj4+Pj4gLQkJcmV0ID0gY291bnQ7Cj4+Pj4+PiAtCQlnb3RvIGVycl9y ZWd1bGF0b3I7Cj4+Pj4+PiArCQlyZXR1cm4gY291bnQ7Cj4+Pj4+PiAgCX0KPj4+Pj4+ICsKPj4+ Pj4+ICAJYnVzLT5lZGV2X2NvdW50ID0gY291bnQ7Cj4+Pj4+PiAgCj4+Pj4+PiAgCXNpemUgPSBz aXplb2YoKmJ1cy0+ZWRldikgKiBjb3VudDsKPj4+Pj4+ICAJYnVzLT5lZGV2ID0gZGV2bV9remFs bG9jKGRldiwgc2l6ZSwgR0ZQX0tFUk5FTCk7Cj4+Pj4+PiAtCWlmICghYnVzLT5lZGV2KSB7Cj4+ Pj4+PiAtCQlyZXQgPSAtRU5PTUVNOwo+Pj4+Pj4gLQkJZ290byBlcnJfcmVndWxhdG9yOwo+Pj4+ Pj4gLQl9Cj4+Pj4+PiArCWlmICghYnVzLT5lZGV2KQo+Pj4+Pj4gKwkJcmV0dXJuIC1FTk9NRU07 Cj4+Pj4+PiAgCj4+Pj4+PiAgCWZvciAoaSA9IDA7IGkgPCBjb3VudDsgaSsrKSB7Cj4+Pj4+PiAg CQlidXMtPmVkZXZbaV0gPSBkZXZmcmVxX2V2ZW50X2dldF9lZGV2X2J5X3BoYW5kbGUoZGV2LCBp KTsKPj4+Pj4+IC0JCWlmIChJU19FUlIoYnVzLT5lZGV2W2ldKSkgewo+Pj4+Pj4gLQkJCXJldCA9 IC1FUFJPQkVfREVGRVI7Cj4+Pj4+PiAtCQkJZ290byBlcnJfcmVndWxhdG9yOwo+Pj4+Pj4gLQkJ fQo+Pj4+Pj4gKwkJaWYgKElTX0VSUihidXMtPmVkZXZbaV0pKQo+Pj4+Pj4gKwkJCXJldHVybiAt RVBST0JFX0RFRkVSOwo+Pj4+Pj4gIAl9Cj4+Pj4+PiAgCj4+Pj4+PiAgCS8qCj4+Pj4+PiBAQCAt MzE0LDIyICsyNTMsMTUgQEAgc3RhdGljIGludCBleHlub3NfYnVzX3BhcmVudF9wYXJzZV9vZihz dHJ1Y3QgZGV2aWNlX25vZGUgKm5wLAo+Pj4+Pj4gIAlpZiAob2ZfcHJvcGVydHlfcmVhZF91MzIo bnAsICJleHlub3Msc2F0dXJhdGlvbi1yYXRpbyIsICZidXMtPnJhdGlvKSkKPj4+Pj4+ICAJCWJ1 cy0+cmF0aW8gPSBERUZBVUxUX1NBVFVSQVRJT05fUkFUSU87Cj4+Pj4+PiAgCj4+Pj4+PiAtCWlm IChvZl9wcm9wZXJ0eV9yZWFkX3UzMihucCwgImV4eW5vcyx2b2x0YWdlLXRvbGVyYW5jZSIsCj4+ Pj4+PiAtCQkJCQkmYnVzLT52b2x0YWdlX3RvbGVyYW5jZSkpCj4+Pj4+PiAtCQlidXMtPnZvbHRh Z2VfdG9sZXJhbmNlID0gREVGQVVMVF9WT0xUQUdFX1RPTEVSQU5DRTsKPj4+Pj4+IC0KPj4+Pj4+ ICAJcmV0dXJuIDA7Cj4+Pj4+PiAtCj4+Pj4+PiAtZXJyX3JlZ3VsYXRvcjoKPj4+Pj4+IC0JcmVn dWxhdG9yX2Rpc2FibGUoYnVzLT5yZWd1bGF0b3IpOwo+Pj4+Pj4gLQo+Pj4+Pj4gLQlyZXR1cm4g cmV0Owo+Pj4+Pj4gIH0KPj4+Pj4+ICAKPj4+Pj4+ICBzdGF0aWMgaW50IGV4eW5vc19idXNfcGFy c2Vfb2Yoc3RydWN0IGRldmljZV9ub2RlICpucCwKPj4+Pj4+IC0JCQkgICAgICBzdHJ1Y3QgZXh5 bm9zX2J1cyAqYnVzKQo+Pj4+Pj4gKwkJCSAgICAgIHN0cnVjdCBleHlub3NfYnVzICpidXMsIGJv b2wgcGFzc2l2ZSkKPj4+Pj4+ICB7Cj4+Pj4+PiAgCXN0cnVjdCBkZXZpY2UgKmRldiA9IGJ1cy0+ ZGV2Owo+Pj4+Pj4gKwlzdHJ1Y3Qgb3BwX3RhYmxlICpvcHBfdGFibGU7Cj4+Pj4+PiArCWNvbnN0 IGNoYXIgKnZkZCA9ICJ2ZGQiOwo+Pj4+Pj4gIAlzdHJ1Y3QgZGV2X3BtX29wcCAqb3BwOwo+Pj4+ Pj4gIAl1bnNpZ25lZCBsb25nIHJhdGU7Cj4+Pj4+PiAgCWludCByZXQ7Cj4+Pj4+PiBAQCAtMzQ3 LDExICsyNzksMjIgQEAgc3RhdGljIGludCBleHlub3NfYnVzX3BhcnNlX29mKHN0cnVjdCBkZXZp Y2Vfbm9kZSAqbnAsCj4+Pj4+PiAgCQlyZXR1cm4gcmV0Owo+Pj4+Pj4gIAl9Cj4+Pj4+PiAgCj4+ Pj4+PiArCWlmICghcGFzc2l2ZSkgewo+Pj4+Pj4gKwkJb3BwX3RhYmxlID0gZGV2X3BtX29wcF9z ZXRfcmVndWxhdG9ycyhkZXYsICZ2ZGQsIDEpOwo+Pj4+Pj4gKwkJaWYgKElTX0VSUihvcHBfdGFi bGUpKSB7Cj4+Pj4+PiArCQkJcmV0ID0gUFRSX0VSUihvcHBfdGFibGUpOwo+Pj4+Pj4gKwkJCWRl dl9lcnIoZGV2LCAiZmFpbGVkIHRvIHNldCByZWd1bGF0b3JzICVkXG4iLCByZXQpOwo+Pj4+Pj4g KwkJCWdvdG8gZXJyX2NsazsvCj4+Pj4+PiArCQl9Cj4+Pj4+PiArCj4+Pj4+PiArCQlidXMtPm9w cF90YWJsZSA9IG9wcF90YWJsZTsKPj4+Pj4+ICsJfQo+Pj4+Pgo+Pj4+PiBUaGlzIGRyaXZlciBo YXMgZXh5bm9zX2J1c19wYXJlbnRfcGFyc2Vfb2YoKSBmdW5jdGlvbiBmb3IgcGFyZW50IGRldmZy ZXEgZGV2aWNlLgo+Pj4+PiBkZXZfcG1fb3BwX3NldF9yZWd1bGF0b3JzKCkgaGF2ZSB0byBiZSBj YWxsZWQgaW4gZXh5bm9zX2J1c19wYXJlbnRfcGFyc2Vfb2YoKQo+Pj4+PiBiZWNhdXNlIHRoZSBy ZWd1bGF0b3IgaXMgb25seSB1c2VkIGJ5IHBhcmVudCBkZXZmcmVxIGRldmljZS4KPj4+Pgo+Pj4+ IGV4eW5vc19idXNfcGFyc2Vfb2YoKSBpcyBjYWxsZWQgZm9yIGFsbCBkZXZmcmVxIGRldmljZXMg KGluY2x1ZGluZwo+Pj4+IHBhcmVudCkgYW5kIChhcyB5b3UndmUgbm90aWNlZCkgdGhlIHJlZ3Vs YXRvciBzaG91bGQgYmUgZW5hYmxlZCBiZWZvcmUKPj4+PiBlbmFibGluZyBjbG9jayAod2hpY2gg aXMgZG9uZSBpbiBleHlub3NfYnVzX3BhcnNlX29mKCkpIHNvIGFkZGluZwo+Pj4+IGV4dHJhIGFy Z3VtZW50IHRvIGV4eW5vc19idXNfcGFyc2Vfb2YoKSAobGlrZSBpdCBpcyBkb25lIGN1cnJlbnRs eSBpbgo+Pj4+IHRoZSBwYXRjaCkgCj4+Pgo+Pj4gSSB0aGluayB0aGF0IHRoaXMgcGF0Y2ggaGFz IHN0aWxsIHRoZSBwcm9ibGVtIGFib3V0IGNhbGwgc2VxdWVuY2UKPj4+IGJldHdlZW4gY2xvY2sg YW5kIHJlZ3VsYXRvciBhcyBmb2xsb3dpbmc6Cj4+Cj4+IFllcywgdGhpcyBzaG91bGQgYmUgZml4 ZWQgKHRob3VnaCB0aGUgd3Jvbmcgc2VxdWVuY2UgYmV0d2VlbiByZWd1bGF0b3IKPj4gYW5kIGNs b2NrIGhhbmRsaW5nIGlzIG5vdCBpbnRyb2R1Y2VkIGJ5IHRoZSBwYXRjaHNldCBpdHNlbGYgYW5k IGlzIHByZXNlbnQKPj4gaW4gdGhlIG9yaWdpbmFsIGRyaXZlciBjb2RlKS4KPj4KPj4+IDI3MyAg ICAgICAgIHJldCA9IGNsa19wcmVwYXJlX2VuYWJsZShidXMtPmNsayk7ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIAo+Pj4gMjc0ICAgICAgICAgaWYgKHJldCA8IDApIHsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCj4+ PiAyNzUgICAgICAgICAgICAgICAgIGRldl9lcnIoZGV2LCAiZmFpbGVkIHRvIGdldCBlbmFibGUg Y2xvY2tcbiIpOyAgICAgICAgICAgICAgICAgICAKPj4+IDI3NiAgICAgICAgICAgICAgICAgcmV0 dXJuIHJldDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIAo+Pj4gMjc3ICAgICAgICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCj4+PiAyNzggICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAKPj4+IDI3OSAgICAgICAgIGlmICghcGFzc2l2ZSkgeyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAo+Pj4gMjgwICAgICAg ICAgICAgICAgICBvcHBfdGFibGUgPSBkZXZfcG1fb3BwX3NldF9yZWd1bGF0b3JzKGRldiwgJnZk ZCwgMSk7ICAgICAgICAgICAgCj4+PiAyODEgICAgICAgICAgICAgICAgIGlmIChJU19FUlIob3Bw X3RhYmxlKSkgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKPj4+IDI4 MiAgICAgICAgICAgICAgICAgICAgICAgICByZXQgPSBQVFJfRVJSKG9wcF90YWJsZSk7ICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIAo+Pj4gMjgzICAgICAgICAgICAgICAgICAgICAgICAg IGRldl9lcnIoZGV2LCAiZmFpbGVkIHRvIHNldCByZWd1bGF0b3JzICVkXG4iLCByZXQpOyAgICAg Cj4+PiAyODQgICAgICAgICAgICAgICAgICAgICAgICAgZ290byBlcnJfY2xrOyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKPj4+IDI4NSAgICAgICAgICAgICAgICAg fSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIAo+Pj4gMjg2ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCj4+PiAyODcgICAgICAgICAg ICAgICAgIGJ1cy0+b3BwX3RhYmxlID0gb3BwX3RhYmxlOyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAKPj4+IDI4OCAgICAgICAgIH0gICAgICAgICAgICAgICAgICAgCj4+Pgo+ Pj4gbWFrZXMgaXQgcG9zc2libGUgdG8gZG8gdGhlIHNldHVwIGNvcnJlY3RseSB3aXRob3V0IHRo ZSBuZWVkCj4+Pj4gb2YgbWVyZ2luZyBib3RoIGZ1bmN0aW9ucyBpbnRvIG9uZSBodWdlIGZ1bmN0 aW9uICh3aGljaCB3b3VsZCBiZSBtb3JlCj4+Pj4gZGlmZmljdWx0IHRvIGZvbGxvdyB0aGFuIHR3 byBzaW1wbGVyIGZ1bmN0aW9ucyBJTUhPKS4gSXMgdGhhdCBhcHByb2FjaAo+Pj4+IGFjY2VwdGFi bGUgb3IgZG8geW91IHByZWZlciBvbmUgYmlnIGZ1bmN0aW9uPwo+Pj4KPj4+IEFjdHVhbGx5LCBJ IGRvbid0IGZvcmNlIHRvIG1ha2Ugb25lIGZ1bmN0aW9uIGZvciBib3RoCj4+PiBleHlub3NfYnVz X3BhcnNlX29mKCkgYW5kIGV4eW5vc19idXNfcGFyZW50X3BhcnNlX29mKCkuCj4+Pgo+Pj4gSWYg d2UganVzdCBrZWVwIHRoaXMgY29kZSwgZGV2X3BtX29wcF9zZXRfcmVndWxhdG9ycygpCj4+PiBz aG91bGQgYmUgaGFuZGxlZCBpbiBleHlub3NfYnVzX3BhcmVudF9wYXJzZV9vZigpCj4+PiBiZWNh dXNlIG9ubHkgcGFyZW50IGRldmZyZXEgZGV2aWNlIGNvbnRyb2xzIHRoZSByZWd1bGF0b3IuCj4+ Cj4+IENvdWxkIHlvdXIgcGxlYXNlIGV4cGxhaW4gcmF0aW9uYWxlIGZvciB0aGlzIHJlcXVpcmVt ZW50IChiZXNpZGVzCj4+IGZ1bmN0aW9uIG5hbWUpPwo+IAo+IE9LLiBJIGhvcGUgdG8gc2F0aXNm eSB0aGUgZm9sbG93aW5nIHJlcXVpcmVtZW50czoKPiAKPiAxLiBGaXggdGhlIHNlcXVlbmNlIHBy b2JsZW0gYmV0d2VlbiBjbG9jayBhbmQgcmVndWxhdG9yIGZvciBlbmFibGluZyB0aGVtLgo+IDIu IGRldl9wbV9vcHBfc2V0X3JlZ3VsYXRvcigpIGhhdmUgdG8gYmUgaGFuZGxlZCBpbiBleHlub3Nf YnVzX3BhcmVudF9wYXJzZV9vZigpCj4gICAgaW5zdGVhZCBvZiBleHlub3NfYnVzX3BhcnNlX29m KCkgZm9yIG9ubHkgcGFyZW50IGRldmZyZXEgZGV2aWNlLgo+IDMuIGV4eW5vc19idXNfcGFyc2Vf b2YoKSBoYXZlIHRvIGhhbmRsZSB0aGUgb25seSBjb21tb24gcHJvcGVydGllcwo+ICAgIG9mIGJv dGggcGFyZW50IGRldmZyZXEgZGV2aWNlIGFuZCBwYXNzaXZlIGRldmZyZXEgZGV2aWNlLgo+IAo+ Pgo+PiBUaGUgcGF0Y2ggYWRkcyAnYm9vbCBwYXNzaXZlJyBhcmd1bWVudCAod2hpY2ggaXMgc2V0 IHRvIGZhbHNlIGZvcgo+PiBwYXJlbnQgZGV2ZnJlcSBkZXZpY2UgYW5kIHRydWUgZm9yIGNoaWxk IGRldmZyZXEgZGV2aWNlKSB0bwo+PiBleHlub3NfYnVzX3BhcnNlX29mKCkgKHdoaWNoIGlzIGNh bGxlZCBmb3IgKmFsbCogZGV2ZnJlcSBkZXZpY2VzCj4gCj4gQXMgSSBtZW50ZWlvbmQsIGV4eW5v c19idXNfcGFyc2Vfb2YgaGF2ZSB0byBoYW5kbGUgdGhlIG9ubHkgY29tbW9uCj4gcHJvcGVydGll cyBvZiBib3RoIHBhcmVudCBkZXZpY2UgYW5kIHBhc3NpdmUgZGV2aWNlLiAKPiAKPiBJIGdhdGhl cmVkIHRoZSBwcm9wZXJ0aWVzIGZvciBwYXJlbnQgZGV2aWNlIGludG8gZXh5bm9zX2J1c19wYXJl bnRfcGFyc2Vfb2YoKQo+IFRoaXMgd2F5IHVzaW5nICdib29sIHBhc3NpdmUnIGFyZ3VtZW50IGlz IG5vdCBwcm9wZXIgaW4gZXh5bm9zX2J1c19wYXJzZV9vZigpLgo+IAo+IAo+PiBhbmQgaXMgY2Fs bGVkIGJlZm9yZSBleHlub3NfYnVzX3BhcmVudF9wYXJzZV9vZigpKSBhbmQgdGhlcmUgaXMKPj4g bm8gaGFyZCByZXF1aXJlbWVudCB0byBjYWxsIGRldl9wbV9vcHBfc2V0X3JlZ3VsYXRvcnMoKSBp bgo+PiBleHlub3NfYnVzX3BhcmVudF9wYXJzZV9vZigpIHNvIGFmdGVyIG9ubHkgY2hhbmdpbmcg dGhlIG9yZGVyaW5nCj4+IGJldHdlZW4gcmVndWxhdG9yIGFuZCBjbG9jayBoYW5kbGluZyB0aGUg c2V0dXAgY29kZSBzaG91bGQgYmUKPj4gY29ycmVjdC4KPj4KPj4gWyBQbGVhc2Ugbm90ZSB0aGF0 IHRoaXMgcGF0Y2ggbW92ZXMgcGFyZW50L2NoaWxkIGRldGVjdGlvbiBiZWZvcmUKPj4gICBleHlu b3NfYnVzX3BhcnNlX29mKCkgY2FsbC4gXQo+Pgo+Pj4gSW4gb3JkZXIgdG8ga2VlcCB0aGUgdHdv IGZ1bmN0aW9ucywgbWF5YmUgaGF2ZSB0byBjaGFuZ2UKPj4+IHRoZSBjYWxsIHRoZSBzZXF1ZW5j ZSBiZXR3ZWVuIGV4eW5vc19idXNfcGFyc2Vfb2YoKSBhbmQKPj4+IGV4eW5vc19idXNfcGFyZW50 X3BhcnNlX29mKCkuCj4+Cj4+IERvZXNuJ3Qgc2VlbSB0byBiZSBuZWVkZWQsIGNhcmUgdG8gZXhw bGFpbiBpdCBtb3JlPwo+IAo+IEluIG9yZGVyIHRvIGZpeCB0aGUgc2VxdWVuY2UgcHJvYmxlbSBi ZXR3ZWVuIGNsb2NrIGFuZCByZWd1bGF0b3IKPiB3aXRoIGRldl9wbV9vcHBfc2V0X3JlZ3VhbHRv cigpIGFuZCB3YW50IHRvIGtlZXAgdHdvIGZ1bmN0aW9ucwo+IChleHlub3NfYnVzX3BhcmVudF9w YXJzZV9vZigpIGFuZCBleHlub3NfYnVzX3BhcnNlX29mKCkpLAo+IGhhdmUgdG8gY2hhbmdlIHRo ZSBjYWxsIG9yZGVyIGFzIGZvbGxvd2luZyBhbmQgdGhlbiBtb2RpZnkKPiB0aGUgZXhjZXB0aW9u IGhhbmRsaW5nIGNvZGUgd2hlbiBlcnJvciBoYXBwZW4uCj4gCj4gCW5vZGUgPSBvZl9wYXJzZV9w aGFuZGxlKGRldi0+b2Zfbm9kZSwgImRldmZyZXEiLCAwKTsgICAgICAgICAgICAgICAgICAgIAo+ IAlpZiAobm9kZSkgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAKPiAJCW9mX25vZGVfcHV0KG5vZGUpOyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKPiAJCXBhc3NpdmUgPSB0cnVlCj4gCX0KPiAK PiAJaWYgKCFwYXNzaXZlKQkKPiAJCWV4eW5vc19idXNfcGFyZW50X3BhcnNlX29mKCkKPiAJCQlk ZXZfcG1fb3BwX3NldF9yZWd1bGF0b3IKPiAKPiAJZXh5bm9zX2J1c19wYXJzZV9vZigpCgpPSy4g VGhpcyBzZWVtcyBsaWtlIGEgc29sdXRpb24uCgpCZXN0IHJlZ2FyZHMsCi0tCkJhcnRsb21pZWog Wm9sbmllcmtpZXdpY3oKU2Ftc3VuZyBSJkQgSW5zdGl0dXRlIFBvbGFuZApTYW1zdW5nIEVsZWN0 cm9uaWNzCgo+Pgo+Pj4gT25jZSBhZ2FpbiwgSSBkb24ndCBmb3JjZSBhbnkgZml4ZWQgbWV0aG9k LiBJIHdhbnQgdG8gZml4IHRoZW0KPj4+IHdpdGggY29ycmVjdCB3YXkuCj4+Pgo+Pj4+Cj4+Pj4+ PiArCj4+Pj4+PiAgCS8qIEdldCB0aGUgZnJlcSBhbmQgdm9sdGFnZSBmcm9tIE9QUCB0YWJsZSB0 byBzY2FsZSB0aGUgYnVzIGZyZXEgKi8KPj4+Pj4+ICAJcmV0ID0gZGV2X3BtX29wcF9vZl9hZGRf dGFibGUoZGV2KTsKPj4+Pj4+ICAJaWYgKHJldCA8IDApIHsKPj4+Pj4+ICAJCWRldl9lcnIoZGV2 LCAiZmFpbGVkIHRvIGdldCBPUFAgdGFibGVcbiIpOwo+Pj4+Pj4gLQkJZ290byBlcnJfY2xrOwo+ Pj4+Pj4gKwkJZ290byBlcnJfcmVndWxhdG9yOwo+Pj4+Pj4gIAl9Cj4+Pj4+PiAgCj4+Pj4+PiAg CXJhdGUgPSBjbGtfZ2V0X3JhdGUoYnVzLT5jbGspOwo+Pj4+Pj4gQEAgLTM2Miw2ICszMDUsNyBA QCBzdGF0aWMgaW50IGV4eW5vc19idXNfcGFyc2Vfb2Yoc3RydWN0IGRldmljZV9ub2RlICpucCwK Pj4+Pj4+ICAJCXJldCA9IFBUUl9FUlIob3BwKTsKPj4+Pj4+ICAJCWdvdG8gZXJyX29wcDsKPj4+ Pj4+ICAJfQo+Pj4+Pj4gKwo+Pj4+Pj4gIAlidXMtPmN1cnJfZnJlcSA9IGRldl9wbV9vcHBfZ2V0 X2ZyZXEob3BwKTsKPj4+Pj4+ICAJZGV2X3BtX29wcF9wdXQob3BwKTsKPj4+Pj4+ICAKPj4+Pj4+ IEBAIC0zNjksNiArMzEzLDEzIEBAIHN0YXRpYyBpbnQgZXh5bm9zX2J1c19wYXJzZV9vZihzdHJ1 Y3QgZGV2aWNlX25vZGUgKm5wLAo+Pj4+Pj4gIAo+Pj4+Pj4gIGVycl9vcHA6Cj4+Pj4+PiAgCWRl dl9wbV9vcHBfb2ZfcmVtb3ZlX3RhYmxlKGRldik7Cj4+Pj4+PiArCj4+Pj4+PiArZXJyX3JlZ3Vs YXRvcjoKPj4+Pj4+ICsJaWYgKGJ1cy0+b3BwX3RhYmxlKSB7Cj4+Pj4+PiArCQlkZXZfcG1fb3Bw X3B1dF9yZWd1bGF0b3JzKGJ1cy0+b3BwX3RhYmxlKTsKPj4+Pj4+ICsJCWJ1cy0+b3BwX3RhYmxl ID0gTlVMTDsKPj4+Pj4+ICsJfQo+Pj4+Pgo+Pj4+PiBBcyBJIG1lbnRpb25lZCBhYm92ZSwgaXQg aXQgd3JvbmcgdG8gY2FsbCBkZXZfcG1fb3BwX3B1dF9yZWd1bGF0b3JzKCkKPj4+Pj4gYWZ0ZXIg cmVtb3ZpbmcgdGhlIG9wcF90YWJsZSBieSBkZXZfcG1fb3BwX29mX3JlbW92ZV90YWJsZSgpLgo+ Pj4+Pgo+Pj4+Pj4gKwo+Pj4+Pj4gIGVycl9jbGs6Cj4+Pj4+PiAgCWNsa19kaXNhYmxlX3VucHJl cGFyZShidXMtPmNsayk7Cj4+Pj4+PiAgCj4+Pj4+PiBAQCAtMzg2LDYgKzMzNyw3IEBAIHN0YXRp YyBpbnQgZXh5bm9zX2J1c19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQo+Pj4+ Pj4gIAlzdHJ1Y3QgZXh5bm9zX2J1cyAqYnVzOwo+Pj4+Pj4gIAlpbnQgcmV0LCBtYXhfc3RhdGU7 Cj4+Pj4+PiAgCXVuc2lnbmVkIGxvbmcgbWluX2ZyZXEsIG1heF9mcmVxOwo+Pj4+Pj4gKwlib29s IHBhc3NpdmUgPSBmYWxzZTsKPj4+Pj4+ICAKPj4+Pj4+ICAJaWYgKCFucCkgewo+Pj4+Pj4gIAkJ ZGV2X2VycihkZXYsICJmYWlsZWQgdG8gZmluZCBkZXZpY2V0cmVlIG5vZGVcbiIpOwo+Pj4+Pj4g QEAgLTM5NSwxMiArMzQ3LDE4IEBAIHN0YXRpYyBpbnQgZXh5bm9zX2J1c19wcm9iZShzdHJ1Y3Qg cGxhdGZvcm1fZGV2aWNlICpwZGV2KQo+Pj4+Pj4gIAlidXMgPSBkZXZtX2t6YWxsb2MoJnBkZXYt PmRldiwgc2l6ZW9mKCpidXMpLCBHRlBfS0VSTkVMKTsKPj4+Pj4+ICAJaWYgKCFidXMpCj4+Pj4+ PiAgCQlyZXR1cm4gLUVOT01FTTsKPj4+Pj4+ICsKPj4+Pj4+ICAJbXV0ZXhfaW5pdCgmYnVzLT5s b2NrKTsKPj4+Pj4+ICAJYnVzLT5kZXYgPSAmcGRldi0+ZGV2Owo+Pj4+Pj4gIAlwbGF0Zm9ybV9z ZXRfZHJ2ZGF0YShwZGV2LCBidXMpOwo+Pj4+Pj4gKwlub2RlID0gb2ZfcGFyc2VfcGhhbmRsZShk ZXYtPm9mX25vZGUsICJkZXZmcmVxIiwgMCk7Cj4+Pj4+PiArCWlmIChub2RlKSB7Cj4+Pj4+PiAr CQlvZl9ub2RlX3B1dChub2RlKTsKPj4+Pj4+ICsJCXBhc3NpdmUgPSB0cnVlOwo+Pj4+Pj4gKwl9 Cj4+Pj4+PiAgCj4+Pj4+PiAgCS8qIFBhcnNlIHRoZSBkZXZpY2UtdHJlZSB0byBnZXQgdGhlIHJl c291cmNlIGluZm9ybWF0aW9uICovCj4+Pj4+PiAtCXJldCA9IGV4eW5vc19idXNfcGFyc2Vfb2Yo bnAsIGJ1cyk7Cj4+Pj4+PiArCXJldCA9IGV4eW5vc19idXNfcGFyc2Vfb2YobnAsIGJ1cywgcGFz c2l2ZSk7Cj4+Pj4+PiAgCWlmIChyZXQgPCAwKQo+Pj4+Pj4gIAkJcmV0dXJuIHJldDsKPj4+Pj4+ ICAKPj4+Pj4+IEBAIC00MTAsMTMgKzM2OCwxMCBAQCBzdGF0aWMgaW50IGV4eW5vc19idXNfcHJv YmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKPj4+Pj4+ICAJCWdvdG8gZXJyOwo+Pj4+ Pj4gIAl9Cj4+Pj4+PiAgCj4+Pj4+PiAtCW5vZGUgPSBvZl9wYXJzZV9waGFuZGxlKGRldi0+b2Zf bm9kZSwgImRldmZyZXEiLCAwKTsKPj4+Pj4+IC0JaWYgKG5vZGUpIHsKPj4+Pj4+IC0JCW9mX25v ZGVfcHV0KG5vZGUpOwo+Pj4+Pj4gKwlpZiAocGFzc2l2ZSkKPj4+Pj4+ICAJCWdvdG8gcGFzc2l2 ZTsKPj4+Pj4+IC0JfSBlbHNlIHsKPj4+Pj4+IC0JCXJldCA9IGV4eW5vc19idXNfcGFyZW50X3Bh cnNlX29mKG5wLCBidXMpOwo+Pj4+Pj4gLQl9Cj4+Pj4+PiArCj4+Pj4+PiArCXJldCA9IGV4eW5v c19idXNfcGFyZW50X3BhcnNlX29mKG5wLCBidXMpOwo+Pj4+Pj4gIAo+Pj4+Pgo+Pj4+PiBSZW1v dmUgdW5uZWVkZWQgYmxhbmsgbGluZS4KPj4+Pj4KPj4+Pj4+ICAJaWYgKHJldCA8IDApCj4+Pj4+ PiAgCQlnb3RvIGVycjsKPj4+Pj4+IEBAIC01MDksNiArNDY0LDExIEBAIHN0YXRpYyBpbnQgZXh5 bm9zX2J1c19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQo+Pj4+Pj4gIAo+Pj4+ Pj4gIGVycjoKPj4+Pj4+ICAJZGV2X3BtX29wcF9vZl9yZW1vdmVfdGFibGUoZGV2KTsKPj4+Pj4+ ICsJaWYgKGJ1cy0+b3BwX3RhYmxlKSB7Cj4+Pj4+PiArCQlkZXZfcG1fb3BwX3B1dF9yZWd1bGF0 b3JzKGJ1cy0+b3BwX3RhYmxlKTsKPj4+Pj4+ICsJCWJ1cy0+b3BwX3RhYmxlID0gTlVMTDsKPj4+ Pj4+ICsJfQo+Pj4+Pj4gKwo+Pj4+Pgo+Pj4+PiBkaXR0by4KPj4+Pj4gSGF2ZSB0byBkaXNhYmxl IHJlZ3VsYXRvciBhZnRlciBkaXNhYmxpbmcgdGhlIGNsb2NrCj4+Pj4+IHRvIHByZXZlbnQgdGhl IGgvdyBmYXVsdC4KPj4+Pj4KPj4+Pj4gSSB0aGluayB0aGF0IHlvdSBzaG91bGQgY2FsbCB0aGVt IHdpdGggZm9sbG93aW5nIHNlcXVlbmNlOgo+Pj4+Pgo+Pj4+PiAJY2xrX2Rpc2FibGVfdW5wcmVw YXJlKGJ1cy0+Y2xrKTsKPj4+Pj4gCWlmIChidXMtPm9wcF90YWJsZSkKPj4+Pj4gCQlkZXZfcG1f b3BwX3B1dF9yZWd1bGF0b3JzKGJ1cy0+b3BwX3RhYmxlKTsKPj4+Pj4gCWRldl9wbV9vcHBfb2Zf cmVtb3ZlX3RhYmxlKGRldik7Cj4+Pj4+Cj4+Pj4+PiAgCWNsa19kaXNhYmxlX3VucHJlcGFyZShi dXMtPmNsayk7Cj4+Pj4+PiAgCj4+Pj4+PiAgCXJldHVybiByZXQ7Cj4+Pj4KPj4+PiBCZXN0IHJl Z2FyZHMsCj4+Pj4gLS0KPj4+PiBCYXJ0bG9taWVqIFpvbG5pZXJraWV3aWN6Cj4+Pj4gU2Ftc3Vu ZyBSJkQgSW5zdGl0dXRlIFBvbGFuZAo+Pj4+IFNhbXN1bmcgRWxlY3Ryb25pY3MKPj4KPj4gQmVz dCByZWdhcmRzLAo+PiAtLQo+PiBCYXJ0bG9taWVqIFpvbG5pZXJraWV3aWN6Cj4+IFNhbXN1bmcg UiZEIEluc3RpdHV0ZSBQb2xhbmQKPj4gU2Ftc3VuZyBFbGVjdHJvbmljcwoKX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KbGludXgtYXJtLWtlcm5lbCBtYWls aW5nIGxpc3QKbGludXgtYXJtLWtlcm5lbEBsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0 cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtYXJtLWtlcm5lbAo=