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=-15.9 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,NICE_REPLY_A,SPF_HELO_NONE,SPF_PASS, URIBL_BLOCKED,USER_AGENT_SANE_1 autolearn=unavailable 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 64365C2B9F4 for ; Mon, 14 Jun 2021 17:00:06 +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 32AD5611C1 for ; Mon, 14 Jun 2021 17:00:06 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 32AD5611C1 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linaro.org 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:Date: Message-ID:From:References:Cc:To:Subject:Reply-To:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Owner; bh=MfIdq4EPS+wgb+KxTPpQNFu6frUnz8w1FEv3b53NDRo=; b=v26pUGNwnM3Ubx0/VBnamHQtH7 1ck4lavqXau2jJZg/uVLPAz/lJOLk9IzC4IMR5vd/TdUp3NbxaP3EXlqNvEE9DGg7YE+kpFylVSm8 RrYApBjJvFnTYBE1wuk0ekR85gm0CglgdXrbB/54r9khvN4+fxnjabWYwxJJNyVDfvS7kOJO/RH/f KO1Lx8IxDGNBjA4tMz6GD+xODXVMonOD5xX9AeA7UWbn1VAD8R3oXuSPM8czkvohLN+Srs0LOVOLF OCx9yWlTmkaM1gIHMVY1PKmQ3nmcZtTD7P9gWQbwcSKr2LiEK7rZ0v0+3fcCmvgcX0rZFEb63Xjok CuWmZk4g==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1lspuu-00FHUw-JS; Mon, 14 Jun 2021 16:58:29 +0000 Received: from mail-wm1-x32c.google.com ([2a00:1450:4864:20::32c]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1lspun-00FHSD-GW for linux-arm-kernel@lists.infradead.org; Mon, 14 Jun 2021 16:58:25 +0000 Received: by mail-wm1-x32c.google.com with SMTP id d184so12557363wmd.0 for ; Mon, 14 Jun 2021 09:58:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=subject:to:cc:references:from:message-id:date:user-agent :mime-version:in-reply-to:content-language:content-transfer-encoding; bh=giu5t1ZJoDtjd9HrozCoAGsuGJjanw/vPGOmtscX5Cs=; b=tSCWhahZ/W2djqrKDZgEuHhTAr9umg77GxrEpH2qmyK7p9nhaNgs9zWZy6Ge3xTknw E+3vsUJJbtCCvg6uea5Mv4omGxu8io+SHMwsYfl8XiR8GbHXEpUAOHjthVHzHjeOXWJ7 Lga7cglSlw4gWXLy/VCaLU01vhSScHF3VdP/3PikPHbK9MWnjFi/UbP2e+Rd/cgzInu2 0MSnnuMddFWW2ec0Q0d4Ms374Fy5r/19dI4US427VSUg0RyLPjPcFvJkRiaMzb4eHG93 qd7hUYO4d+M+qiyiZjPI890GVIoVpHy0hg8rgBFTTmHJoAbvFsyYsNOILXVPO/VvCN3G 4Tag== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:cc:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=giu5t1ZJoDtjd9HrozCoAGsuGJjanw/vPGOmtscX5Cs=; b=jbN2tFIbTcnTauC+wk8CW5HRpyLbpzvw9k5w5x4gYF3Rx9gyL5vQxcTek/h2lOGkOO 4x0uk23rEaoEROplWLSBRa348QWcJxZwpnXmkW4lM1EkT6L/TrbF/MeNLRV7QDXobdY3 e3DJaxH4PhBtALN3RolLqJCEH2vJNv7Qg1d3oqGX65sfBqDJ2EuL2XN5CG4EY2xP3tHp zFjxAtpf30fGvSVnuq+pmK22G5sRvuSNygHy2pvmiXeaZoZZZlJAVjsYO+QjtBFqSm75 04yc3uOBEDStdX/3aj+Onl/pDMKsaSTYV29c9uWmoZAxUA6Cjz9U4g0+iBdslrMWr1be 9isg== X-Gm-Message-State: AOAM531BE68me0wpGkcEV4P3N7SqimE5bGwLw05ylOKtI9I8+DyCoQ9R 3Qfide9nkufRpzpiJz1Xl1OsFQ== X-Google-Smtp-Source: ABdhPJyE/uLFsbeEgXsQzzS+2i1pwKmQNwLMqFWbiLFGX6m0o585ZozMlGPHOwdSfJL+e5AMB6diNw== X-Received: by 2002:a7b:cc8f:: with SMTP id p15mr39151wma.111.1623689897864; Mon, 14 Jun 2021 09:58:17 -0700 (PDT) Received: from ?IPv6:2a01:e34:ed2f:f020:9d56:9c35:8a63:312c? ([2a01:e34:ed2f:f020:9d56:9c35:8a63:312c]) by smtp.googlemail.com with ESMTPSA id r18sm16684407wro.62.2021.06.14.09.58.16 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 14 Jun 2021 09:58:17 -0700 (PDT) Subject: Re: [PATCH v8] thermal: mediatek: add another get_temp ops for thermal sensors To: Ben Tseng , Fan Chen , Zhang Rui , linux-pm@vger.kernel.org, srv_heupstream@mediatek.com Cc: Eduardo Valentin , Rob Herring , Mark Rutland , Matthias Brugger , hsinyi@chromium.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-mediatek@lists.infradead.org, Project_Global_Chrome_Upstream_Group@mediatek.com, Michael Kao References: <20210603110042.21688-1-ben.tseng@mediatek.com> From: Daniel Lezcano Message-ID: Date: Mon, 14 Jun 2021 18:58:15 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.8.1 MIME-Version: 1.0 In-Reply-To: <20210603110042.21688-1-ben.tseng@mediatek.com> Content-Language: en-US X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20210614_095821_634041_A49A8CC1 X-CRM114-Status: GOOD ( 47.21 ) 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 T24gMDMvMDYvMjAyMSAxMzowMCwgQmVuIFRzZW5nIHdyb3RlOgo+IEZyb206IE1pY2hhZWwgS2Fv IDxtaWNoYWVsLmthb0BtZWRpYXRlay5jb20+Cj4gCj4gUHJvdmlkZSB0aGVybWFsIHpvbmUgdG8g cmVhZCB0aGVybWFsIHNlbnNvcgo+IGluIHRoZSBTb0MuIFdlIGNhbiByZWFkIGFsbCB0aGUgdGhl cm1hbCBzZW5zb3JzCj4gdmFsdWUgaW4gdGhlIFNvQyBieSB0aGUgbm9kZSAvc3lzL2NsYXNzL3Ro ZXJtYWwvCj4gCj4gSW4gbXRrX3RoZXJtYWxfYmFua190ZW1wZXJhdHVyZSwgcmV0dXJuIC1FQUdB SU4gaW5zdGVhZCBvZiAtRUFDQ0VTUwo+IG9uIHRoZSBmaXJzdCByZWFkIG9mIHNlbnNvciB0aGF0 IG9mdGVuIGFyZSBib2d1cyB2YWx1ZXMuCj4gVGhpcyBjYW4gYXZvaWQgZm9sbG93aW5nIHdhcm5p bmcgb24gYm9vdDoKPiAKPiAgIHRoZXJtYWwgdGhlcm1hbF96b25lNjogZmFpbGVkIHRvIHJlYWQg b3V0IHRoZXJtYWwgem9uZSAoLTEzKQo+IAo+IFNpZ25lZC1vZmYtYnk6IE1pY2hhZWwgS2FvIDxt aWNoYWVsLmthb0BtZWRpYXRlay5jb20+Cj4gU2lnbmVkLW9mZi1ieTogQmVuIFRzZW5nIDxiZW4u dHNlbmdAbWVkaWF0ZWsuY29tPgo+IAo+IC0tLQo+IAo+IFRoaXMgcGF0Y2hzZXQgc3VwcG9ydHMg Zm9yIE1UODE4MyBjaGlwIHRvIG10a190aGVybWFsLmMuCj4gQWRkIHRoZXJtYWwgem9uZSBvZiBh bGwgdGhlIHRoZXJtYWwgc2Vuc29yIGluIFNvQyBmb3IKPiBhbm90aGVyIGdldCB0ZW1wZXJhdHJ1 ZS4gVGhleSBkb24ndCBuZWVkIHRvIHRoZXJtYWwgdGhyb3R0bGUuCj4gQW5kIHdlIGJpbmQgY29v bGVycyBmb3IgdGhlcm1hbCB6b25lIG5vZGVzIG9mIGNwdV90aGVybWFsLgo+IAo+IENoYW5nZXMg aW4gVjg6Cj4gICAgIC0gUmViYXNlIHRvIGtlcm5lbC12NS4xMy1yYzEKPiAgICAgLSBSZXNlbmQK PiAKPiBDaGFuZ2VzIGluIHY3Ogo+ICAgICAtIEZpeCBidWlsZCBlcnJvciBpbiB2Ni4KPiAKPiBD aGFuZ2VzIGluIHY2Ogo+ICAgICAtIFJlYmFzZSB0byBrZXJuZWwtNS4xMS1yYzEuCj4gICAgIC0g WzEvM10KPiAgICAgICAgIC0gYWRkIGludGVycnVwdHMgcHJvcGVydHkuCj4gICAgIC0gWzIvM10K PiAgICAgICAgIC0gYWRkIHRoZSBUZXN0ZWQtYnkgaW4gdGhlIGNvbW1pdCBtZXNzYWdlLgo+ICAg ICAtIFszLzNdCj4gICAgICAgICAtIHVzZSB0aGUgbXQtPmNvbmYtPm1zcltpZF0gaW5zdGVhZCBv ZiBjb25mLT5tc3JbaWRdIGluIHRoZQo+ICAgICAgICAgICBfZ2V0X3NlbnNvcl90ZW1wIGFuZCBt dGtfdGhlcm1hbF9iYW5rX3RlbXBlcmF0dXJlLgo+ICAgICAgICAgLSByZW1vdmUgdGhlIHJlZHVu ZGFudCBzcGFjZSBpbiBfZ2V0X3NlbnNvcl90ZW1wIGFuZAo+ICAgICAgICAgICBtdGtfcmVhZF9z ZW5zb3JfdGVtcC4KPiAgICAgICAgIC0gY2hhbmdlIGttYWxsb2MgdG8gZGV2X2ttYWxsb2MgaW4g bXRrX3RoZXJtYWxfcHJvYmUuCj4gCj4gQ2hhbmdlcyBpbiB2NToKPiAgICAgLSBSZWJhc2UgdG8g a2VybmVsLTUuOS1yYzEuCj4gICAgIC0gUmV2aXNlIHRoZSB0aXRsZSBvZiBjb3ZlciBsZXR0ZXIu Cj4gICAgIC0gRHJvcCAiW3Y0LDcvN10gdGhlcm1hbDogbWVkaWF0ZWs6IHVzZSBzcGlubG9jayB0 byBwcm90ZWN0IFBUUENPUkVTRUwiCj4gICAgIC0gWzIvMl0KPiAgICAgICAgIC0gIEFkZCB0aGUg anVkZ2VtZW50IHRvIHRoZSB2ZXJzaW9uIG9mIHJhd190b19tY2Vsc2l1cy4KPiAKPiBDaGFuZ2Vz IGluIHY0Ogo+ICAgICAtIFJlYmFzZSB0byBrZXJuZWwtNS42LXJjMS4KPiAgICAgLSBbMS83XQo+ ICAgICAgICAgLSBTcXVhc2ggdGhlcm1hbCB6b25lIHNldHRpbmdzIGluIHRoZSBkdHNpIGZyb20g W3YzLDUvOF0KPiAgICAgICAgICAgYXJtNjQ6IGR0czogbXQ4MTgzOiBJbmNyZWFzZSBwb2xsaW5n IGZyZXF1ZW5jeSBmb3IgQ1BVIHRoZXJtYWwgem9uZS4KPiAgICAgICAgIC0gUmVtb3ZlIHRoZSBw cm9wZXJ0eSBvZiBpbnRlcnJ1cHRzIGFuZCBtZWRpYXRlayxody1yZXNldC10ZW1wLgo+ICAgICAt IFsyLzddCj4gICAgICAgICAtIENvcnJlY3QgY29tbWl0IG1lc3NhZ2UuCj4gICAgIC0gWzQvN10K PiAgICAgICAgIC0gQ2hhbmdlIHRoZSB0YXJnZXQgdGVtcGVyYXR1cmUgdG8gdGhlIDgwQyBhbmQg Y2hhbmdlIHRoZSBjb21taXQgbWVzc2FnZS4KPiAgICAgLSBbNi83XQo+ICAgICAgICAgLSBBZGp1 c3QgbmV3bGluZSBhbGlnbm1lbnQuCj4gICAgICAgICAtIEZpeCB0aGUganVkZ2VtZW50IG9uIHRo ZSByZXR1cm4gdmFsdWUgb2YgcmVnaXN0ZXJpbmcgdGhlcm1hbCB6b25lLgo+IAo+IENoYW5nZXMg aW4gdjM6Cj4gICAgIC0gUmViYXNlIHRvIGtlcm5lbC01LjUtcmMxLgo+ICAgICAtIFsxLzhdCj4g ICAgICAgICAtIFVwZGF0ZSBzdXN0YWluYWJsZSBwb3dlciBvZiBjcHUsIHR6dHMxfjUgYW5kIHR6 dHNBQkIuCj4gICAgIC0gWzcvOF0KPiAgICAgICAgIC0gQnlwYXNzIHRoZSBmYWlsdXJlIHRoYXQg bm9uIGNwdV90aGVybWFsIHNlbnNvciBpcyBub3QgZmluZCBpbiB0aGVybWFsLXpvbmVzCj4gICAg ICAgICAgIGluIGR0cywgd2hpY2ggaXMgbm9ybWFsIGZvciBtdDgxNzMsIHNvIHByb21wdCBhIHdh cm5pbmcgaGVyZSBpbnN0ZWFkIG9mCj4gICAgICAgICAgIGZhaWxpbmcuCj4gCj4gCVJldHVybiAt RUFHQUlOIGluc3RlYWQgb2YgLUVBQ0NFU1Mgb24gdGhlIGZpcnN0IHJlYWQgb2Ygc2Vuc29yIHRo YXQKPiAgICAgICAgIG9mdGVuIGFyZSBib2d1cyB2YWx1ZXMuIFRoaXMgY2FuIGF2b2lkIGZvbGxv d2luZyB3YXJuaW5nIG9uIGJvb3Q6Cj4gCj4gICAgICAgICAgIHRoZXJtYWwgdGhlcm1hbF96b25l NjogZmFpbGVkIHRvIHJlYWQgb3V0IHRoZXJtYWwgem9uZSAoLTEzKQo+IAo+IENoYW5nZXMgaW4g djI6Cj4gICAgIC0gWzEvOF0KPiAgICAgICAgIC0gQWRkIHRoZSBzdXN0YWluYWJsZS1wb3dlcix0 cmlwcyxjb29saW5nLW1hcHMgdG8gdGhlIHR6dHMxfnR6dHNBQkIuCj4gICAgIC0gWzQvOF0KPiAg ICAgICAgIC0gQWRkIHRoZSBtaW4gb3BwIG9mIGNwdSB0aHJvdHRsZS4KPiAKPiBNYXR0aGlhcyBL YWVobGNrZSAoMSk6Cj4gICBhcm02NDogZHRzOiBtdDgxODM6IENvbmZpZ3VyZSBDUFUgY29vbGlu Zwo+IAo+IE1pY2hhZWwgS2FvICgyKToKPiAgIHRoZXJtYWw6IG1lZGlhdGVrOiBhZGQgYW5vdGhl ciBnZXRfdGVtcCBvcHMgZm9yIHRoZXJtYWwgc2Vuc29ycwo+ICAgYXJtNjQ6IGR0czogbXQ4MTgz OiBhZGQgdGhlcm1hbCB6b25lIG5vZGUKPiAtLS0KPiAgZHJpdmVycy90aGVybWFsL210a190aGVy bWFsLmMgfCAxMDAgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tCj4g IDEgZmlsZSBjaGFuZ2VkLCA3NSBpbnNlcnRpb25zKCspLCAyNSBkZWxldGlvbnMoLSkKPiAKPiBk aWZmIC0tZ2l0IGEvZHJpdmVycy90aGVybWFsL210a190aGVybWFsLmMgYi9kcml2ZXJzL3RoZXJt YWwvbXRrX3RoZXJtYWwuYwo+IGluZGV4IDk3ZTg2NzguLmI2YmVlNDUxIDEwMDY0NAo+IC0tLSBh L2RyaXZlcnMvdGhlcm1hbC9tdGtfdGhlcm1hbC5jCj4gKysrIGIvZHJpdmVycy90aGVybWFsL210 a190aGVybWFsLmMKPiBAQCAtMjQ1LDYgKzI0NSwxMSBAQCBlbnVtIG10a190aGVybWFsX3ZlcnNp b24gewo+ICAKPiAgc3RydWN0IG10a190aGVybWFsOwo+ICAKPiArc3RydWN0IG10a190aGVybWFs X3pvbmUgewo+ICsJc3RydWN0IG10a190aGVybWFsICptdDsKPiArCWludCBpZDsKPiArfTsKCkhv dyBkb2VzIGl0IGRpZmZlciBmcm9tICdzdHJ1Y3QgbXRrX3RoZXJtYWxfYmFuaycgPwoKPiAgc3Ry dWN0IHRoZXJtYWxfYmFua19jZmcgewo+ICAJdW5zaWduZWQgaW50IG51bV9zZW5zb3JzOwo+ICAJ Y29uc3QgaW50ICpzZW5zb3JzOwo+IEBAIC02MzcsNiArNjQyLDMwIEBAIHN0YXRpYyB2b2lkIG10 a190aGVybWFsX3B1dF9iYW5rKHN0cnVjdCBtdGtfdGhlcm1hbF9iYW5rICpiYW5rKQo+ICAJCW11 dGV4X3VubG9jaygmbXQtPmxvY2spOwo+ICB9Cj4gIAo+ICtzdGF0aWMgdTMyIF9nZXRfc2Vuc29y X3RlbXAoc3RydWN0IG10a190aGVybWFsICptdCwgaW50IGlkKQo+ICt7Cj4gKwl1MzIgcmF3Owo+ ICsJaW50IHRlbXA7Cj4gKwo+ICsJcmF3ID0gcmVhZGwobXQtPnRoZXJtYWxfYmFzZSArIG10LT5j b25mLT5tc3JbaWRdKTsKPiArCj4gKwlpZiAobXQtPmNvbmYtPnZlcnNpb24gPT0gTVRLX1RIRVJN QUxfVjEpCj4gKwkJdGVtcCA9IHJhd190b19tY2Vsc2l1c192MShtdCwgaWQsIHJhdyk7Cj4gKwll bHNlCj4gKwkJdGVtcCA9IHJhd190b19tY2Vsc2l1c192MihtdCwgaWQsIHJhdyk7CgpQbGVhc2Ug YWRkIHRoZSBwcm9wZXIgY29udmVyc2lvbiBmdW5jdGlvbiBhcyBhIGNhbGxiYWNrIGFuZCBzZXQg aXQgYXQKcHJvYmUgdGltZSwgaW5zdGVhZCBvZiBjaGVja2luZyBhdCBldmVyeSBjYWxsLgoKPiAr CS8qCj4gKwkgKiBUaGUgZmlyc3QgcmVhZCBvZiBhIHNlbnNvciBvZnRlbiBjb250YWlucyB2ZXJ5 IGhpZ2ggYm9ndXMKPiArCSAqIHRlbXBlcmF0dXJlIHZhbHVlLiBGaWx0ZXIgdGhlc2Ugb3V0IHNv IHRoYXQgdGhlIHN5c3RlbSBkb2VzCj4gKwkgKiBub3QgaW1tZWRpYXRlbHkgc2h1dCBkb3duLgo+ ICsJICovCgpJZiBpdCBoYXBwZW5zIG9ubHkgb25jZSwgd2h5IG5vdCBjYWxsIHRoaXMgZnVuY3Rp b24gYXQgcHJvYmUgdGltZSBzbwp0aGlzIHRlc3Qgd29uJ3QgYmUgbmVlZGVkLgoKPiArCWlmICh0 ZW1wID4gMjAwMDAwKQo+ICsJCXJldHVybiAtRUFHQUlOOwo+ICsJZWxzZQo+ICsJCXJldHVybiB0 ZW1wOwo+ICt9Cj4gKwo+ICAvKioKPiAgICogbXRrX3RoZXJtYWxfYmFua190ZW1wZXJhdHVyZSAt IGdldCB0aGUgdGVtcGVyYXR1cmUgb2YgYSBiYW5rCj4gICAqIEBiYW5rOglUaGUgYmFuawo+IEBA IC02NDcsMjggKzY3NiwxMSBAQCBzdGF0aWMgdm9pZCBtdGtfdGhlcm1hbF9wdXRfYmFuayhzdHJ1 Y3QgbXRrX3RoZXJtYWxfYmFuayAqYmFuaykKPiAgc3RhdGljIGludCBtdGtfdGhlcm1hbF9iYW5r X3RlbXBlcmF0dXJlKHN0cnVjdCBtdGtfdGhlcm1hbF9iYW5rICpiYW5rKQo+ICB7Cj4gIAlzdHJ1 Y3QgbXRrX3RoZXJtYWwgKm10ID0gYmFuay0+bXQ7Cj4gLQljb25zdCBzdHJ1Y3QgbXRrX3RoZXJt YWxfZGF0YSAqY29uZiA9IG10LT5jb25mOwo+ICAJaW50IGksIHRlbXAgPSBJTlRfTUlOLCBtYXgg PSBJTlRfTUlOOwo+IC0JdTMyIHJhdzsKPiAtCj4gLQlmb3IgKGkgPSAwOyBpIDwgY29uZi0+YmFu a19kYXRhW2JhbmstPmlkXS5udW1fc2Vuc29yczsgaSsrKSB7Cj4gLQkJcmF3ID0gcmVhZGwobXQt PnRoZXJtYWxfYmFzZSArIGNvbmYtPm1zcltpXSk7Cj4gIAo+IC0JCWlmIChtdC0+Y29uZi0+dmVy c2lvbiA9PSBNVEtfVEhFUk1BTF9WMSkgewo+IC0JCQl0ZW1wID0gcmF3X3RvX21jZWxzaXVzX3Yx KAo+IC0JCQkJbXQsIGNvbmYtPmJhbmtfZGF0YVtiYW5rLT5pZF0uc2Vuc29yc1tpXSwgcmF3KTsK PiAtCQl9IGVsc2Ugewo+IC0JCQl0ZW1wID0gcmF3X3RvX21jZWxzaXVzX3YyKAo+IC0JCQkJbXQs IGNvbmYtPmJhbmtfZGF0YVtiYW5rLT5pZF0uc2Vuc29yc1tpXSwgcmF3KTsKPiAtCQl9Cj4gKwlm b3IgKGkgPSAwOyBpIDwgbXQtPmNvbmYtPmJhbmtfZGF0YVtiYW5rLT5pZF0ubnVtX3NlbnNvcnM7 IGkrKykgewo+ICAKPiAtCQkvKgo+IC0JCSAqIFRoZSBmaXJzdCByZWFkIG9mIGEgc2Vuc29yIG9m dGVuIGNvbnRhaW5zIHZlcnkgaGlnaCBib2d1cwo+IC0JCSAqIHRlbXBlcmF0dXJlIHZhbHVlLiBG aWx0ZXIgdGhlc2Ugb3V0IHNvIHRoYXQgdGhlIHN5c3RlbSBkb2VzCj4gLQkJICogbm90IGltbWVk aWF0ZWx5IHNodXQgZG93bi4KPiAtCQkgKi8KPiAtCQlpZiAodGVtcCA+IDIwMDAwMCkKPiAtCQkJ dGVtcCA9IDA7Cj4gKwkJdGVtcCA9IF9nZXRfc2Vuc29yX3RlbXAobXQsIGkpOwo+ICAKPiAgCQlp ZiAodGVtcCA+IG1heCkKPiAgCQkJbWF4ID0gdGVtcDsKPiBAQCAtNjc5LDcgKzY5MSw4IEBAIHN0 YXRpYyBpbnQgbXRrX3RoZXJtYWxfYmFua190ZW1wZXJhdHVyZShzdHJ1Y3QgbXRrX3RoZXJtYWxf YmFuayAqYmFuaykKPiAgCj4gIHN0YXRpYyBpbnQgbXRrX3JlYWRfdGVtcCh2b2lkICpkYXRhLCBp bnQgKnRlbXBlcmF0dXJlKQo+ICB7Cj4gLQlzdHJ1Y3QgbXRrX3RoZXJtYWwgKm10ID0gZGF0YTsK PiArCXN0cnVjdCBtdGtfdGhlcm1hbF96b25lICp0eiA9IGRhdGE7Cj4gKwlzdHJ1Y3QgbXRrX3Ro ZXJtYWwgKm10ID0gdHotPm10Owo+ICAJaW50IGk7Cj4gIAlpbnQgdGVtcG1heCA9IElOVF9NSU47 Cj4gIAo+IEBAIC02OTgsMTAgKzcxMSwyOCBAQCBzdGF0aWMgaW50IG10a19yZWFkX3RlbXAodm9p ZCAqZGF0YSwgaW50ICp0ZW1wZXJhdHVyZSkKPiAgCXJldHVybiAwOwo+ICB9Cj4gIAo+ICtzdGF0 aWMgaW50IG10a19yZWFkX3NlbnNvcl90ZW1wKHZvaWQgKmRhdGEsIGludCAqdGVtcGVyYXR1cmUp Cj4gK3sKPiArCXN0cnVjdCBtdGtfdGhlcm1hbF96b25lICp0eiA9IGRhdGE7Cj4gKwlzdHJ1Y3Qg bXRrX3RoZXJtYWwgKm10ID0gdHotPm10Owo+ICsJaW50IGlkID0gdHotPmlkIC0gMTsKPiArCj4g KwlpZiAoaWQgPCAwKQo+ICsJCXJldHVybiAtRUFDQ0VTOwoKSG93IHRoaXMgY2FuIGhhcHBlbiA/ Cgo+ICsKPiArCSp0ZW1wZXJhdHVyZSA9IF9nZXRfc2Vuc29yX3RlbXAobXQsIGlkKTsKPiArCj4g KwlyZXR1cm4gMDsKPiArfQo+ICsKPiAgc3RhdGljIGNvbnN0IHN0cnVjdCB0aGVybWFsX3pvbmVf b2ZfZGV2aWNlX29wcyBtdGtfdGhlcm1hbF9vcHMgPSB7Cj4gIAkuZ2V0X3RlbXAgPSBtdGtfcmVh ZF90ZW1wLAo+ICB9Owo+ICAKPiArc3RhdGljIGNvbnN0IHN0cnVjdCB0aGVybWFsX3pvbmVfb2Zf ZGV2aWNlX29wcyBtdGtfdGhlcm1hbF9zZW5zb3Jfb3BzID0gewo+ICsJLmdldF90ZW1wID0gbXRr X3JlYWRfc2Vuc29yX3RlbXAsCj4gK307Cj4gKwo+ICBzdGF0aWMgdm9pZCBtdGtfdGhlcm1hbF9p bml0X2Jhbmsoc3RydWN0IG10a190aGVybWFsICptdCwgaW50IG51bSwKPiAgCQkJCSAgdTMyIGFw bWl4ZWRfcGh5c19iYXNlLCB1MzIgYXV4YWRjX3BoeXNfYmFzZSwKPiAgCQkJCSAgaW50IGN0cmxf aWQpCj4gQEAgLTk5Miw2ICsxMDIzLDcgQEAgc3RhdGljIGludCBtdGtfdGhlcm1hbF9wcm9iZShz dHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQo+ICAJdTY0IGF1eGFkY19waHlzX2Jhc2UsIGFw bWl4ZWRfcGh5c19iYXNlOwo+ICAJc3RydWN0IHRoZXJtYWxfem9uZV9kZXZpY2UgKnR6ZGV2Owo+ ICAJdm9pZCBfX2lvbWVtICphcG1peGVkX2Jhc2UsICphdXhhZGNfYmFzZTsKPiArCXN0cnVjdCBt dGtfdGhlcm1hbF96b25lICp0ejsKPiAgCj4gIAltdCA9IGRldm1fa3phbGxvYygmcGRldi0+ZGV2 LCBzaXplb2YoKm10KSwgR0ZQX0tFUk5FTCk7Cj4gIAlpZiAoIW10KQo+IEBAIC0xMDgwLDExICsx MTEyLDI5IEBAIHN0YXRpYyBpbnQgbXRrX3RoZXJtYWxfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2Rl dmljZSAqcGRldikKPiAgCj4gIAlwbGF0Zm9ybV9zZXRfZHJ2ZGF0YShwZGV2LCBtdCk7Cj4gIAo+ IC0JdHpkZXYgPSBkZXZtX3RoZXJtYWxfem9uZV9vZl9zZW5zb3JfcmVnaXN0ZXIoJnBkZXYtPmRl diwgMCwgbXQsCj4gLQkJCQkJCSAgICAgJm10a190aGVybWFsX29wcyk7Cj4gLQlpZiAoSVNfRVJS KHR6ZGV2KSkgewo+IC0JCXJldCA9IFBUUl9FUlIodHpkZXYpOwo+IC0JCWdvdG8gZXJyX2Rpc2Fi bGVfY2xrX3BlcmlfdGhlcm07Cj4gKwlmb3IgKGkgPSAwOyBpIDwgbXQtPmNvbmYtPm51bV9zZW5z b3JzICsgMTsgaSsrKSB7Cj4gKwkJdHogPSBkZXZtX2ttYWxsb2MoJnBkZXYtPmRldiwgc2l6ZW9m KCp0eiksIEdGUF9LRVJORUwpOwo+ICsJCWlmICghdHopCj4gKwkJCXJldHVybiAtRU5PTUVNOwo+ ICsKPiArCQl0ei0+bXQgPSBtdDsKPiArCQl0ei0+aWQgPSBpOwo+ICsKPiArCQl0emRldiA9IGRl dm1fdGhlcm1hbF96b25lX29mX3NlbnNvcl9yZWdpc3RlcigmcGRldi0+ZGV2LCBpLCB0eiwgKGkg PT0gMCkgPwo+ICsJCQkJCQkJICAgICAmbXRrX3RoZXJtYWxfb3BzIDoKPiArCQkJCQkJCSAgICAg Jm10a190aGVybWFsX3NlbnNvcl9vcHMpOwo+ICsKPiArCQlpZiAoSVNfRVJSKHR6ZGV2KSkgewo+ ICsJCQlpZiAoUFRSX0VSUih0emRldikgPT0gLUVOT0RFVikgewo+ICsJCQkJZGV2X3dhcm4oJnBk ZXYtPmRldiwKPiArCQkJCQkgInNlbnNvciAlZCBub3QgcmVnaXN0ZXJlZCBpbiB0aGVybWFsIHpv bmUgaW4gZHRcbiIsIGkpOwo+ICsJCQkJY29udGludWU7Cj4gKwkJCX0KPiArCQkJaWYgKFBUUl9F UlIodHpkZXYpID09IC1FQUNDRVMpIHsKPiArCQkJCXJldCA9IFBUUl9FUlIodHpkZXYpOwo+ICsJ CQkJZ290byBlcnJfZGlzYWJsZV9jbGtfcGVyaV90aGVybTsKPiArCQkJfQoKSWYgdGhlIGVycm9y IGlzIG5vbmUgb2YgdGhlIGFib3ZlLCB0aGUgbG9vcCBjb250aW51ZXMuIElzIHRoYXQgd2hhdCB5 b3UKd2FudCA/Cgo+ICsJCX0KPiAgCX0KPiAgCj4gIAlyZXR1cm4gMDsKPiAKCgotLSAKPGh0dHA6 Ly93d3cubGluYXJvLm9yZy8+IExpbmFyby5vcmcg4pSCIE9wZW4gc291cmNlIHNvZnR3YXJlIGZv ciBBUk0gU29DcwoKRm9sbG93IExpbmFybzogIDxodHRwOi8vd3d3LmZhY2Vib29rLmNvbS9wYWdl cy9MaW5hcm8+IEZhY2Vib29rIHwKPGh0dHA6Ly90d2l0dGVyLmNvbS8jIS9saW5hcm9vcmc+IFR3 aXR0ZXIgfAo8aHR0cDovL3d3dy5saW5hcm8ub3JnL2xpbmFyby1ibG9nLz4gQmxvZwoKX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KbGludXgtYXJtLWtlcm5l bCBtYWlsaW5nIGxpc3QKbGludXgtYXJtLWtlcm5lbEBsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6 Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtYXJtLWtlcm5lbAo=