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=-2.2 required=3.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SPF_HELO_NONE, SPF_PASS,UNPARSEABLE_RELAY,URIBL_BLOCKED,USER_AGENT_SANE_1 autolearn=no 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 A8B15C433DF for ; Tue, 26 May 2020 16:56:44 +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 6FAF920776 for ; Tue, 26 May 2020 16:56:44 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="dCK4jCwG" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 6FAF920776 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=collabora.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-Type: Content-Transfer-Encoding:Cc:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:Date:Message-ID:References: To:Subject:From:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=QZ7AQ8okxDI63V+9G/nnpX62iKOZ0ZCiWVXxDGCrKhs=; b=dCK4jCwG1csDZoGuPyj4xX0M2 aurdZePWx55gW/V3wz6okcQH5odCiTTWo07SznKjCDQwE0dRTTX9lOxbRSRo/77pG8X7+NFkV1GdA 7hsj4dA9EjUeTr66paaMg2sebr+i+HZZQ7ggZ6uL0R0WHwkTIFwZMBGD/MEY5oaMIhFG71O939oY1 xM4bxEw1F0LXh/98bdZCxwIYIYSfZGGSuIzLAZFMALabU1pkHsLrApejxXH60azWL1nW3k9ZI/Olj CbAHngOD60hIsU0K7hZUQbAyoqKSB2TK7TarfpAHktYF41MNqU9+nv7kS468USxjf4MllfnxJaxYX LUvldBf3A==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1jdcsR-0008Jm-9E; Tue, 26 May 2020 16:56:31 +0000 Received: from bhuna.collabora.co.uk ([2a00:1098:0:82:1000:25:2eeb:e3e3]) by bombadil.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1jdcsN-0008Iz-PK for linux-arm-kernel@lists.infradead.org; Tue, 26 May 2020 16:56:30 +0000 Received: from [127.0.0.1] (localhost [127.0.0.1]) (Authenticated sender: andrzej.p) with ESMTPSA id 2D2A02A336C From: Andrzej Pietrasiewicz Subject: Re: [RFC v3 1/2] thermal: core: Let thermal zone device's mode be stored in its struct To: Daniel Lezcano , linux-pm@vger.kernel.org References: <9ac3b37a-8746-b8ee-70e1-9c876830ac83@linaro.org> <20200417162020.19980-1-andrzej.p@collabora.com> <20200417162020.19980-2-andrzej.p@collabora.com> <802b4bd5-07c9-de3a-2ac6-5905b12d6adc@collabora.com> Message-ID: <5d59710a-3555-79ef-a354-a132b6084c63@collabora.com> Date: Tue, 26 May 2020 18:56:20 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.7.0 MIME-Version: 1.0 In-Reply-To: Content-Language: en-US X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20200526_095628_090735_CA030647 X-CRM114-Status: GOOD ( 34.43 ) 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: "Rafael J . Wysocki" , platform-driver-x86@vger.kernel.org, Shawn Guo , kernel@collabora.com, Fabio Estevam , Amit Kucheria , linux-acpi@vger.kernel.org, NXP Linux Team , Darren Hart , Zhang Rui , Gayatri Kammela , Len Brown , Barlomiej Zolnierkiewicz , Sascha Hauer , Ido Schimmel , Jiri Pirko , Thomas Gleixner , Allison Randal , linux-arm-kernel@lists.infradead.org, Support Opensource , netdev@vger.kernel.org, Peter Kaestle , Pengutronix Kernel Team , Enrico Weigelt , "David S . Miller" , Andy Shevchenko Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+infradead-linux-arm-kernel=archiver.kernel.org@lists.infradead.org SGkgRGFuaWVsLAoKVyBkbml1IDI2LjA1LjIwMjAgb8KgMDA6MDgsIERhbmllbCBMZXpjYW5vIHBp c3plOgo+IE9uIDI1LzA1LzIwMjAgMjE6MzUsIEFuZHJ6ZWogUGlldHJhc2lld2ljeiB3cm90ZToK Pj4gSGkgRGFuaWVsLAo+Pgo+PiBXIGRuaXUgMjMuMDUuMjAyMCBvwqAyMzoyNCwgRGFuaWVsIExl emNhbm8gcGlzemU6Cj4+PiBIaSBBbmRyemVqLAo+Pj4KPj4+IE9uIDE3LzA0LzIwMjAgMTg6MjAs IEFuZHJ6ZWogUGlldHJhc2lld2ljeiB3cm90ZToKPj4+PiBUaGVybWFsIHpvbmUgZGV2aWNlcycg bW9kZSBpcyBzdG9yZWQgaW4gaW5kaXZpZHVhbCBkcml2ZXJzLiBUaGlzIHBhdGNoCj4+Pj4gY2hh bmdlcyBpdCBzbyB0aGF0IG1vZGUgaXMgc3RvcmVkIGluIHN0cnVjdCB0aGVybWFsX3pvbmVfZGV2 aWNlIGluc3RlYWQuCj4+Pj4KPj4+PiBBcyBhIHJlc3VsdCBhbGwgZHJpdmVyLXNwZWNpZmljIHZh cmlhYmxlcyBzdG9yaW5nIHRoZSBtb2RlIGFyZSBub3QKPj4+PiBuZWVkZWQKPj4+PiBhbmQgYXJl IHJlbW92ZWQuIENvbnNlcXVlbnRseSwgdGhlIGdldF9tb2RlKCkgaW1wbGVtZW50YXRpb25zIGhh dmUKPj4+PiBub3RoaW5nCj4+Pj4gdG8gb3BlcmF0ZSBvbiBhbmQgbmVlZCB0byBiZSByZW1vdmVk LCB0b28uCj4+Pj4KPj4+PiBTb21lIHRoZXJtYWwgZnJhbWV3b3JrIHNwZWNpZmljIGZ1bmN0aW9u cyBhcmUgaW50cm9kdWNlZDoKPj4+Pgo+Pj4+IHRoZXJtYWxfem9uZV9kZXZpY2VfZ2V0X21vZGUo KQo+Pj4+IHRoZXJtYWxfem9uZV9kZXZpY2Vfc2V0X21vZGUoKQo+Pj4+IHRoZXJtYWxfem9uZV9k ZXZpY2VfZW5hYmxlKCkKPj4+PiB0aGVybWFsX3pvbmVfZGV2aWNlX2Rpc2FibGUoKQo+Pj4+Cj4+ Pj4gdGhlcm1hbF96b25lX2RldmljZV9nZXRfbW9kZSgpIGFuZCBpdHMgInNldCIgY291bnRlcnBh cnQgdGFrZSB0emQncyBsb2NrCj4+Pj4gYW5kIHRoZSAic2V0IiBjYWxscyBkcml2ZXIncyBzZXRf bW9kZSgpIGlmIHByb3ZpZGVkLCBzbyB0aGUgbGF0dGVyIG11c3QKPj4+PiBub3QgdGFrZSB0aGlz IGxvY2sgYWdhaW4uIEF0IHRoZSBlbmQgb2YgdGhlICJzZXQiCj4+Pj4gdGhlcm1hbF96b25lX2Rl dmljZV91cGRhdGUoKSBpcyBjYWxsZWQgc28gZHJpdmVycyBkb24ndCBuZWVkIHRvCj4+Pj4gcmVw ZWF0IHRoaXMKPj4+PiBpbnZvY2F0aW9uIGluIHRoZWlyIHNwZWNpZmljIHNldF9tb2RlKCkgaW1w bGVtZW50YXRpb25zLgo+Pj4+Cj4+Pj4gVGhlIHNjb3BlIG9mIHRoZSBhYm92ZSA0IGZ1bmN0aW9u cyBpcyBwdXJwb3NlZGx5IGxpbWl0ZWQgdG8gdGhlIHRoZXJtYWwKPj4+PiBmcmFtZXdvcmsgYW5k IGRyaXZlcnMgYXJlIG5vdCBzdXBwb3NlZCB0byBjYWxsIHRoZW0uIFRoaXMgZW5jYXBzdWxhdGlv bgo+Pj4+IGRvZXMgbm90IGZ1bGx5IHdvcmsgYXQgdGhlIG1vbWVudCBmb3Igc29tZSBkcml2ZXJz LCB0aG91Z2g6Cj4+Pj4KPj4+PiAtIHBsYXRmb3JtL3g4Ni9hY2VyaGRmLmMKPj4+PiAtIGRyaXZl cnMvdGhlcm1hbC9pbXhfdGhlcm1hbC5jCj4+Pj4gLSBkcml2ZXJzL3RoZXJtYWwvaW50ZWwvaW50 ZWxfcXVhcmtfZHRzX3RoZXJtYWwuYwo+Pj4+IC0gZHJpdmVycy90aGVybWFsL29mLXRoZXJtYWwu Ywo+Pj4+Cj4+Pj4gYW5kIHRoZXkgbWFuaXB1bGF0ZSBzdHJ1Y3QgdGhlcm1hbF96b25lX2Rldmlj ZSdzIG1lbWJlcnMgZGlyZWN0bHkuCj4+Pj4KPj4+PiBzdHJ1Y3QgdGhlcm1hbF96b25lX3BhcmFt cyBnYWlucyBhIG5ldyBtZW1iZXIgY2FsbGVkIGluaXRpYWxfbW9kZSwgd2hpY2gKPj4+PiBpcyB1 c2VkIHRvIHNldCB0emQncyBtb2RlIGF0IHJlZ2lzdHJhdGlvbiB0aW1lLgo+Pj4+Cj4+Pj4gVGhl IHN5c2ZzICJtb2RlIiBhdHRyaWJ1dGUgaXMgYWx3YXlzIGV4cG9zZWQgZnJvbSBub3cgb24sIGJl Y2F1c2UgYWxsCj4+Pj4gdGhlcm1hbCB6b25lIGRldmljZXMgbm93IGhhdmUgdGhlaXIgZ2V0X21v ZGUoKSBpbXBsZW1lbnRlZCBhdCB0aGUKPj4+PiBnZW5lcmljCj4+Pj4gbGV2ZWwgYW5kIGl0IGlz IGFsd2F5cyBhdmFpbGFibGUuIEV4cG9zaW5nICJtb2RlIiBkb2Vzbid0IGh1cnQgdGhlCj4+Pj4g ZHJpdmVycwo+Pj4+IHdoaWNoIGRvbid0IHByb3ZpZGUgdGhlaXIgb3duIHNldF9tb2RlKCksIGJl Y2F1c2Ugd3JpdGluZyB0byAibW9kZSIgd2lsbAo+Pj4+IHJlc3VsdCBpbiAtRVBFUk0sIGFzIGV4 cGVjdGVkLgo+Pj4KPj4+IFRoZSByZXN1bHQgaXMgZ3JlYXQsIHRoYXQgaXMgYSBuaWNlIGNsZWFu dXAgb2YgdGhlIHRoZXJtYWwgZnJhbWV3b3JrLgo+Pj4KPj4+IEFmdGVyIHJldmlldyBpdCBhcHBl YXJzIHRoZXJlIGFyZSBzdGlsbCBwcm9ibGVtcyBJTU8sIGVzcGVjaWFsbHkgd2l0aAo+Pj4gdGhl IHN1c3BlbmQgLyByZXN1bWUgcGF0aC4gVGhlIHBhdGNoIGlzIGJpZywgaXQgaXMgYSBiaXQgY29t cGxleCB0bwo+Pj4gY29tbWVudC4gSSBzdWdnZXN0IHRvIHJlLW9yZyB0aGUgY2hhbmdlcyBhcyBm b2xsb3dpbmc6Cj4+Pgo+Pj4gIMKgIC0gcGF0Y2ggMSA6IEFkZCB0aGUgZm91ciBmdW5jdGlvbnM6 Cj4+Pgo+Pj4gIMKgICogdGhlcm1hbF96b25lX2RldmljZV9zZXRfbW9kZSgpCj4+PiAgwqAgKiB0 aGVybWFsX3pvbmVfZGV2aWNlX2VuYWJsZSgpCj4+PiAgwqAgKiB0aGVybWFsX3pvbmVfZGV2aWNl X2Rpc2FibGUoKQo+Pj4gIMKgICogdGhlcm1hbF96b25lX2RldmljZV9pc19lbmFibGVkKCkKPj4+ Cj4+PiAqYnV0KiBkbyBub3QgZXhwb3J0IHRoZXJtYWxfem9uZV9kZXZpY2Vfc2V0X21vZGUoKSwg aXQgbXVzdCBzdGF5IHByaXZhdGUKPj4+IHRvIHRoZSB0aGVybWFsIGZyYW1ld29yayBBVE0uCj4+ Cj4+IE5vdCBleHBvcnRpbmcgdGhlcm1hbF96b25lX2RldmljZV9zZXRfbW9kZSgpIGltcGxpZXMg bm90IGV4cG9ydGluZwo+PiB0aGVybWFsX3pvbmVfZGV2aWNlX2VuYWJsZSgpL3RoZXJtYWxfem9u ZV9kZXZpY2VfZGlzYWJsZSgpIGJlY2F1c2UgdGhleQo+PiBhcmUgaW1wbGVtZW50ZWQgaW4gdGVy bXMgb2YgdGhlIGZvcm1lci4gT3IgZG8geW91IGhhdmUgYSBkaWZmZXJlbnQgaWRlYT8KPiAKPiBJ IG1lYW50IG5vIGlubGluZSBmb3IgdGhlbSBidXQgYXMgYmVsb3c6Cj4gCj4gaW4gLmgKPiAKPiBl eHRlcm4gaW50IHRoZXJtYWxfem9uZV9kZXZpY2VfZW5hYmxlKCk7Cj4gZXh0ZXJuIGludCB0aGVy bWFsX3pvbmVfZGV2aWNlX2Rpc2FibGUoKTsKPiBleHRlcm4gaW50IHRoZXJtYWxfem9uZV9kZXZp Y2VfaXNfZW5hYmxlZCgpOwo+IAo+IGluIC5jCj4gCj4gc3RhdGljIGludCB0aGVybWFsX3pvbmVf ZGV2aWNlX3NldF9tb2RlKCkKPiB7Cj4gCS4uLgo+IH0KPiAKPiBpbnQgdGhlcm1hbF96b25lX2Rl dmljZV9lbmFibGUoKQo+IHsKPiAJdGhlcm1hbF96b25lX2RldmljZV9zZXRfbW9kZSgpOwo+IH0K PiBFWFBPUlRfU1lNQk9MX0dQTCh0aGVybWFsX3pvbmVfZGV2aWNlX2VuYWJsZSk7Cj4gCgpIbW0u IEknbSB0cnlpbmcgdG8gcHJvY2VlZCBhY2NvcmRpbmcgdG8gd2hhdCB5b3Ugb3V0bGluZSwgYnV0 IGl0CmRvZXNuJ3QgZmVlbCB0aGUgcmlnaHQgYXBwcm9hY2guIExldCBtZSBzaG93IHlvdSBwYXRj aCAxOgoKZHJpdmVycy90aGVybWFsL3RoZXJtYWxfY29yZS5jOgoKK2ludCB0aGVybWFsX3pvbmVf ZGV2aWNlX3NldF9tb2RlKHN0cnVjdCB0aGVybWFsX3pvbmVfZGV2aWNlICp0eiwKKwkJCQkgZW51 bSB0aGVybWFsX2RldmljZV9tb2RlIG1vZGUpCit7CisJaW50IHJldCA9IDA7CisKKwltdXRleF9s b2NrKCZ0ei0+bG9jayk7CisKKwlpZiAodHotPm9wcy0+c2V0X21vZGUpCisJCXJldCA9IHR6LT5v cHMtPnNldF9tb2RlKHR6LCBtb2RlKTsKKworCW11dGV4X3VubG9jaygmdHotPmxvY2spOworCisJ dGhlcm1hbF96b25lX2RldmljZV91cGRhdGUodHosIFRIRVJNQUxfRVZFTlRfVU5TUEVDSUZJRUQp OworCisJcmV0dXJuIHJldDsKK30KKworaW50IHRoZXJtYWxfem9uZV9kZXZpY2VfZW5hYmxlKHN0 cnVjdCB0aGVybWFsX3pvbmVfZGV2aWNlICp0eikKK3sKKwlyZXR1cm4gdGhlcm1hbF96b25lX2Rl dmljZV9zZXRfbW9kZSh0eiwgVEhFUk1BTF9ERVZJQ0VfRU5BQkxFRCk7Cit9CitFWFBPUlRfU1lN Qk9MKHRoZXJtYWxfem9uZV9kZXZpY2VfZW5hYmxlKTsKKworaW50IHRoZXJtYWxfem9uZV9kZXZp Y2VfZGlzYWJsZShzdHJ1Y3QgdGhlcm1hbF96b25lX2RldmljZSAqdHopCit7CisJcmV0dXJuIHRo ZXJtYWxfem9uZV9kZXZpY2Vfc2V0X21vZGUodHosIFRIRVJNQUxfREVWSUNFX0RJU0FCTEVEKTsK K30KK0VYUE9SVF9TWU1CT0wodGhlcm1hbF96b25lX2RldmljZV9kaXNhYmxlKTsKKworaW50IHRo ZXJtYWxfem9uZV9kZXZpY2VfaXNfZW5hYmxlZChzdHJ1Y3QgdGhlcm1hbF96b25lX2RldmljZSAq dHopCit7CisJZW51bSB0aGVybWFsX2RldmljZV9tb2RlIG1vZGUgPSBUSEVSTUFMX0RFVklDRV9F TkFCTEVEOworCWludCByZXQ7CisKKwltdXRleF9sb2NrKCZ0ei0+bG9jayk7CisKKwlpZiAodHot Pm9wcy0+Z2V0X21vZGUpCisJCXJldCA9IHR6LT5vcHMtPmdldF9tb2RlKHR6LCAmbW9kZSk7CisK KwltdXRleF91bmxvY2soJnR6LT5sb2NrKTsKKworCXJldHVybiBtb2RlID09IFRIRVJNQUxfREVW SUNFX0VOQUJMRUQ7Cit9CitFWFBPUlRfU1lNQk9MKHRoZXJtYWxfem9uZV9kZXZpY2VfaXNfZW5h YmxlZCk7CisKCnBsdXMgcHJvdG90eXBlcyBvZiBhbGwgZXhjZXB0IHNldF9tb2RlIGluIGluY2x1 ZGUvbGludXgvdGhlcm1hbC5oCgpJIGNhbiBzZWUgMiBwcm9ibGVtczoKCjEpIHdlIGFkZCB1bnVz ZWQgY29kZSB0byB0aGUga2VybmVsIChwZXJoYXBzIHRoaXMgaXMgb2sgaWYgcGF0Y2hlcyBpbiB0 aGlzCnNlcmllcyB3aWxsIHN0YXJ0IHVzaW5nIGl0KQoyKSB0emQgKmRvZXMgbm90KiBzdG9yZSBt b2RlLiBUaGVzZSBhcmUgZHJpdmVycyB0aGF0IHByb3ZpZGUgbW9kZSBhY2Nlc3MKd2l0aCBnZXRf bW9kZSgpL3NldF9tb2RlKCkgLSBpZiB0aGV5IGltcGxlbWVudCB0aGVtLiBXaGF0IGlmIHRoZXkg ZG9uJ3Q/CklmIHRoZXJtYWxfem9uZV9kZXZpY2Vfc2V0X21vZGUoKSBpcyBpbnRyb2R1Y2VkIG5v dyBpdHMgZWZmZWN0IGRlcGVuZHMgb24Kd2hldGhlciBhIGRyaXZlciBpbXBsZW1lbnRzIHNldF9t b2RlKCkgb3Igbm90LiBJZiBpdCBkb2Vzbid0IHRoZW4gZGVzcGl0ZQp0aGVybWFsX3pvbmVfZGV2 aWNlX3NldF9tb2RlKCkgYmVpbmcgaW52b2tlZCB0aGUgbW9kZSBpcyBub3QgY2hhbmdlZC4KVGhl biB3aGF0IGRvZXMgdGhlcm1hbF96b25lX2RldmljZV9pc19lbmFibGVkKCkgbWVhbj8gV2UgZG9u J3Qga25vdywgYmVjYXVzZQp3ZSBkb24ndCBrbm93IHdoYXQgdGhlIGVmZmVjdCBvZiB0aGVybWFs X3pvbmVfZGV2aWNlX3NldF9tb2RlKCkgaXMgaW4gdGhlCmZpcnN0IHBsYWNlLiBBbmQgaWYgdGhl IGRyaXZlciBkb2VzIG5vdCBwcm92aWRlIGdldF9tb2RlKCkgdGhlbgp0aGVybWFsX3pvbmVfZGV2 aWNlX2lzX2VuYWJsZWQoKSBhbHdheXMgcmV0dXJucyAiZW5hYmxlZCIuCgpBZGRpbmcgdGhlc2Ug ZnVuY3Rpb25zIG5vdyB3aXRob3V0IG1vZGUgYmVpbmcgc3RvcmVkIGluIHR6ZCBzZWVtcyBhd2t3 YXJkCnRvIG1lLiBDb25zZXF1ZW50bHksIElNTyB0aGUgZmlyc3QgdGhpbmcgdG8gZG8gaXMgbWFr ZSB0emQgc3RvcmUgZGV2aWNlJ3MKbW9kZSBhbmQgdGhpcyB3YXkgYmUgaW5kZXBlbmRlbnQgZnJv bSB3aGV0aGVyIGRyaXZlcnMgaW1wbGVtZW50IG9yIG5vdAppbXBsZW1lbnQgZ2V0X21vZGUoKS9z ZXRfbW9kZSgpLgoKPiAKPj4+ICDCoCAtIHBhdGNoIDIgOiBBZGQgdGhlIG1vZGUgVEhFUk1BTF9E RVZJQ0VfU1VTUEVOREVECj4+Pgo+Pj4gSW4gdGhlIHRoZXJtYWxfcG1fbm90aWZ5KCkgaW4gdGhl Ogo+Pj4KPj4+ICDCoCAtIFBNX1NVU1BFTkRfUFJFUEFSRSBjYXNlLCBzZXQgdGhlIG1vZGUgdG8g VEhFUk1BTF9ERVZJQ0VfU1VTUEVOREVEIGlmCj4+PiB0aGUgbW9kZSBpcyBUSEVSTUFMX0RFVklD RV9FTkFCTEVECj4+Pgo+Pj4gIMKgIC0gUE1fUE9TVF9TVVNQRU5EIGNhc2UsIHNldCB0aGUgbW9k ZSB0byBUSEVSTUFMX0RFVklDRV9FTkFCTEVELCBpZiB0aGUKPj4+IG1vZGUgaXMgVEhFUk1BTF9E RVZJQ0VfU1VTUEVOREVECj4+PgoKZHJpdmVycy90aGVybWFsL3RoZXJtYWxfY29yZS5jOgoKICAJ Y2FzZSBQTV9ISUJFUk5BVElPTl9QUkVQQVJFOgogIAljYXNlIFBNX1JFU1RPUkVfUFJFUEFSRToK ICAJY2FzZSBQTV9TVVNQRU5EX1BSRVBBUkU6CisJCWxpc3RfZm9yX2VhY2hfZW50cnkodHosICZ0 aGVybWFsX3R6X2xpc3QsIG5vZGUpIHsKKwkJCXR6X21vZGUgPSBUSEVSTUFMX0RFVklDRV9FTkFC TEVEOworCQkJaWYgKHR6LT5vcHMtPmdldF9tb2RlKQorCQkJCXR6LT5vcHMtPmdldF9tb2RlKHR6 LCAmdHpfbW9kZSk7CisJCQlpZiAodHpfbW9kZSA9PSBUSEVSTUFMX0RFVklDRV9FTkFCTEVEKQor CQkJCXRoZXJtYWxfem9uZV9kZXZpY2Vfc2V0X21vZGUodHosCisJCQkJCQlUSEVSTUFMX0RFVklD RV9TVVNQRU5ERUQpOworCQl9CiAgCQlhdG9taWNfc2V0KCZpbl9zdXNwZW5kLCAxKTsKICAJCWJy ZWFrOwogIAljYXNlIFBNX1BPU1RfSElCRVJOQVRJT046CkBAIC0xNTMwLDYgKzE1MzgsOSBAQCBz dGF0aWMgaW50IHRoZXJtYWxfcG1fbm90aWZ5KHN0cnVjdCBub3RpZmllcl9ibG9jayAqbmIsCiAg IAkJCXR6X21vZGUgPSBUSEVSTUFMX0RFVklDRV9FTkFCTEVEOwogIAkJCWlmICh0ei0+b3BzLT5n ZXRfbW9kZSkKICAJCQkJdHotPm9wcy0+Z2V0X21vZGUodHosICZ0el9tb2RlKTsKCiAgCQkJaWYg KHR6X21vZGUgPT0gVEhFUk1BTF9ERVZJQ0VfRElTQUJMRUQpCiAgCQkJCWNvbnRpbnVlOworCQkJ aWYgKHR6X21vZGUgPT0gVEhFUk1BTF9ERVZJQ0VfU1VTUEVOREVEKQorCQkJCXRoZXJtYWxfem9u ZV9kZXZpY2Vfc2V0X21vZGUodHosCisJCQkJCQlUSEVSTUFMX0RFVklDRV9FTkFCTEVEKTsKCgpp bmNsdWRlL2xpbnV4L3RoZXJtYWwuaDoKICBlbnVtIHRoZXJtYWxfZGV2aWNlX21vZGUgewogIAlU SEVSTUFMX0RFVklDRV9ESVNBQkxFRCA9IDAsCiAgCVRIRVJNQUxfREVWSUNFX0VOQUJMRUQsCisJ VEhFUk1BTF9ERVZJQ0VfU1VTUEVOREVELAoKV2UgZG9uJ3Qga25vdyBpZiBzZXRfbW9kZSgpIHdh cyBlZmZlY3RpdmUgaW4gUE1fU1VTUEVORF9QUkVQQVJFX1BBVEguCklmIGl0IHdhc24ndCB0aGVu IGluc3RlYWQgb2YgYmVpbmcgU1VTUEVOREVEIHRoZSBkZXZpY2UgaXMgc3RpbGwgRU5BQkxFRC4K SWYgc3RpbGwgZW5hYmxlZCBpdCBkb2Vzbid0IG5lZWQgZW5hYmxpbmcgc28gdGhlIGxhc3QgImlm IiBkb2VzIHRoZQpyaWdodCB0aGluZywgYnV0IGRvZXMgbm90IGZlZWwgcmlnaHQuCgo+Pj4gIMKg IC0gcGF0Y2ggMyA6IENoYW5nZSB0aGUgbW9uaXRvciBmdW5jdGlvbgo+Pj4KPj4+IENoYW5nZSBt b25pdG9yX3RoZXJtYWxfem9uZSgpIGZ1bmN0aW9uIHRvIHNldCB0aGUgcG9sbGluZyB0byB6ZXJv IGlmIHRoZQo+Pj4gbW9kZSBpcyBUSEVSTUFMX0RFVklDRV9ESVNBQkxFRAo+Pgo+PiBTbyB3ZSBh c3N1bWUgdGhpczogaWYgYSBkcml2ZXIgY3JlYXRlcyBhIHR6IHdoaWNoIGlzIGluaXRpYWxseSBF TkFCTEVELAo+PiBpdCB3aWxsIGJlIHBvbGxlZC4gSWYgYSBkcml2ZXIgY3JlYXRlcyBhIHR6IHdo aWNoIGlzIGluaXRpYWxseSBESVNBQkxFRAo+PiAod2hpY2ggaXMgd2hhdCB5b3Ugc3VnZ2VzdCB0 aGUgZHJpdmVycyBzaG91bGQgYmUgZG9pbmcsIGJ1dCBub3QgYWxsIG9mIHRoZW0KPj4gZG8pLCBp dCB3b24ndCBiZSBwb2xsZWQgdW5sZXNzIHRoZSBkcml2ZXIgZXhwbGljaXRseSBlbmFibGVzIGl0 cyB0ei4KPiAKPiBZZXMuCj4gCj4+IEFtIEkgY29uY2x1ZGluZyByaWdodCB0aGF0IGEgc3VzcGVu ZGVkIGRldmljZSB3aWxsIHJlbWFpbiBwb2xsZWQ/IElzIGl0IG9rPwo+IAo+IEFjdHVhbGx5IGl0 IGlzIG5vdCBvayBidXQgQUZBSUNULCBpdCBpcyB0aGUgY3VycmVudCBiZWhhdmlvci4gVGhlCj4g cG9sbGluZyBkbyBub3Qgc3RvcCBidXQgdGhlICdpbl9zdXNwZW5kJyBwcmV2ZW50IGFuIHVwZGF0 ZS4gSSB0aG91Z2h0IHdlCj4gY2FuIHBvc3QtcG9uZSB0aGUgc3VzcGVuZCBjYXNlIGxhdGVyIHdo ZW4gdGhlIEVOQUJMRUQvRElTQUJMRUQgY2hhbmdlcwo+IGFyZSBjb25zb2xpZGF0ZWQsIHNvIFNV U1BFTkRFRCB3aWxsIGFjdCBhcyBESVNBQkxFRC4KPiAKCmRyaXZlcnMvdGhlcm1hbC90aGVybWFs X2NvcmUuYzoKCiAgc3RhdGljIHZvaWQgbW9uaXRvcl90aGVybWFsX3pvbmUoc3RydWN0IHRoZXJt YWxfem9uZV9kZXZpY2UgKnR6KQogIHsKKwllbnVtIHRoZXJtYWxfZGV2aWNlX21vZGUgdHpfbW9k ZSA9IFRIRVJNQUxfREVWSUNFX0VOQUJMRUQ7CisKICAJbXV0ZXhfbG9jaygmdHotPmxvY2spOwoK LQlpZiAodHotPnBhc3NpdmUpCisJaWYgKHR6LT5vcHMtPmdldF9tb2RlKQorCQl0ei0+b3BzLT5n ZXRfbW9kZSh0eiwgJnR6X21vZGUpOworCisJaWYgKHR6LT5wYXNzaXZlICYmIG1vZGUgIT0gVEhF Uk1BTF9ERVZJQ0VfRElTQUJMRUQpCiAgCQl0aGVybWFsX3pvbmVfZGV2aWNlX3NldF9wb2xsaW5n KHR6LCB0ei0+cGFzc2l2ZV9kZWxheSk7Ci0JZWxzZSBpZiAodHotPnBvbGxpbmdfZGVsYXkpCisJ ZWxzZSBpZiAodHotPnBvbGxpbmdfZGVsYXkgJiYgbW9kZSAhPSBUSEVSTUFMX0RFVklDRV9ESVNB QkxFRCkKICAJCXRoZXJtYWxfem9uZV9kZXZpY2Vfc2V0X3BvbGxpbmcodHosIHR6LT5wb2xsaW5n X2RlbGF5KTsKICAJZWxzZQogIAkJdGhlcm1hbF96b25lX2RldmljZV9zZXRfcG9sbGluZyh0eiwg MCk7CgpJZiB0aGUgZHJpdmVyIGRvZXMgbm90IGltcGxlbWVudCBnZXRfbW9kZSgpIHRoZW4gd2Ug YXNzdW1lIEVOQUJMRUQuCldoYXQgaWYgaXQgaXMgYWN0dWFsbHkgRElTQUJMRUQ/CgpIb3cgZG9l cyB0aGlzIGRlcGVuZCBvbiBwYXRjaCAxIG9yIHBhdGNoIDI/Cgo+Pj4gIMKgIC0gcGF0Y2ggNCA6 IERvIHRoZSBjaGFuZ2VzIHRvIHJlbW92ZSBnZXRfbW9kZSgpIG9wcwo+Pj4KPj4+IE1ha2Ugc3Vy ZSB0aGVyZSBpcyBubyBhY2Nlc3MgdG8gdHotPm1vZGUgZnJvbSB0aGUgZHJpdmVycyBhbnltb3Jl IGJ1dAo+Pj4gdXNlIG9mIHRoZSBmdW5jdGlvbnMgb2YgcGF0Y2ggMS4gSU1PLCB0aGlzIGlzIHRo ZSB0cmlja3kgcGFydCBiZWNhdXNlIGEKPj4+IHBhcnQgb2YgdGhlIGRyaXZlcnMgYXJlIG5vdCBj YWxsaW5nIHRoZSB1cGRhdGUgYWZ0ZXIgc2V0dGluZyB0aGUgbW9kZQo+Pj4gd2hpbGUgdGhlIGZ1 bmN0aW9uIHRoZXJtYWxfem9uZV9kZXZpY2VfZW5hYmxlKCkvZGlzYWJsZSgpIGNhbGwgdXBkYXRl Cj4+PiB2aWEgdGhlIHRoZXJtYWxfem9uZV9kZXZpY2Vfc2V0X21vZGUoKSwgc28gd2UgbXVzdCBi ZSBzdXJlIHRvIG5vdCBicmVhawo+Pj4gYW55dGhpbmcuCj4+CgpJIGhhdmVuJ3Qgc3RhcnRlZCB0 aGlzIHlldCwgYnV0IGFnYWluIGl0IHNlZW1zIHRvIG1lIHRoYXQgZHJpdmVycyBuZWVkCnRvIHN0 YXJ0IHN0b3JpbmcgdGhlaXIgbW9kZSBpbiB0emQtPm1vZGUgaW4gdGhlIGZpcnN0IHBsYWNlCgpT byB3aGF0IEkgZW52aXNpb24gaXMgdGhpczoKCjEpIE1ha2UgYWxsIGRyaXZlcnMgc3RvcmUgdGhl aXIgc3RhdGUgc3RpbGwgbG9jYWxseSwgYnV0IHVzaW5nIHRoZSBlbnVtCihub3QgYWxsIG9mIHRo ZW0gZG8pCgoyKSBPbmNlIGFsbCBkcml2ZXJzIHN0b3JlIHRoZWlyIHN0YXRlIGluIHRoZSBlbnVt LCBzdG9yZSB0aGUgZW51bSBpbgpzdHJ1Y3QgdHpkIGluc3RlYWQgb2YgbG9jYWxseSBpbiBkcml2 ZXJzLiBUaGlzIG1ha2VzIGdldF9tb2RlKCkgZHJpdmVyCm9wIHJlZHVuZGFudCwgYnV0IGlmIHlv dSBwcmVmZXIgbW9yZSBncmFudWxhcml0eSByZW1vdmluZyBpdCBtaWdodCBiZQpkb25lIGluIGEg c2VwYXJhdGUgcGF0Y2ggKGF0IHRoZSBleHBlbnNlIG9mIG1vZGlmeWluZyBpdCBub3cgdG8gdXNl CnR6ZCdzIG1lbWJlciBpbnN0ZWFkIG9mIGRyaXZlci1sb2NhbCB2YXJpYWJsZSkuIFRoaXMgYWxz byBpbXBhY3RzIHNldF9tb2RlKCkKb3BzLCBiZWNhdXNlIHRoZXkgbmVlZCB0byBhY3R1YWxseSBj aGFuZ2UgdHpkJ3MgbWVtYmVyIGluc3RlYWQgb2Ygc29tZQpkcml2ZXItbGV2ZWwgdmFyaWFibGUu IENoYW5naW5nIHNldF9tb2RlKCkgSU1PIG5lZWRzIHRvIGJlIGRvbmUgaW4gb25lIGdvLgoKMykg UmVtb3ZlIGdldF9tb2RlKCkgZHJpdmVyIG9wIGFsdG9nZXRoZXIsIGFzIHRoZSBtb2RlIGlzIHN0 b3JlZCBpbgpzdHJ1Y3QgdHpkLgoKNCkgcGF0Y2ggMSB5b3Ugb3V0bGluZWQgLSBzZXRfbW9kZSgp IGFuZCBpc19lbmFibGVkKCkgd2lsbCBub3cgb3BlcmF0ZQpvbiB0emQncyBtZW1iZXJzLCBzbyB0 aGVpciBlZmZlY3QgZG9lcyBub3QgZGVwZW5kIG9uIGRyaXZlcnMgaW1wbGVtZW50aW5nCm9yIG5v dCBpbXBsZW1lbnRpbmcgc2V0X21vZGUoKS4gVGhlc2UgZWZmZWN0cyBkb24ndCBkZXBlbmQgb24g Z2V0X21vZGUoKQphbnkgbW9yZSBiZWNhdXNlIG9mIDMpLiBzZXRfbW9kZSgpIHdvdWxkIHN0aWxs IGJlIGNhbGxpbmcgdGhlIHNldF9tb2RlKCkKb3AgaW4gZHJpdmVycyBiZWZvcmUgbW9kaWZ5aW5n IHR6ZC0+bW9kZS4KCjUpIHBhdGNoIDIgeW91IG91dGxpbmVkIC0gYnV0IGl0IGNhbid0IHVzZSB0 aGVybWFsX3pvbmVfZGV2aWNlX3NldF9tb2RlKCksCmJlY2F1c2UgaWYgaXQgZ2V0cyBhbmQgdGhl biBjaGFuZ2VzIHR6ZCdzIG1vZGUsIGl0IG11c3QgZG8gc28gdW5kZXIKdHpkLT5sb2NrLiBUaGlz IGlzIG9rIGFzIHRoaXMgaXMgdGhlIHZlcnkgaW1wbGVtZW50YXRpb24gb2YgdGhlcm1hbF9jb3Jl LApzbyBhY2Nlc3NpbmcgInByaXZhdGUiIG1lbWJlcnMgb2YgdHpkIGlzIGEgdmFsaWQgYXBwcm9h Y2ggaGVyZS4KCjYpIHBhdGNoIDMgeW91IG91dGxpbmVkIC0gbm93IGl0IG1ha2VzIG11Y2ggbW9y ZSBzZW5zZSB0byBxdWVyeSB0emQncyBtZW1iZXIKZm9yIG1vZGUgaW5zdGVhZCBvZiByZWx5aW5n IG9uIGRyaXZlcnMgaW1wbGVtZW50aW5nIGdldF9tb2RlKCkuCgo3KSBwYXRjaCA0IHlvdSBvdXRs aW5lZCBidXQgdW5kZXIgYSBkaWZmZXJlbnQgbmFtZSwgYmVjYXVzZSBnZXRfbW9kZSgpCmlzIGFs cmVhZHkgZ29uZS4gVGhlIGd1dHMgb2YgdGhlIHBhdGNoIHNob3VsZCBiZSBkb2luZyB3aGF0IHlv dSB3cm90ZSwKdGhvdWdoLCB3aGljaCBpcyB1c2UgdGhlIGhlbHBlcnMgaW5zdGVhZCBvZiBkaXJl Y3RseSBtb2RpZnlpbmcgdHpkJ3MKbWVtYmVycyBpbiBkcml2ZXJzLgoKOCkgcGF0Y2ggNSB5b3Ug b3V0bGluZWQgLSBwZXJoYXBzIHVuZGVyIGEgZGlmZmVyZW50IG5hbWUsIGJ1dCBzdGlsbApkb2lu ZyB0aGUgc2FtZSB0aGluZzogcmVtb3ZpbmcgcG9ydGlvbnMgb2YgY29kZSB3aGljaCBzZXQgcG9s bGluZyB0aW1lIHRvCnplcm8gaW4gZHJpdmVycywgYXMgdGhhdCBpcyBhbHJlYWR5IGJlaW5nIGRv bmUgYXQgdHpkJ3MgbGV2ZWwuIFRoaXMgd291bGQKaG9wZWZ1bGx5IG1ha2UgYXQgbGVhc3Qgc29t ZSBzZXRfbW9kZSgpIGltcGxlbWVudGF0aW9ucyBuby1vcHMgYW5kLApjb25zZXF1ZW50bHksIHJl ZHVuZGFudC4gSSBjYW4gc2VlIHRoZXNlIGRyaXZlcnM6IG1lbGxhbm94LCBwYXJ0IG9mCmFjZXJo ZGYgKHRoaXMgZHJpdmVyIHdhbnRzIHRvIGtub3cgd2hlbiBpdCBpcyBiZWNvbWluZyBlbmFibGVk L2Rpc2FibGVkLApidXQgdGhlIHBhcnQgc2V0dGluZyBwb2xsaW5nIGNhbiBiZSByZW1vdmVkKSwg cGFydCBvZiBpbXggKHNpbWlsYXIKc2l0dWF0aW9uIHRvIHRoYXQgb2YgYWNlcmhkZikgYW5kIG9m LXRoZXJtYWwuCgpBZnRlciA4KSB0aGVyZSB3b3VsZCBiZSA1IG5vbi1lbXB0eSBzZXRfbW9kZSgp IGltcGxlbWVudGF0aW9uczoKCmFjcGkgLSBidXQgYXBwYXJlbnRseSBvbmx5IHRvIHByaW50IHNv bWUgZGVidWcsIG1heWJlIGNhbiBiZSByZW1vdmVkCmFjZXJoZGYgLSBubyBpZGVhIGlmIGl0IGNh biBsaXZlIHdpdGhvdXQga25vd2luZyB3aGVuIHRoZSBtb2RlIGNoYW5nZXMKaW14IC0gZGl0dG8K aW50MzQwMCAtIGRpdHRvCnF1YXJrIC0gZGl0dG8KClBlcmhhcHMgYWZ0ZXIgOCkgaW5zdGVhZCBv ZiByZW1vdmluZyBzZXRfbW9kZSgpIG1heWJlIHdlIHNob3VsZCBjaGFuZ2UKaXRzIG5hbWUgdG8g YmV0dGVyIHJlZmxlY3QgaXRzIHB1cnBvc2U6IG1vZGVfY2hhbmdpbmcoKSA/IE9yIG1heWJlCmV2 ZW4gc3VjaCBhIGNoYW5nZSBzaG91bGQgYmUgYSBwYXJ0IG9mIDQpPwoKUmVnYXJkcywKCkFuZHJ6 ZWoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmxpbnV4 LWFybS1rZXJuZWwgbWFpbGluZyBsaXN0CmxpbnV4LWFybS1rZXJuZWxAbGlzdHMuaW5mcmFkZWFk Lm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LWFy bS1rZXJuZWwK