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=-16.2 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, 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 63BE8C433EF for ; Wed, 15 Sep 2021 03:29:32 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 4B56161214 for ; Wed, 15 Sep 2021 03:29:32 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S236166AbhIODas (ORCPT ); Tue, 14 Sep 2021 23:30:48 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:50220 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229983AbhIODaq (ORCPT ); Tue, 14 Sep 2021 23:30:46 -0400 Received: from mail-pj1-x1035.google.com (mail-pj1-x1035.google.com [IPv6:2607:f8b0:4864:20::1035]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id CF4E0C061574; Tue, 14 Sep 2021 20:29:28 -0700 (PDT) Received: by mail-pj1-x1035.google.com with SMTP id u13-20020a17090abb0db0290177e1d9b3f7so3910991pjr.1; Tue, 14 Sep 2021 20:29:28 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=subject:to:cc:references:from:message-id:date:user-agent :mime-version:in-reply-to:content-language:content-transfer-encoding; bh=uT7lgy6zBb7N/ehnvHKTQrLcgZmZaL4s6/TKynv0i24=; b=m+DuAAM4oo4JFjhBYvWp9e7IS0bTVvDEMaBXA4Y3u+GXxoTUVLTm3vptrIvHhUsf+J kgSMV0idgr0HmbfsbOviUd6iHLYZDv1yL1egEIyX5MIqsl/2z7JYA+xbG3RlVBV8uz2U lnUKtd4eDEz4ikmEDkq11lSTTU6Y5VI32cvNv/5qnaVYOYeUEVfKsXb3S8+2NoC/pfCI jSgz8HsY8Wkq/9b+xQhOYyZoA4pyWgO0GeiNFDjWDjLTvRO2HPixRjRbEN3xrm+ZWwsl yDS7qKcfVbCA+exu6QivRCCt1Ty2PC8GdhxK377Y/Au5U1wcds2fwLvyv/n7BCZpDr5e LtCQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; 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=uT7lgy6zBb7N/ehnvHKTQrLcgZmZaL4s6/TKynv0i24=; b=lcF3oZJt5GOEkeZa5ERIJ2m2shBz3ojVWxPOyBfvAw7Yy+xYjauAdJJTUMFRSgOKVa NP4mXV9gRnivECqy8VaZ259pi/ZVFFZLnPtdhlXDN4O/MDyECAMCLOItozOfHNtcPeYZ x/q447rS12OmLYsxSZvqkcwZWyiB+9mNYQd7GJJS9trEGyNkz1HTzkqDbrzojXc1Wpvu Qzv913wkFkns10LhJmd1bM4zgOsbaPSvVYnB+D2kQlT+BT7mBUzLeiLcPrYDVr++t8+6 sTlX+xgySd/iLmUxcgx00mbBgc2SgF4FfVqq2xDruH1SRYHgB5wE2XYge/Je8Ydh9Ubx CVNA== X-Gm-Message-State: AOAM532dF+kSEOBEoN1i/OOSoG0CeoHpa8aIUrjff6GvYlPmuqam5a+A C894Q2Jqaq5ygz9Z/Heq8Kg= X-Google-Smtp-Source: ABdhPJynoM/BujMCmyDoKceEwK7oXabTKhQCj975dn97xRe9dewS669tscUlGx7ManitvurHLVc2qQ== X-Received: by 2002:a17:90a:718c:: with SMTP id i12mr5934342pjk.182.1631676568267; Tue, 14 Sep 2021 20:29:28 -0700 (PDT) Received: from [172.30.1.2] ([14.32.163.5]) by smtp.gmail.com with ESMTPSA id t13sm3256731pjj.1.2021.09.14.20.29.23 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 14 Sep 2021 20:29:27 -0700 (PDT) Subject: Re: [RFC 05/19] devfreq: imx8m-ddrc: Use the opps acquired from EL3 To: Abel Vesa , Rob Herring , Dong Aisheng , Shawn Guo , Sascha Hauer , Fabio Estevam , "catalin.marinas@arm.com" , Will Deacon , MyungJoo Ham , Kyungmin Park , Chanwoo Choi , Georgi Djakov , Adrian Hunter , Ulf Hansson , Ahmad Fatoum Cc: Pengutronix Kernel Team , linux-serial@vger.kernel.org, NXP Linux Team , Linux Kernel Mailing List , devicetree@vger.kernel.org, linux-pm@vger.kernel.org, linux-arm-kernel@lists.infradead.org References: <1631554694-9599-1-git-send-email-abel.vesa@nxp.com> <1631554694-9599-6-git-send-email-abel.vesa@nxp.com> From: Chanwoo Choi Message-ID: Date: Wed, 15 Sep 2021 12:29:20 +0900 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.11.0 MIME-Version: 1.0 In-Reply-To: <1631554694-9599-6-git-send-email-abel.vesa@nxp.com> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi, OPP is mandatory for devfreq driver. Also, must need to add the OPP levels to devicetree file, it is better to show the supported OPP list for the developer who don't know the detailed background of driver. If there are no any critical issue. I prefer the existing approach for the readability. On 21. 9. 14. 오전 2:38, Abel Vesa wrote: > i.MX8M platforms get their dram OPPs from the EL3. > We don't need to duplicate that in the kernel dram dts node. > We should just trust the OPPs provided by the EL3. > > Signed-off-by: Abel Vesa > --- > drivers/devfreq/imx8m-ddrc.c | 50 +++--------------------------------- > 1 file changed, 3 insertions(+), 47 deletions(-) > > diff --git a/drivers/devfreq/imx8m-ddrc.c b/drivers/devfreq/imx8m-ddrc.c > index 583123bf2100..f18a5c3c1c03 100644 > --- a/drivers/devfreq/imx8m-ddrc.c > +++ b/drivers/devfreq/imx8m-ddrc.c > @@ -321,38 +321,9 @@ static int imx8m_ddrc_init_freq_info(struct device *dev) > if (freq->dram_core_parent_index == 2 && > freq->dram_alt_parent_index == 0) > return -ENODEV; > - } > - > - return 0; > -} > - > -static int imx8m_ddrc_check_opps(struct device *dev) > -{ > - struct imx8m_ddrc *priv = dev_get_drvdata(dev); > - struct imx8m_ddrc_freq *freq_info; > - struct dev_pm_opp *opp; > - unsigned long freq; > - int i, opp_count; > - > - /* Enumerate DT OPPs and disable those not supported by firmware */ > - opp_count = dev_pm_opp_get_opp_count(dev); > - if (opp_count < 0) > - return opp_count; > - for (i = 0, freq = 0; i < opp_count; ++i, ++freq) { > - opp = dev_pm_opp_find_freq_ceil(dev, &freq); > - if (IS_ERR(opp)) { > - dev_err(dev, "Failed enumerating OPPs: %ld\n", > - PTR_ERR(opp)); > - return PTR_ERR(opp); > - } > - dev_pm_opp_put(opp); > > - freq_info = imx8m_ddrc_find_freq(priv, freq); > - if (!freq_info) { > - dev_info(dev, "Disable unsupported OPP %luHz %luMT/s\n", > - freq, DIV_ROUND_CLOSEST(freq, 250000)); > - dev_pm_opp_disable(dev, freq); > - } > + if (dev_pm_opp_add(dev, freq->rate * 250000, 0)) > + return -ENODEV; > } > > return 0; > @@ -360,7 +331,6 @@ static int imx8m_ddrc_check_opps(struct device *dev) > > static void imx8m_ddrc_exit(struct device *dev) > { > - dev_pm_opp_of_remove_table(dev); > } > > static int imx8m_ddrc_probe(struct platform_device *pdev) > @@ -407,16 +377,7 @@ static int imx8m_ddrc_probe(struct platform_device *pdev) > return ret; > } > > - ret = dev_pm_opp_of_add_table(dev); > - if (ret < 0) { > - dev_err(dev, "failed to get OPP table\n"); > - return ret; > - } > - > - ret = imx8m_ddrc_check_opps(dev); > - if (ret < 0) > - goto err; > - > + priv->profile.polling_ms = 1000; This change is not related to role of this patch. Need to make the separate patch. > priv->profile.target = imx8m_ddrc_target; > priv->profile.exit = imx8m_ddrc_exit; > priv->profile.get_cur_freq = imx8m_ddrc_get_cur_freq; > @@ -427,13 +388,8 @@ static int imx8m_ddrc_probe(struct platform_device *pdev) > if (IS_ERR(priv->devfreq)) { > ret = PTR_ERR(priv->devfreq); > dev_err(dev, "failed to add devfreq device: %d\n", ret); > - goto err; > } > > - return 0; > - > -err: > - dev_pm_opp_of_remove_table(dev); > return ret; > } > > -- Best Regards, Samsung Electronics Chanwoo Choi 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=-14.2 required=3.0 tests=BAYES_00, DKIM_ADSP_CUSTOM_MED,DKIM_SIGNED,DKIM_VALID,FREEMAIL_FORGED_FROMDOMAIN, FREEMAIL_FROM,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=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 81DC7C433EF for ; Wed, 15 Sep 2021 03:31:35 +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 4E95360FDA for ; Wed, 15 Sep 2021 03:31:35 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.1 mail.kernel.org 4E95360FDA Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=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-Type: Content-Transfer-Encoding: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=P1+MOQF6GkCDEAcsbPC7+onxCM8Hzy6AHLW1iEQeXVw=; b=Gl2mtmSrXEVKOQSaz2mAu68LMY BaZ8GQGJ2B24WxxbTCY2sEml49Q4scCSfaEOf2uoIWOru2YpdmbJLNIwXvcXLWGtvSdPHzPaPMmPv R90/wO7ihqBw00UK2ACwsplRoD19PDQQ3YX662MF01ZmYujGe6kQ2WJy+5mo+aCrkxVCtGvI216vi MJYMFh0xNa+hNTyklgd5TBgYMSPuPbnZ9U6Aoy6lNqZGg1h4RB27jH5TCb7Yl06FrsA4DtA4M51Ox IATVNlt1cqY+6WyJ87vlF9dhiGYflc4rR0GsDB82PeFyYzWx9VpJ7vQR7uX8awImWVbGDqLb0NMrV t2C9Q0rg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1mQLc6-007xbz-9q; Wed, 15 Sep 2021 03:29:34 +0000 Received: from mail-pj1-x1035.google.com ([2607:f8b0:4864:20::1035]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1mQLc2-007xar-8t for linux-arm-kernel@lists.infradead.org; Wed, 15 Sep 2021 03:29:31 +0000 Received: by mail-pj1-x1035.google.com with SMTP id i19so1164881pjv.4 for ; Tue, 14 Sep 2021 20:29:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=subject:to:cc:references:from:message-id:date:user-agent :mime-version:in-reply-to:content-language:content-transfer-encoding; bh=uT7lgy6zBb7N/ehnvHKTQrLcgZmZaL4s6/TKynv0i24=; b=m+DuAAM4oo4JFjhBYvWp9e7IS0bTVvDEMaBXA4Y3u+GXxoTUVLTm3vptrIvHhUsf+J kgSMV0idgr0HmbfsbOviUd6iHLYZDv1yL1egEIyX5MIqsl/2z7JYA+xbG3RlVBV8uz2U lnUKtd4eDEz4ikmEDkq11lSTTU6Y5VI32cvNv/5qnaVYOYeUEVfKsXb3S8+2NoC/pfCI jSgz8HsY8Wkq/9b+xQhOYyZoA4pyWgO0GeiNFDjWDjLTvRO2HPixRjRbEN3xrm+ZWwsl yDS7qKcfVbCA+exu6QivRCCt1Ty2PC8GdhxK377Y/Au5U1wcds2fwLvyv/n7BCZpDr5e LtCQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; 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=uT7lgy6zBb7N/ehnvHKTQrLcgZmZaL4s6/TKynv0i24=; b=c6JaJX62YZvOND7sbdjkoKus2FizlPCq3LPxeUJjhthNXkc6D0pCnQP5QLsc+pYH0P h0xljlWzrSTxMacBAjK4iP62uQYjKWsCsD8m09o88c1w64ksKCg+XT0lpDd3fHodczZc twjhf5L0VkS+lGZofYfPHHy+rqtXcVYyVuUEBmBXoLSSUUvyihgd+g/0P/vHqo1NmO1K FQzAtDceFC4kkihcNO3FF+YKJGiKH+t92JmL8N0ltgVc15wohZ+xzQV9WKPxo3o98r1D 2N73meiwr6xYdiiYYHvX9Y3YsdlNKOp3Fa2maB8JPonYIlVv34JZSXFAHUK/9ZiXlqXU ZQug== X-Gm-Message-State: AOAM533cITQLG+7+l603Ts9ISHvtEdgp940VDCCEeM6+3vBLgWBHZENY xG+gKOYWQkGTynep3t1ZuB/Su4/taj8= X-Google-Smtp-Source: ABdhPJynoM/BujMCmyDoKceEwK7oXabTKhQCj975dn97xRe9dewS669tscUlGx7ManitvurHLVc2qQ== X-Received: by 2002:a17:90a:718c:: with SMTP id i12mr5934342pjk.182.1631676568267; Tue, 14 Sep 2021 20:29:28 -0700 (PDT) Received: from [172.30.1.2] ([14.32.163.5]) by smtp.gmail.com with ESMTPSA id t13sm3256731pjj.1.2021.09.14.20.29.23 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 14 Sep 2021 20:29:27 -0700 (PDT) Subject: Re: [RFC 05/19] devfreq: imx8m-ddrc: Use the opps acquired from EL3 To: Abel Vesa , Rob Herring , Dong Aisheng , Shawn Guo , Sascha Hauer , Fabio Estevam , "catalin.marinas@arm.com" , Will Deacon , MyungJoo Ham , Kyungmin Park , Chanwoo Choi , Georgi Djakov , Adrian Hunter , Ulf Hansson , Ahmad Fatoum Cc: Pengutronix Kernel Team , linux-serial@vger.kernel.org, NXP Linux Team , Linux Kernel Mailing List , devicetree@vger.kernel.org, linux-pm@vger.kernel.org, linux-arm-kernel@lists.infradead.org References: <1631554694-9599-1-git-send-email-abel.vesa@nxp.com> <1631554694-9599-6-git-send-email-abel.vesa@nxp.com> From: Chanwoo Choi Message-ID: Date: Wed, 15 Sep 2021 12:29:20 +0900 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.11.0 MIME-Version: 1.0 In-Reply-To: <1631554694-9599-6-git-send-email-abel.vesa@nxp.com> Content-Language: en-US X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20210914_202930_365220_CE9F9DE4 X-CRM114-Status: GOOD ( 29.99 ) 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-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org SGksCgpPUFAgaXMgbWFuZGF0b3J5IGZvciBkZXZmcmVxIGRyaXZlci4gQWxzbywgbXVzdCBuZWVk IHRvIGFkZAp0aGUgT1BQIGxldmVscyB0byAgZGV2aWNldHJlZSBmaWxlLCBpdCBpcyBiZXR0ZXIg dG8gc2hvdwp0aGUgc3VwcG9ydGVkIE9QUCBsaXN0IGZvciB0aGUgZGV2ZWxvcGVyIHdobyBkb24n dCBrbm93CnRoZSBkZXRhaWxlZCBiYWNrZ3JvdW5kIG9mIGRyaXZlci4gSWYgdGhlcmUgYXJlIG5v IGFueQpjcml0aWNhbCBpc3N1ZS4gSSBwcmVmZXIgdGhlIGV4aXN0aW5nIGFwcHJvYWNoIGZvciB0 aGUgcmVhZGFiaWxpdHkuCgpPbiAyMS4gOS4gMTQuIOyYpOyghCAyOjM4LCBBYmVsIFZlc2Egd3Jv dGU6Cj4gaS5NWDhNIHBsYXRmb3JtcyBnZXQgdGhlaXIgZHJhbSBPUFBzIGZyb20gdGhlIEVMMy4K PiBXZSBkb24ndCBuZWVkIHRvIGR1cGxpY2F0ZSB0aGF0IGluIHRoZSBrZXJuZWwgZHJhbSBkdHMg bm9kZS4KPiBXZSBzaG91bGQganVzdCB0cnVzdCB0aGUgT1BQcyBwcm92aWRlZCBieSB0aGUgRUwz Lgo+IAo+IFNpZ25lZC1vZmYtYnk6IEFiZWwgVmVzYSA8YWJlbC52ZXNhQG54cC5jb20+Cj4gLS0t Cj4gICBkcml2ZXJzL2RldmZyZXEvaW14OG0tZGRyYy5jIHwgNTAgKysrLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCj4gICAxIGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspLCA0 NyBkZWxldGlvbnMoLSkKPiAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9kZXZmcmVxL2lteDhtLWRk cmMuYyBiL2RyaXZlcnMvZGV2ZnJlcS9pbXg4bS1kZHJjLmMKPiBpbmRleCA1ODMxMjNiZjIxMDAu LmYxOGE1YzNjMWMwMyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2RldmZyZXEvaW14OG0tZGRyYy5j Cj4gKysrIGIvZHJpdmVycy9kZXZmcmVxL2lteDhtLWRkcmMuYwo+IEBAIC0zMjEsMzggKzMyMSw5 IEBAIHN0YXRpYyBpbnQgaW14OG1fZGRyY19pbml0X2ZyZXFfaW5mbyhzdHJ1Y3QgZGV2aWNlICpk ZXYpCj4gICAJCWlmIChmcmVxLT5kcmFtX2NvcmVfcGFyZW50X2luZGV4ID09IDIgJiYKPiAgIAkJ CQlmcmVxLT5kcmFtX2FsdF9wYXJlbnRfaW5kZXggPT0gMCkKPiAgIAkJCXJldHVybiAtRU5PREVW Owo+IC0JfQo+IC0KPiAtCXJldHVybiAwOwo+IC19Cj4gLQo+IC1zdGF0aWMgaW50IGlteDhtX2Rk cmNfY2hlY2tfb3BwcyhzdHJ1Y3QgZGV2aWNlICpkZXYpCj4gLXsKPiAtCXN0cnVjdCBpbXg4bV9k ZHJjICpwcml2ID0gZGV2X2dldF9kcnZkYXRhKGRldik7Cj4gLQlzdHJ1Y3QgaW14OG1fZGRyY19m cmVxICpmcmVxX2luZm87Cj4gLQlzdHJ1Y3QgZGV2X3BtX29wcCAqb3BwOwo+IC0JdW5zaWduZWQg bG9uZyBmcmVxOwo+IC0JaW50IGksIG9wcF9jb3VudDsKPiAtCj4gLQkvKiBFbnVtZXJhdGUgRFQg T1BQcyBhbmQgZGlzYWJsZSB0aG9zZSBub3Qgc3VwcG9ydGVkIGJ5IGZpcm13YXJlICovCj4gLQlv cHBfY291bnQgPSBkZXZfcG1fb3BwX2dldF9vcHBfY291bnQoZGV2KTsKPiAtCWlmIChvcHBfY291 bnQgPCAwKQo+IC0JCXJldHVybiBvcHBfY291bnQ7Cj4gLQlmb3IgKGkgPSAwLCBmcmVxID0gMDsg aSA8IG9wcF9jb3VudDsgKytpLCArK2ZyZXEpIHsKPiAtCQlvcHAgPSBkZXZfcG1fb3BwX2ZpbmRf ZnJlcV9jZWlsKGRldiwgJmZyZXEpOwo+IC0JCWlmIChJU19FUlIob3BwKSkgewo+IC0JCQlkZXZf ZXJyKGRldiwgIkZhaWxlZCBlbnVtZXJhdGluZyBPUFBzOiAlbGRcbiIsCj4gLQkJCQlQVFJfRVJS KG9wcCkpOwo+IC0JCQlyZXR1cm4gUFRSX0VSUihvcHApOwo+IC0JCX0KPiAtCQlkZXZfcG1fb3Bw X3B1dChvcHApOwo+ICAgCj4gLQkJZnJlcV9pbmZvID0gaW14OG1fZGRyY19maW5kX2ZyZXEocHJp diwgZnJlcSk7Cj4gLQkJaWYgKCFmcmVxX2luZm8pIHsKPiAtCQkJZGV2X2luZm8oZGV2LCAiRGlz YWJsZSB1bnN1cHBvcnRlZCBPUFAgJWx1SHogJWx1TVQvc1xuIiwKPiAtCQkJCQlmcmVxLCBESVZf Uk9VTkRfQ0xPU0VTVChmcmVxLCAyNTAwMDApKTsKPiAtCQkJZGV2X3BtX29wcF9kaXNhYmxlKGRl diwgZnJlcSk7Cj4gLQkJfQo+ICsJCWlmIChkZXZfcG1fb3BwX2FkZChkZXYsIGZyZXEtPnJhdGUg KiAyNTAwMDAsIDApKQo+ICsJCQlyZXR1cm4gLUVOT0RFVjsKPiAgIAl9Cj4gICAKPiAgIAlyZXR1 cm4gMDsKPiBAQCAtMzYwLDcgKzMzMSw2IEBAIHN0YXRpYyBpbnQgaW14OG1fZGRyY19jaGVja19v cHBzKHN0cnVjdCBkZXZpY2UgKmRldikKPiAgIAo+ICAgc3RhdGljIHZvaWQgaW14OG1fZGRyY19l eGl0KHN0cnVjdCBkZXZpY2UgKmRldikKPiAgIHsKPiAtCWRldl9wbV9vcHBfb2ZfcmVtb3ZlX3Rh YmxlKGRldik7Cj4gICB9Cj4gICAKPiAgIHN0YXRpYyBpbnQgaW14OG1fZGRyY19wcm9iZShzdHJ1 Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQo+IEBAIC00MDcsMTYgKzM3Nyw3IEBAIHN0YXRpYyBp bnQgaW14OG1fZGRyY19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQo+ICAgCQly ZXR1cm4gcmV0Owo+ICAgCX0KPiAgIAo+IC0JcmV0ID0gZGV2X3BtX29wcF9vZl9hZGRfdGFibGUo ZGV2KTsKPiAtCWlmIChyZXQgPCAwKSB7Cj4gLQkJZGV2X2VycihkZXYsICJmYWlsZWQgdG8gZ2V0 IE9QUCB0YWJsZVxuIik7Cj4gLQkJcmV0dXJuIHJldDsKPiAtCX0KPiAtCj4gLQlyZXQgPSBpbXg4 bV9kZHJjX2NoZWNrX29wcHMoZGV2KTsKPiAtCWlmIChyZXQgPCAwKQo+IC0JCWdvdG8gZXJyOwo+ IC0KPiArCXByaXYtPnByb2ZpbGUucG9sbGluZ19tcyA9IDEwMDA7CgpUaGlzIGNoYW5nZSBpcyBu b3QgcmVsYXRlZCB0byByb2xlIG9mIHRoaXMgcGF0Y2guCk5lZWQgdG8gbWFrZSB0aGUgc2VwYXJh dGUgcGF0Y2guCgo+ICAgCXByaXYtPnByb2ZpbGUudGFyZ2V0ID0gaW14OG1fZGRyY190YXJnZXQ7 Cj4gICAJcHJpdi0+cHJvZmlsZS5leGl0ID0gaW14OG1fZGRyY19leGl0Owo+ICAgCXByaXYtPnBy b2ZpbGUuZ2V0X2N1cl9mcmVxID0gaW14OG1fZGRyY19nZXRfY3VyX2ZyZXE7Cj4gQEAgLTQyNywx MyArMzg4LDggQEAgc3RhdGljIGludCBpbXg4bV9kZHJjX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9k ZXZpY2UgKnBkZXYpCj4gICAJaWYgKElTX0VSUihwcml2LT5kZXZmcmVxKSkgewo+ICAgCQlyZXQg PSBQVFJfRVJSKHByaXYtPmRldmZyZXEpOwo+ICAgCQlkZXZfZXJyKGRldiwgImZhaWxlZCB0byBh ZGQgZGV2ZnJlcSBkZXZpY2U6ICVkXG4iLCByZXQpOwo+IC0JCWdvdG8gZXJyOwo+ICAgCX0KPiAg IAo+IC0JcmV0dXJuIDA7Cj4gLQo+IC1lcnI6Cj4gLQlkZXZfcG1fb3BwX29mX3JlbW92ZV90YWJs ZShkZXYpOwo+ICAgCXJldHVybiByZXQ7Cj4gICB9Cj4gICAKPiAKCgotLSAKQmVzdCBSZWdhcmRz LApTYW1zdW5nIEVsZWN0cm9uaWNzCkNoYW53b28gQ2hvaQoKX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX18KbGludXgtYXJtLWtlcm5lbCBtYWlsaW5nIGxpc3QK bGludXgtYXJtLWtlcm5lbEBsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRl YWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtYXJtLWtlcm5lbAo=