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=-17.5 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,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 0B061C433DB for ; Thu, 18 Mar 2021 09:43:36 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id B28D064F10 for ; Thu, 18 Mar 2021 09:43:35 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229780AbhCRJnE (ORCPT ); Thu, 18 Mar 2021 05:43:04 -0400 Received: from mailout2.samsung.com ([203.254.224.25]:40647 "EHLO mailout2.samsung.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229813AbhCRJmb (ORCPT ); Thu, 18 Mar 2021 05:42:31 -0400 Received: from epcas1p1.samsung.com (unknown [182.195.41.45]) by mailout2.samsung.com (KnoxPortal) with ESMTP id 20210318094229epoutp02b334a1dc8b87f5a663e875cf602da74e~tZoIGyX6z2938129381epoutp02R for ; Thu, 18 Mar 2021 09:42:29 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 mailout2.samsung.com 20210318094229epoutp02b334a1dc8b87f5a663e875cf602da74e~tZoIGyX6z2938129381epoutp02R DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1616060549; bh=FpnHDzjLsD0eou2f54DyEkrjl+YFeQwbawPVaFntxCI=; h=Subject:From:To:Cc:Date:In-Reply-To:References:From; b=YAXEZncP1genbpKi8zHiLwz0bCE3ddz0bAx2L0mFlv5/eKzBPDxMGJFIEzE3jirVS OU96Jd5hPF5M2UY0mnEyrF/vzMrWpolbluGg1VL1JlKczGownhSiaYLWvBp7fvzzCe KBQ5dCHNY06XCR7p559L8XNQ/jkAp750W8JNK3OU= Received: from epsnrtp1.localdomain (unknown [182.195.42.162]) by epcas1p3.samsung.com (KnoxPortal) with ESMTP id 20210318094229epcas1p3739da8958f547bcf34986a9575855c73~tZoHY2SEM1858418584epcas1p3D; Thu, 18 Mar 2021 09:42:29 +0000 (GMT) Received: from epsmges1p2.samsung.com (unknown [182.195.40.153]) by epsnrtp1.localdomain (Postfix) with ESMTP id 4F1MWQ5BC1z4x9Ps; Thu, 18 Mar 2021 09:42:26 +0000 (GMT) Received: from epcas1p4.samsung.com ( [182.195.41.48]) by epsmges1p2.samsung.com (Symantec Messaging Gateway) with SMTP id 34.AA.63458.08023506; Thu, 18 Mar 2021 18:42:24 +0900 (KST) Received: from epsmtrp2.samsung.com (unknown [182.195.40.14]) by epcas1p4.samsung.com (KnoxPortal) with ESMTPA id 20210318094223epcas1p43678e2bd346aaf0b8d4a3d2845e7622c~tZoCaVpbE2728027280epcas1p4t; Thu, 18 Mar 2021 09:42:23 +0000 (GMT) Received: from epsmgms1p2.samsung.com (unknown [182.195.42.42]) by epsmtrp2.samsung.com (KnoxPortal) with ESMTP id 20210318094223epsmtrp26d753b7fea75820ce81e4796b2e031de~tZoCZVN542253222532epsmtrp26; Thu, 18 Mar 2021 09:42:23 +0000 (GMT) X-AuditID: b6c32a36-6dfff7000000f7e2-71-605320806540 Received: from epsmtip2.samsung.com ( [182.195.34.31]) by epsmgms1p2.samsung.com (Symantec Messaging Gateway) with SMTP id 32.50.08745.F7023506; Thu, 18 Mar 2021 18:42:23 +0900 (KST) Received: from [10.113.221.102] (unknown [10.113.221.102]) by epsmtip2.samsung.com (KnoxPortal) with ESMTPA id 20210318094223epsmtip2688ecbdf2f0ea1a2876eb7010924183a~tZoCBo4wZ3024830248epsmtip2O; Thu, 18 Mar 2021 09:42:23 +0000 (GMT) Subject: Re: [PATCH 07/11] PM / devfreq: check get_dev_status before start monitor From: Chanwoo Choi To: Dong Aisheng , Chanwoo Choi Cc: Dong Aisheng , Linux PM , "moderated list:ARM/FREESCALE IMX / MXC ARM ARCHITECTURE" , Sascha Hauer , Shawn Guo , dl-linux-imx , open list , myungjoo.ham@samsung.com, kyungmin.park@samsung.com, Abel Vesa Organization: Samsung Electronics Message-ID: <4b5a0c61-2bab-8b00-621c-25f1244fee92@samsung.com> Date: Thu, 18 Mar 2021 18:59:30 +0900 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:59.0) Gecko/20100101 Thunderbird/59.0 MIME-Version: 1.0 In-Reply-To: <0e518145-5cae-63f1-c32f-e6207fdeae54@samsung.com> Content-Language: en-US Content-Transfer-Encoding: 8bit X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFtrJJsWRmVeSWpSXmKPExsWy7bCmgW6DQnCCwZ9vshbLLh1ltPgydRez xbOj2hZ/N09ns1g1dSeLxdmmN+wWmx5fY7Xo+rWS2eLyrjlsFp97jzBa3G5cwWbxYou4A4/H zll32T02repk89i8pN5j47sdTB79fw08+rasYvT4vEkugD0q2yYjNTEltUghNS85PyUzL91W yTs43jne1MzAUNfQ0sJcSSEvMTfVVsnFJ0DXLTMH6EolhbLEnFKgUEBicbGSvp1NUX5pSapC Rn5xia1SakFKToFlgV5xYm5xaV66XnJ+rpWhgYGRKVBhQnbGzCfrWQp6/Ct+TpnG1sC4waGL kZNDQsBE4tKhl+xdjFwcQgI7GCW27V7GBOF8YpR42bqDEcL5zChx9fQ0ZpiWppV7oBK7GCVO TZ0M1fKeUWLGny8sIFXCAiESk0//BetgE9CS2P/iBhuILSLgIXFp+hQ2kAZmgYXMEp/3PAJr 4BdQlLj64zEjiM0rYCex6dpzJhCbRUBVYs6BtWDNogJhEie3tUDVCEqcnPkErJdTwF7i28WP YHFmAXGJW0/mM0HY8hLNW2czgyyTEDjBIXGqbxUjxA8uEtf3/mOCsIUlXh3fwg5hS0l8freX DcKullh58ggbRHMHo8SW/RdYIRLGEvuXgvzMAbRBU2L9Ln2IsKLEzt9zoY7gk3j3tYcVpERC gFeio00IokRZ4vKDu1BrJSUWt3eyTWBUmoXknVlIXpiF5IVZCMsWMLKsYhRLLSjOTU8tNiww Qo7vTYzgNKxltoNx0tsPeocYmTgYDzFKcDArifCa5gUkCPGmJFZWpRblxxeV5qQWH2I0BQbw RGYp0eR8YCbIK4k3NDUyNja2MDE0MzU0VBLnTTR4EC8kkJ5YkpqdmlqQWgTTx8TBKdXANPvm hdkzt8R1PfuY90/F6d5HQYdpk9kStWfMsckON3x7W3tFDkMi5zmTjqh/QZ1fs/7GbD7arFTd z7XGz65pnaZXzCbRtXkc24uCHxr42Wkk6JyIYOPmvL0hSyIsNH9v3ruX8x2uGzzxjVzxx5gr 0eTE8fPhgQ29HoGbAied+Btw1qv2WMAsjqC78W9MnH4HlJgdm2AoX+t9fr9B/RIr1nSny5zt a/baipq/WXfq1fEfHRxTjH5X/5nzsK10cbdEpMEC7zVSehd6DufJFR6ozX3O8dLwccuFs/HS qX0ZwltyX/Ctb/RsDRaq9/lhL35ek7mbSy3UMnOKowDXzKvs75YsWL/g7+VUhQlZiixKLMUZ iYZazEXFiQD5bmVVTAQAAA== X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFlrMIsWRmVeSWpSXmKPExsWy7bCSvG69QnCCwaNDGhbLLh1ltPgydRez xbOj2hZ/N09ns1g1dSeLxdmmN+wWmx5fY7Xo+rWS2eLyrjlsFp97jzBa3G5cwWbxYou4A4/H zll32T02repk89i8pN5j47sdTB79fw08+rasYvT4vEkugD2KyyYlNSezLLVI3y6BK2Pmk/Us BT3+FT+nTGNrYNzg0MXIySEhYCLRtHIPYxcjF4eQwA5GiQcnbjFDJCQlpl08CmRzANnCEocP F0PUvGWUWPvoFQtIjbBAiMTk03/B6tkEtCT2v7jBBmKLCHhIXJo+hQ2kgVlgIbPEwr0rmCG6 37FJ3GqfwAhSxS+gKHH1x2Mwm1fATmLTtedMIDaLgKrEnANrwSaJCoRJ7FzymAmiRlDi5Mwn YJs5Bewlvl38CNbLLKAu8WfeJWYIW1zi1pP5TBC2vETz1tnMExiFZyFpn4WkZRaSlllIWhYw sqxilEwtKM5Nzy02LDDKSy3XK07MLS7NS9dLzs/dxAiORy2tHYx7Vn3QO8TIxMF4iFGCg1lJ hNc0LyBBiDclsbIqtSg/vqg0J7X4EKM0B4uSOO+FrpPxQgLpiSWp2ampBalFMFkmDk6pBqbo yJvzRffq+F7KntHWYRLySoTJW/Ck4ruuKwtYma9UfWVqmMasqJrpaSj0t+7i/D/b27/+PmRk os47v+6q4dWAYydWF8e7sXBaNHXeSTmfYKCeX5o3wcDUUlH4lcpRm2SFKywb17TOX+vi/qD6 qdW2jpQdMx836v5Py/TY3eS48mXQ+UeHF8w4FGzJWL7ImaNSXlxJMSag7Y7mJqtjVilCjtK3 lfa8WPZTrudukY3g6iNMb4tufox2Zd40R23D3QccM37JBX40fVIsq3aV7VG6wISzLyT3bFbW Utqgwrv2e/dTXsMzJ40uG69uysiL0WtmWHSWLXBl08bvO7U9mOxynkT5TqwTXZl1IGzZFiWW 4oxEQy3mouJEAJxulqM2AwAA X-CMS-MailID: 20210318094223epcas1p43678e2bd346aaf0b8d4a3d2845e7622c X-Msg-Generator: CA Content-Type: text/plain; charset="utf-8" X-Sendblock-Type: SVC_REQ_APPROVE CMS-TYPE: 101P DLP-Filter: Pass X-CFilter-Loop: Reflected X-CMS-RootMailID: 20210310025703epcas1p10fdb324cc7ce1accfdc8f66315e8a93e References: <1615294733-22761-1-git-send-email-aisheng.dong@nxp.com> <1615294733-22761-8-git-send-email-aisheng.dong@nxp.com> <31be2267-8988-f162-f5a6-6e6389bbf1fb@samsung.com> <0e518145-5cae-63f1-c32f-e6207fdeae54@samsung.com> Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 3/18/21 6:54 PM, Chanwoo Choi wrote: > On 3/18/21 5:03 PM, Dong Aisheng wrote: >> Hi Chanwoo, >> >> On Sat, Mar 13, 2021 at 2:45 PM Dong Aisheng wrote: >>> >>> On Sat, Mar 13, 2021 at 12:09 AM Chanwoo Choi wrote: >>>> >>>> On 21. 3. 12. 오후 7:57, Dong Aisheng wrote: >>>>> On Thu, Mar 11, 2021 at 2:54 PM Chanwoo Choi wrote: >>>>>> >>>>>> On 3/10/21 1:56 PM, Dong Aisheng wrote: >>>>>>> On Wed, Mar 10, 2021 at 11:08 AM Chanwoo Choi wrote: >>>>>>>> >>>>>>>> On 3/10/21 11:56 AM, Dong Aisheng wrote: >>>>>>>>> On Wed, Mar 10, 2021 at 12:12 AM Chanwoo Choi wrote: >>>>>>>>>> >>>>>>>>>> On 21. 3. 10. 오전 12:58, Chanwoo Choi wrote: >>>>>>>>>>> On 21. 3. 9. 오후 9:58, Dong Aisheng wrote: >>>>>>>>>>>> The devfreq monitor depends on the device to provide load information >>>>>>>>>>>> by .get_dev_status() to calculate the next target freq. >>>>>>>>>>>> >>>>>>>>>>>> And this will cause changing governor to simple ondemand fail >>>>>>>>>>>> if device can't support. >>>>>>>>>>>> >>>>>>>>>>>> Signed-off-by: Dong Aisheng >>>>>>>>>>>> --- >>>>>>>>>>>> drivers/devfreq/devfreq.c | 10 +++++++--- >>>>>>>>>>>> drivers/devfreq/governor.h | 2 +- >>>>>>>>>>>> drivers/devfreq/governor_simpleondemand.c | 3 +-- >>>>>>>>>>>> 3 files changed, 9 insertions(+), 6 deletions(-) >>>>>>>>>>>> >>>>>>>>>>>> diff --git a/drivers/devfreq/devfreq.c b/drivers/devfreq/devfreq.c >>>>>>>>>>>> index 7231fe6862a2..d1787b6c7d7c 100644 >>>>>>>>>>>> --- a/drivers/devfreq/devfreq.c >>>>>>>>>>>> +++ b/drivers/devfreq/devfreq.c >>>>>>>>>>>> @@ -482,10 +482,13 @@ static void devfreq_monitor(struct work_struct >>>>>>>>>>>> *work) >>>>>>>>>>>> * to be called from governor in response to DEVFREQ_GOV_START >>>>>>>>>>>> * event when device is added to devfreq framework. >>>>>>>>>>>> */ >>>>>>>>>>>> -void devfreq_monitor_start(struct devfreq *devfreq) >>>>>>>>>>>> +int devfreq_monitor_start(struct devfreq *devfreq) >>>>>>>>>>>> { >>>>>>>>>>>> if (IS_SUPPORTED_FLAG(devfreq->governor->flags, IRQ_DRIVEN)) >>>>>>>>>>>> - return; >>>>>>>>>>>> + return 0; >>>>>>>>>>>> + >>>>>>>>>>>> + if (!devfreq->profile->get_dev_status) >>>>>>>>>>>> + return -EINVAL; >>>>>>>>>> >>>>>>>>>> Again, I think that get_dev_status is not used for all governors. >>>>>>>>>> So that it cause the governor start fail. Don't check whether >>>>>>>>>> .get_dev_status is NULL or not. >>>>>>>>>> >>>>>>>>> >>>>>>>>> I'm not quite understand your point. >>>>>>>>> it is used by governor_simpleondemand.c and tegra_devfreq_governor. >>>>>>>>> get_target_freq -> devfreq_update_stats -> get_dev_status >>>>>>>> >>>>>>>> The devfreq can add the new governor by anyone. >>>>>>>> So these functions like devfreq_monitor_* have to support >>>>>>>> the governors and also must support the governor to be added >>>>>>>> in the future. >>>>>>> >>>>>>> Yes, but devfreq_monitor_* is only used by polling mode, right? >>>>>>> The governor using it has to implement get_dev_status unless >>>>>>> there's an exception in the future. >>>>>>> >>>>>>> Currently this patch wants to address the issue that user can switch >>>>>>> to ondemand governor (polling mode) by sysfs even devices does >>>>>>> not support it (no get_dev_status implemented). >>>>>> >>>>>> As I commented, I'll fix this issue. If devfreq driver doesn't implement >>>>>> the .get_dev_status, don't show it via available_governors. I think that >>>>>> it is fundamental solution to fix this issue. >>>>> >>>>> Sounds good >>>>> >>>>>> So on this version, >>>>>> don't add the this conditional statement on this function >>>>>> >>>>> >>>>> Almost all this patch did is adding a checking for get_dev_status. >>>>> So do you mean drop this patch? >>>>> I wonder it's still a necessary checking to explicitly tell devfreq monitor >>>>> users that get_dev_status is needed during governor startup. >>>> >>>> I think that the it is enough to check .get_dev_status in >>>> devfreq_update_stats. We have to check it on where it is used. >>>> >>> >>> I think the drawback of only checking .get_dev_status in >>> devfreq_update_stats is: >>> 1. devfreq will still register successfully and ondemand governor starts ok >>> 2. ondemand governor will still be shown in sysfs which is something >>> you want to fix >>> 3. devfreq will end up printing endless error messages in devfreq_monitor worker >>> "dvfs failed with (%d) error" as the possible missing .get_dev_status > > I think that devfreq_monitor_start have to handle only work instance. > This approach is too considering the deep check list. > I want to resolve this periodical error log with different solution. > > Actually, we have to reject the registration of devfreq device > when calling devfreq_add_device instead of checking .get_dev_status > in devfreq_monitor_start(). I'll reject the registration of devfreq device if the mandatory function pointer of struct devfreq_dev_profile are not initialized. - .get_dev_status If some governors like simple_ondemand, have to initialize it. So, I need to add the new flag to specify this feature. - .target is mandatory for all devfreq devices. I'll check it. > > >>> >>> So i wonder if you don't like changing the common devfreq_monitor_start in order >>> to make it look common for all governors, then we probably still need >>> to fix it in >>> ondemand governor in order to avoid the possible above issues. >>> >>> static int devfreq_simple_ondemand_handler(struct devfreq *devfreq, >>> unsigned int event, void *data) >>> { >>> switch (event) { >>> case DEVFREQ_GOV_START: >>> if (!devfreq->profile->get_dev_status) >>> return -EINVAL; >>> >>> return devfreq_monitor_start(devfreq); >>> ... >>> } >>> >>> How do you think? >> >> Any feedback? >> >> I'm waiting for your confirmation whether dropping this one, >> then I can re-sent the series. >> >> Regards >> Aisheng >> >>> >>> Regards >>> Aisheng >>> >>> >>>>> >>>>>> And on next version, please use the capital letter for first character >>>>>> on patch title as following: >>>>>> >>>>>> - PM / devfreq: Check get_dev_status before start monitor >>>>>> >>>>> >>>>> Okay to me. >>>>> Thanks for the suggestion. >>>>> >>>>> Regards >>>>> Aisheng >>>>> >>>>>>> >>>>>>> Regards >>>>>>> Aisheng >>>>>>> >>>>>>>> >>>>>>>>> >>>>>>>>> Without checking, device can switch to ondemand governor if it does not support. >>>>>>>>> >>>>>>>>> Am i missed something? >>>>>>>>> >>>>>>>>> Regards >>>>>>>>> Aisheng >>>>>>>>> >>>>>>>>>>>> switch (devfreq->profile->timer) { >>>>>>>>>>>> case DEVFREQ_TIMER_DEFERRABLE: >>>>>>>>>>>> @@ -495,12 +498,13 @@ void devfreq_monitor_start(struct devfreq *devfreq) >>>>>>>>>>>> INIT_DELAYED_WORK(&devfreq->work, devfreq_monitor); >>>>>>>>>>>> break; >>>>>>>>>>>> default: >>>>>>>>>>>> - return; >>>>>>>>>>>> + return -EINVAL; >>>>>>>>>>>> } >>>>>>>>>>>> if (devfreq->profile->polling_ms) >>>>>>>>>>>> queue_delayed_work(devfreq_wq, &devfreq->work, >>>>>>>>>>>> msecs_to_jiffies(devfreq->profile->polling_ms)); >>>>>>>>>>>> + return 0; >>>>>>>>>>>> } >>>>>>>>>>>> EXPORT_SYMBOL(devfreq_monitor_start); >>>>>>>>>>>> diff --git a/drivers/devfreq/governor.h b/drivers/devfreq/governor.h >>>>>>>>>>>> index 5cee3f64fe2b..31af6d072a10 100644 >>>>>>>>>>>> --- a/drivers/devfreq/governor.h >>>>>>>>>>>> +++ b/drivers/devfreq/governor.h >>>>>>>>>>>> @@ -75,7 +75,7 @@ struct devfreq_governor { >>>>>>>>>>>> unsigned int event, void *data); >>>>>>>>>>>> }; >>>>>>>>>>>> -void devfreq_monitor_start(struct devfreq *devfreq); >>>>>>>>>>>> +int devfreq_monitor_start(struct devfreq *devfreq); >>>>>>>>>>>> void devfreq_monitor_stop(struct devfreq *devfreq); >>>>>>>>>>>> void devfreq_monitor_suspend(struct devfreq *devfreq); >>>>>>>>>>>> void devfreq_monitor_resume(struct devfreq *devfreq); >>>>>>>>>>>> diff --git a/drivers/devfreq/governor_simpleondemand.c >>>>>>>>>>>> b/drivers/devfreq/governor_simpleondemand.c >>>>>>>>>>>> index d57b82a2b570..ea287b57cbf3 100644 >>>>>>>>>>>> --- a/drivers/devfreq/governor_simpleondemand.c >>>>>>>>>>>> +++ b/drivers/devfreq/governor_simpleondemand.c >>>>>>>>>>>> @@ -89,8 +89,7 @@ static int devfreq_simple_ondemand_handler(struct >>>>>>>>>>>> devfreq *devfreq, >>>>>>>>>>>> { >>>>>>>>>>>> switch (event) { >>>>>>>>>>>> case DEVFREQ_GOV_START: >>>>>>>>>>>> - devfreq_monitor_start(devfreq); >>>>>>>>>>>> - break; >>>>>>>>>>>> + return devfreq_monitor_start(devfreq); >>>>>>>>>>>> case DEVFREQ_GOV_STOP: >>>>>>>>>>>> devfreq_monitor_stop(devfreq); >>>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> Need to handle the all points of devfreq_monitor_start() usage. >>>>>>>>>>> please check the tegra30-devfreq.c for this update. >>>>>>>>>>> >>>>>>>>>>> $ grep -rn "devfreq_monitor_start" drivers/ >>>>>>>>>>> drivers/devfreq/governor_simpleondemand.c:92: >>>>>>>>>>> devfreq_monitor_start(devfreq); >>>>>>>>>>> drivers/devfreq/tegra30-devfreq.c:744: >>>>>>>>>>> devfreq_monitor_start(devfreq); >>>>>>>>>>> ...... >>>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> -- >>>>>>>>>> Best Regards, >>>>>>>>>> Samsung Electronics >>>>>>>>>> Chanwoo Choi >>>>>>>>> >>>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> -- >>>>>>>> Best Regards, >>>>>>>> Chanwoo Choi >>>>>>>> Samsung Electronics >>>>>>> >>>>>>> >>>>>> >>>>>> >>>>>> -- >>>>>> Best Regards, >>>>>> Chanwoo Choi >>>>>> Samsung Electronics >>>> >>>> >>>> -- >>>> Best Regards, >>>> Samsung Electronics >>>> Chanwoo Choi >> >> > > -- Best Regards, Chanwoo Choi Samsung Electronics 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.5 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=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 94FC2C433DB for ; Thu, 18 Mar 2021 09:44:37 +0000 (UTC) Received: from desiato.infradead.org (desiato.infradead.org [90.155.92.199]) (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 F3C1464E04 for ; Thu, 18 Mar 2021 09:44:36 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org F3C1464E04 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+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=desiato.20200630; h=Sender:Content-Transfer-Encoding :Content-Type:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:References:In-Reply-To:MIME-Version:Date:Message-ID: Cc:To:From:Subject:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=UyBu2iKczmUBEjbkSPc8scIWhEe6nMh1vOvUFu5sD8c=; b=UYD9ZlXLpzvz8dogiV1n0a6aD 18ag7zgNCIhjRE1LJ9wGXDS1IlHQgFCeiezNXrIZP6VLjnWXGBySvjNCinENUUarnc3Sr/mjXwFDG K5DIKHvyL/ju4l5eOv9joPJ72NoPUG/aQXa/MjcG6TotX6kCCtl9LF6hEei0HNtcjwxuQKkrvrQuL 5uLwa+FVnAu+sQEeNoLdiOf4DqoAw1a9NOaUFvRjX4SUYmhbDHZNMJ4AIaLfJqo4lrATRQaO/Fm4r 3hGZzDdONjoLetIriBOEg6WaKs/mO/Y/18L8RbUqSXwibxMOVWpyZ7a0zx7yiwp8vmOmPNlImJkpv jKu4VBHfA==; Received: from localhost ([::1] helo=desiato.infradead.org) by desiato.infradead.org with esmtp (Exim 4.94 #2 (Red Hat Linux)) id 1lMpAu-004w3Y-Ew; Thu, 18 Mar 2021 09:42:40 +0000 Received: from mailout4.samsung.com ([203.254.224.34]) by desiato.infradead.org with esmtps (Exim 4.94 #2 (Red Hat Linux)) id 1lMpAo-004w35-8J for linux-arm-kernel@lists.infradead.org; Thu, 18 Mar 2021 09:42:37 +0000 Received: from epcas1p1.samsung.com (unknown [182.195.41.45]) by mailout4.samsung.com (KnoxPortal) with ESMTP id 20210318094229epoutp048d443ed04d89471e0c9867bf3c751775~tZoH7uHjL2048620486epoutp04V for ; Thu, 18 Mar 2021 09:42:29 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 mailout4.samsung.com 20210318094229epoutp048d443ed04d89471e0c9867bf3c751775~tZoH7uHjL2048620486epoutp04V DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1616060549; bh=FpnHDzjLsD0eou2f54DyEkrjl+YFeQwbawPVaFntxCI=; h=Subject:From:To:Cc:Date:In-Reply-To:References:From; b=YAXEZncP1genbpKi8zHiLwz0bCE3ddz0bAx2L0mFlv5/eKzBPDxMGJFIEzE3jirVS OU96Jd5hPF5M2UY0mnEyrF/vzMrWpolbluGg1VL1JlKczGownhSiaYLWvBp7fvzzCe KBQ5dCHNY06XCR7p559L8XNQ/jkAp750W8JNK3OU= Received: from epsnrtp1.localdomain (unknown [182.195.42.162]) by epcas1p3.samsung.com (KnoxPortal) with ESMTP id 20210318094229epcas1p3739da8958f547bcf34986a9575855c73~tZoHY2SEM1858418584epcas1p3D; Thu, 18 Mar 2021 09:42:29 +0000 (GMT) Received: from epsmges1p2.samsung.com (unknown [182.195.40.153]) by epsnrtp1.localdomain (Postfix) with ESMTP id 4F1MWQ5BC1z4x9Ps; Thu, 18 Mar 2021 09:42:26 +0000 (GMT) Received: from epcas1p4.samsung.com ( [182.195.41.48]) by epsmges1p2.samsung.com (Symantec Messaging Gateway) with SMTP id 34.AA.63458.08023506; Thu, 18 Mar 2021 18:42:24 +0900 (KST) Received: from epsmtrp2.samsung.com (unknown [182.195.40.14]) by epcas1p4.samsung.com (KnoxPortal) with ESMTPA id 20210318094223epcas1p43678e2bd346aaf0b8d4a3d2845e7622c~tZoCaVpbE2728027280epcas1p4t; Thu, 18 Mar 2021 09:42:23 +0000 (GMT) Received: from epsmgms1p2.samsung.com (unknown [182.195.42.42]) by epsmtrp2.samsung.com (KnoxPortal) with ESMTP id 20210318094223epsmtrp26d753b7fea75820ce81e4796b2e031de~tZoCZVN542253222532epsmtrp26; Thu, 18 Mar 2021 09:42:23 +0000 (GMT) X-AuditID: b6c32a36-6dfff7000000f7e2-71-605320806540 Received: from epsmtip2.samsung.com ( [182.195.34.31]) by epsmgms1p2.samsung.com (Symantec Messaging Gateway) with SMTP id 32.50.08745.F7023506; Thu, 18 Mar 2021 18:42:23 +0900 (KST) Received: from [10.113.221.102] (unknown [10.113.221.102]) by epsmtip2.samsung.com (KnoxPortal) with ESMTPA id 20210318094223epsmtip2688ecbdf2f0ea1a2876eb7010924183a~tZoCBo4wZ3024830248epsmtip2O; Thu, 18 Mar 2021 09:42:23 +0000 (GMT) Subject: Re: [PATCH 07/11] PM / devfreq: check get_dev_status before start monitor From: Chanwoo Choi To: Dong Aisheng , Chanwoo Choi Cc: Dong Aisheng , Linux PM , "moderated list:ARM/FREESCALE IMX / MXC ARM ARCHITECTURE" , Sascha Hauer , Shawn Guo , dl-linux-imx , open list , myungjoo.ham@samsung.com, kyungmin.park@samsung.com, Abel Vesa Organization: Samsung Electronics Message-ID: <4b5a0c61-2bab-8b00-621c-25f1244fee92@samsung.com> Date: Thu, 18 Mar 2021 18:59:30 +0900 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:59.0) Gecko/20100101 Thunderbird/59.0 MIME-Version: 1.0 In-Reply-To: <0e518145-5cae-63f1-c32f-e6207fdeae54@samsung.com> Content-Language: en-US X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFtrJJsWRmVeSWpSXmKPExsWy7bCmgW6DQnCCwZ9vshbLLh1ltPgydRez xbOj2hZ/N09ns1g1dSeLxdmmN+wWmx5fY7Xo+rWS2eLyrjlsFp97jzBa3G5cwWbxYou4A4/H zll32T02repk89i8pN5j47sdTB79fw08+rasYvT4vEkugD0q2yYjNTEltUghNS85PyUzL91W yTs43jne1MzAUNfQ0sJcSSEvMTfVVsnFJ0DXLTMH6EolhbLEnFKgUEBicbGSvp1NUX5pSapC Rn5xia1SakFKToFlgV5xYm5xaV66XnJ+rpWhgYGRKVBhQnbGzCfrWQp6/Ct+TpnG1sC4waGL kZNDQsBE4tKhl+xdjFwcQgI7GCW27V7GBOF8YpR42bqDEcL5zChx9fQ0ZpiWppV7oBK7GCVO TZ0M1fKeUWLGny8sIFXCAiESk0//BetgE9CS2P/iBhuILSLgIXFp+hQ2kAZmgYXMEp/3PAJr 4BdQlLj64zEjiM0rYCex6dpzJhCbRUBVYs6BtWDNogJhEie3tUDVCEqcnPkErJdTwF7i28WP YHFmAXGJW0/mM0HY8hLNW2czgyyTEDjBIXGqbxUjxA8uEtf3/mOCsIUlXh3fwg5hS0l8freX DcKullh58ggbRHMHo8SW/RdYIRLGEvuXgvzMAbRBU2L9Ln2IsKLEzt9zoY7gk3j3tYcVpERC gFeio00IokRZ4vKDu1BrJSUWt3eyTWBUmoXknVlIXpiF5IVZCMsWMLKsYhRLLSjOTU8tNiww Qo7vTYzgNKxltoNx0tsPeocYmTgYDzFKcDArifCa5gUkCPGmJFZWpRblxxeV5qQWH2I0BQbw RGYp0eR8YCbIK4k3NDUyNja2MDE0MzU0VBLnTTR4EC8kkJ5YkpqdmlqQWgTTx8TBKdXANPvm hdkzt8R1PfuY90/F6d5HQYdpk9kStWfMsckON3x7W3tFDkMi5zmTjqh/QZ1fs/7GbD7arFTd z7XGz65pnaZXzCbRtXkc24uCHxr42Wkk6JyIYOPmvL0hSyIsNH9v3ruX8x2uGzzxjVzxx5gr 0eTE8fPhgQ29HoGbAied+Btw1qv2WMAsjqC78W9MnH4HlJgdm2AoX+t9fr9B/RIr1nSny5zt a/baipq/WXfq1fEfHRxTjH5X/5nzsK10cbdEpMEC7zVSehd6DufJFR6ozX3O8dLwccuFs/HS qX0ZwltyX/Ctb/RsDRaq9/lhL35ek7mbSy3UMnOKowDXzKvs75YsWL/g7+VUhQlZiixKLMUZ iYZazEXFiQD5bmVVTAQAAA== X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFlrMIsWRmVeSWpSXmKPExsWy7bCSvG69QnCCwaNDGhbLLh1ltPgydRez xbOj2hZ/N09ns1g1dSeLxdmmN+wWmx5fY7Xo+rWS2eLyrjlsFp97jzBa3G5cwWbxYou4A4/H zll32T02repk89i8pN5j47sdTB79fw08+rasYvT4vEkugD2KyyYlNSezLLVI3y6BK2Pmk/Us BT3+FT+nTGNrYNzg0MXIySEhYCLRtHIPYxcjF4eQwA5GiQcnbjFDJCQlpl08CmRzANnCEocP F0PUvGWUWPvoFQtIjbBAiMTk03/B6tkEtCT2v7jBBmKLCHhIXJo+hQ2kgVlgIbPEwr0rmCG6 37FJ3GqfwAhSxS+gKHH1x2Mwm1fATmLTtedMIDaLgKrEnANrwSaJCoRJ7FzymAmiRlDi5Mwn YJs5Bewlvl38CNbLLKAu8WfeJWYIW1zi1pP5TBC2vETz1tnMExiFZyFpn4WkZRaSlllIWhYw sqxilEwtKM5Nzy02LDDKSy3XK07MLS7NS9dLzs/dxAiORy2tHYx7Vn3QO8TIxMF4iFGCg1lJ hNc0LyBBiDclsbIqtSg/vqg0J7X4EKM0B4uSOO+FrpPxQgLpiSWp2ampBalFMFkmDk6pBqbo yJvzRffq+F7KntHWYRLySoTJW/Ck4ruuKwtYma9UfWVqmMasqJrpaSj0t+7i/D/b27/+PmRk os47v+6q4dWAYydWF8e7sXBaNHXeSTmfYKCeX5o3wcDUUlH4lcpRm2SFKywb17TOX+vi/qD6 qdW2jpQdMx836v5Py/TY3eS48mXQ+UeHF8w4FGzJWL7ImaNSXlxJMSag7Y7mJqtjVilCjtK3 lfa8WPZTrudukY3g6iNMb4tufox2Zd40R23D3QccM37JBX40fVIsq3aV7VG6wISzLyT3bFbW Utqgwrv2e/dTXsMzJ40uG69uysiL0WtmWHSWLXBl08bvO7U9mOxynkT5TqwTXZl1IGzZFiWW 4oxEQy3mouJEAJxulqM2AwAA X-CMS-MailID: 20210318094223epcas1p43678e2bd346aaf0b8d4a3d2845e7622c X-Msg-Generator: CA X-Sendblock-Type: SVC_REQ_APPROVE CMS-TYPE: 101P DLP-Filter: Pass X-CFilter-Loop: Reflected X-CMS-RootMailID: 20210310025703epcas1p10fdb324cc7ce1accfdc8f66315e8a93e References: <1615294733-22761-1-git-send-email-aisheng.dong@nxp.com> <1615294733-22761-8-git-send-email-aisheng.dong@nxp.com> <31be2267-8988-f162-f5a6-6e6389bbf1fb@samsung.com> <0e518145-5cae-63f1-c32f-e6207fdeae54@samsung.com> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20210318_094235_084313_CB91A31C X-CRM114-Status: GOOD ( 40.02 ) 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 T24gMy8xOC8yMSA2OjU0IFBNLCBDaGFud29vIENob2kgd3JvdGU6Cj4gT24gMy8xOC8yMSA1OjAz IFBNLCBEb25nIEFpc2hlbmcgd3JvdGU6Cj4+IEhpIENoYW53b28sCj4+Cj4+IE9uIFNhdCwgTWFy IDEzLCAyMDIxIGF0IDI6NDUgUE0gRG9uZyBBaXNoZW5nIDxkb25nYXM4NkBnbWFpbC5jb20+IHdy b3RlOgo+Pj4KPj4+IE9uIFNhdCwgTWFyIDEzLCAyMDIxIGF0IDEyOjA5IEFNIENoYW53b28gQ2hv aSA8Y3djaG9pMDBAZ21haWwuY29tPiB3cm90ZToKPj4+Pgo+Pj4+IE9uIDIxLiAzLiAxMi4g7Jik 7ZuEIDc6NTcsIERvbmcgQWlzaGVuZyB3cm90ZToKPj4+Pj4gT24gVGh1LCBNYXIgMTEsIDIwMjEg YXQgMjo1NCBQTSBDaGFud29vIENob2kgPGN3MDAuY2hvaUBzYW1zdW5nLmNvbT4gd3JvdGU6Cj4+ Pj4+Pgo+Pj4+Pj4gT24gMy8xMC8yMSAxOjU2IFBNLCBEb25nIEFpc2hlbmcgd3JvdGU6Cj4+Pj4+ Pj4gT24gV2VkLCBNYXIgMTAsIDIwMjEgYXQgMTE6MDggQU0gQ2hhbndvbyBDaG9pIDxjdzAwLmNo b2lAc2Ftc3VuZy5jb20+IHdyb3RlOgo+Pj4+Pj4+Pgo+Pj4+Pj4+PiBPbiAzLzEwLzIxIDExOjU2 IEFNLCBEb25nIEFpc2hlbmcgd3JvdGU6Cj4+Pj4+Pj4+PiBPbiBXZWQsIE1hciAxMCwgMjAyMSBh dCAxMjoxMiBBTSBDaGFud29vIENob2kgPGN3Y2hvaTAwQGdtYWlsLmNvbT4gd3JvdGU6Cj4+Pj4+ Pj4+Pj4KPj4+Pj4+Pj4+PiBPbiAyMS4gMy4gMTAuIOyYpOyghCAxMjo1OCwgQ2hhbndvbyBDaG9p IHdyb3RlOgo+Pj4+Pj4+Pj4+PiBPbiAyMS4gMy4gOS4g7Jik7ZuEIDk6NTgsIERvbmcgQWlzaGVu ZyB3cm90ZToKPj4+Pj4+Pj4+Pj4+IFRoZSBkZXZmcmVxIG1vbml0b3IgZGVwZW5kcyBvbiB0aGUg ZGV2aWNlIHRvIHByb3ZpZGUgbG9hZCBpbmZvcm1hdGlvbgo+Pj4+Pj4+Pj4+Pj4gYnkgLmdldF9k ZXZfc3RhdHVzKCkgdG8gY2FsY3VsYXRlIHRoZSBuZXh0IHRhcmdldCBmcmVxLgo+Pj4+Pj4+Pj4+ Pj4KPj4+Pj4+Pj4+Pj4+IEFuZCB0aGlzIHdpbGwgY2F1c2UgY2hhbmdpbmcgZ292ZXJub3IgdG8g c2ltcGxlIG9uZGVtYW5kIGZhaWwKPj4+Pj4+Pj4+Pj4+IGlmIGRldmljZSBjYW4ndCBzdXBwb3J0 Lgo+Pj4+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+Pj4+IFNpZ25lZC1vZmYtYnk6IERvbmcgQWlzaGVuZyA8 YWlzaGVuZy5kb25nQG54cC5jb20+Cj4+Pj4+Pj4+Pj4+PiAtLS0KPj4+Pj4+Pj4+Pj4+ICAgIGRy aXZlcnMvZGV2ZnJlcS9kZXZmcmVxLmMgICAgICAgICAgICAgICAgIHwgMTAgKysrKysrKy0tLQo+ Pj4+Pj4+Pj4+Pj4gICAgZHJpdmVycy9kZXZmcmVxL2dvdmVybm9yLmggICAgICAgICAgICAgICAg fCAgMiArLQo+Pj4+Pj4+Pj4+Pj4gICAgZHJpdmVycy9kZXZmcmVxL2dvdmVybm9yX3NpbXBsZW9u ZGVtYW5kLmMgfCAgMyArLS0KPj4+Pj4+Pj4+Pj4+ICAgIDMgZmlsZXMgY2hhbmdlZCwgOSBpbnNl cnRpb25zKCspLCA2IGRlbGV0aW9ucygtKQo+Pj4+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+Pj4+IGRpZmYg LS1naXQgYS9kcml2ZXJzL2RldmZyZXEvZGV2ZnJlcS5jIGIvZHJpdmVycy9kZXZmcmVxL2RldmZy ZXEuYwo+Pj4+Pj4+Pj4+Pj4gaW5kZXggNzIzMWZlNjg2MmEyLi5kMTc4N2I2YzdkN2MgMTAwNjQ0 Cj4+Pj4+Pj4+Pj4+PiAtLS0gYS9kcml2ZXJzL2RldmZyZXEvZGV2ZnJlcS5jCj4+Pj4+Pj4+Pj4+ PiArKysgYi9kcml2ZXJzL2RldmZyZXEvZGV2ZnJlcS5jCj4+Pj4+Pj4+Pj4+PiBAQCAtNDgyLDEw ICs0ODIsMTMgQEAgc3RhdGljIHZvaWQgZGV2ZnJlcV9tb25pdG9yKHN0cnVjdCB3b3JrX3N0cnVj dAo+Pj4+Pj4+Pj4+Pj4gKndvcmspCj4+Pj4+Pj4+Pj4+PiAgICAgKiB0byBiZSBjYWxsZWQgZnJv bSBnb3Zlcm5vciBpbiByZXNwb25zZSB0byBERVZGUkVRX0dPVl9TVEFSVAo+Pj4+Pj4+Pj4+Pj4g ICAgICogZXZlbnQgd2hlbiBkZXZpY2UgaXMgYWRkZWQgdG8gZGV2ZnJlcSBmcmFtZXdvcmsuCj4+ Pj4+Pj4+Pj4+PiAgICAgKi8KPj4+Pj4+Pj4+Pj4+IC12b2lkIGRldmZyZXFfbW9uaXRvcl9zdGFy dChzdHJ1Y3QgZGV2ZnJlcSAqZGV2ZnJlcSkKPj4+Pj4+Pj4+Pj4+ICtpbnQgZGV2ZnJlcV9tb25p dG9yX3N0YXJ0KHN0cnVjdCBkZXZmcmVxICpkZXZmcmVxKQo+Pj4+Pj4+Pj4+Pj4gICAgewo+Pj4+ Pj4+Pj4+Pj4gICAgICAgIGlmIChJU19TVVBQT1JURURfRkxBRyhkZXZmcmVxLT5nb3Zlcm5vci0+ ZmxhZ3MsIElSUV9EUklWRU4pKQo+Pj4+Pj4+Pj4+Pj4gLSAgICAgICAgcmV0dXJuOwo+Pj4+Pj4+ Pj4+Pj4gKyAgICAgICAgcmV0dXJuIDA7Cj4+Pj4+Pj4+Pj4+PiArCj4+Pj4+Pj4+Pj4+PiArICAg IGlmICghZGV2ZnJlcS0+cHJvZmlsZS0+Z2V0X2Rldl9zdGF0dXMpCj4+Pj4+Pj4+Pj4+PiArICAg ICAgICByZXR1cm4gLUVJTlZBTDsKPj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4+IEFnYWluLCBJIHRoaW5r IHRoYXQgZ2V0X2Rldl9zdGF0dXMgaXMgbm90IHVzZWQgZm9yIGFsbCBnb3Zlcm5vcnMuCj4+Pj4+ Pj4+Pj4gU28gdGhhdCBpdCBjYXVzZSB0aGUgZ292ZXJub3Igc3RhcnQgZmFpbC4gRG9uJ3QgY2hl Y2sgd2hldGhlcgo+Pj4+Pj4+Pj4+IC5nZXRfZGV2X3N0YXR1cyBpcyBOVUxMIG9yIG5vdC4KPj4+ Pj4+Pj4+Pgo+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+IEknbSBub3QgcXVpdGUgdW5kZXJzdGFuZCB5b3Vy IHBvaW50Lgo+Pj4+Pj4+Pj4gaXQgaXMgdXNlZCBieSBnb3Zlcm5vcl9zaW1wbGVvbmRlbWFuZC5j IGFuZCB0ZWdyYV9kZXZmcmVxX2dvdmVybm9yLgo+Pj4+Pj4+Pj4gZ2V0X3RhcmdldF9mcmVxIC0+ IGRldmZyZXFfdXBkYXRlX3N0YXRzIC0+IGdldF9kZXZfc3RhdHVzCj4+Pj4+Pj4+Cj4+Pj4+Pj4+ IFRoZSBkZXZmcmVxIGNhbiBhZGQgdGhlIG5ldyBnb3Zlcm5vciBieSBhbnlvbmUuCj4+Pj4+Pj4+ IFNvIHRoZXNlIGZ1bmN0aW9ucyBsaWtlIGRldmZyZXFfbW9uaXRvcl8qIGhhdmUgdG8gc3VwcG9y dAo+Pj4+Pj4+PiB0aGUgZ292ZXJub3JzIGFuZCBhbHNvIG11c3Qgc3VwcG9ydCB0aGUgZ292ZXJu b3IgdG8gYmUgYWRkZWQKPj4+Pj4+Pj4gaW4gdGhlIGZ1dHVyZS4KPj4+Pj4+Pgo+Pj4+Pj4+IFll cywgYnV0IGRldmZyZXFfbW9uaXRvcl8qIGlzIG9ubHkgdXNlZCBieSBwb2xsaW5nIG1vZGUsIHJp Z2h0Pwo+Pj4+Pj4+IFRoZSBnb3Zlcm5vciB1c2luZyBpdCBoYXMgdG8gaW1wbGVtZW50IGdldF9k ZXZfc3RhdHVzIHVubGVzcwo+Pj4+Pj4+IHRoZXJlJ3MgYW4gZXhjZXB0aW9uIGluIHRoZSBmdXR1 cmUuCj4+Pj4+Pj4KPj4+Pj4+PiBDdXJyZW50bHkgdGhpcyBwYXRjaCB3YW50cyB0byBhZGRyZXNz IHRoZSBpc3N1ZSB0aGF0IHVzZXIgY2FuIHN3aXRjaAo+Pj4+Pj4+IHRvIG9uZGVtYW5kIGdvdmVy bm9yIChwb2xsaW5nIG1vZGUpIGJ5IHN5c2ZzIGV2ZW4gZGV2aWNlcyBkb2VzCj4+Pj4+Pj4gbm90 IHN1cHBvcnQgaXQgKG5vIGdldF9kZXZfc3RhdHVzIGltcGxlbWVudGVkKS4KPj4+Pj4+Cj4+Pj4+ PiBBcyBJIGNvbW1lbnRlZCwgSSdsbCBmaXggdGhpcyBpc3N1ZS4gSWYgZGV2ZnJlcSBkcml2ZXIg ZG9lc24ndCBpbXBsZW1lbnQKPj4+Pj4+IHRoZSAuZ2V0X2Rldl9zdGF0dXMsIGRvbid0IHNob3cg aXQgdmlhIGF2YWlsYWJsZV9nb3Zlcm5vcnMuIEkgdGhpbmsgdGhhdAo+Pj4+Pj4gaXQgaXMgZnVu ZGFtZW50YWwgc29sdXRpb24gdG8gZml4IHRoaXMgaXNzdWUuCj4+Pj4+Cj4+Pj4+IFNvdW5kcyBn b29kCj4+Pj4+Cj4+Pj4+PiBTbyBvbiB0aGlzIHZlcnNpb24sCj4+Pj4+PiBkb24ndCBhZGQgdGhl IHRoaXMgY29uZGl0aW9uYWwgc3RhdGVtZW50IG9uIHRoaXMgZnVuY3Rpb24KPj4+Pj4+Cj4+Pj4+ Cj4+Pj4+IEFsbW9zdCBhbGwgdGhpcyBwYXRjaCBkaWQgaXMgYWRkaW5nIGEgY2hlY2tpbmcgZm9y IGdldF9kZXZfc3RhdHVzLgo+Pj4+PiBTbyBkbyB5b3UgbWVhbiBkcm9wIHRoaXMgcGF0Y2g/Cj4+ Pj4+IEkgd29uZGVyIGl0J3Mgc3RpbGwgYSBuZWNlc3NhcnkgY2hlY2tpbmcgdG8gZXhwbGljaXRs eSB0ZWxsIGRldmZyZXEgbW9uaXRvcgo+Pj4+PiB1c2VycyB0aGF0IGdldF9kZXZfc3RhdHVzIGlz IG5lZWRlZCBkdXJpbmcgZ292ZXJub3Igc3RhcnR1cC4KPj4+Pgo+Pj4+IEkgdGhpbmsgdGhhdCB0 aGUgaXQgaXMgZW5vdWdoIHRvIGNoZWNrIC5nZXRfZGV2X3N0YXR1cyBpbgo+Pj4+IGRldmZyZXFf dXBkYXRlX3N0YXRzLiBXZSBoYXZlIHRvIGNoZWNrIGl0IG9uIHdoZXJlIGl0IGlzIHVzZWQuCj4+ Pj4KPj4+Cj4+PiBJIHRoaW5rIHRoZSBkcmF3YmFjayBvZiBvbmx5IGNoZWNraW5nIC5nZXRfZGV2 X3N0YXR1cyBpbgo+Pj4gZGV2ZnJlcV91cGRhdGVfc3RhdHMgaXM6Cj4+PiAxLiBkZXZmcmVxIHdp bGwgc3RpbGwgcmVnaXN0ZXIgc3VjY2Vzc2Z1bGx5IGFuZCBvbmRlbWFuZCBnb3Zlcm5vciBzdGFy dHMgb2sKPj4+IDIuIG9uZGVtYW5kIGdvdmVybm9yIHdpbGwgc3RpbGwgYmUgc2hvd24gaW4gc3lz ZnMgd2hpY2ggaXMgc29tZXRoaW5nCj4+PiB5b3Ugd2FudCB0byBmaXgKPj4+IDMuIGRldmZyZXEg d2lsbCBlbmQgdXAgcHJpbnRpbmcgZW5kbGVzcyBlcnJvciBtZXNzYWdlcyBpbiBkZXZmcmVxX21v bml0b3Igd29ya2VyCj4+PiAgICAgImR2ZnMgZmFpbGVkIHdpdGggKCVkKSBlcnJvciIgYXMgdGhl IHBvc3NpYmxlIG1pc3NpbmcgLmdldF9kZXZfc3RhdHVzCj4gCj4gSSB0aGluayB0aGF0IGRldmZy ZXFfbW9uaXRvcl9zdGFydCBoYXZlIHRvIGhhbmRsZSBvbmx5IHdvcmsgaW5zdGFuY2UuCj4gVGhp cyBhcHByb2FjaCBpcyB0b28gY29uc2lkZXJpbmcgdGhlIGRlZXAgY2hlY2sgbGlzdC4KPiBJIHdh bnQgdG8gcmVzb2x2ZSB0aGlzIHBlcmlvZGljYWwgZXJyb3IgbG9nIHdpdGggZGlmZmVyZW50IHNv bHV0aW9uLgo+IAo+IEFjdHVhbGx5LCB3ZSBoYXZlIHRvIHJlamVjdCB0aGUgcmVnaXN0cmF0aW9u IG9mIGRldmZyZXEgZGV2aWNlCj4gd2hlbiBjYWxsaW5nIGRldmZyZXFfYWRkX2RldmljZSBpbnN0 ZWFkIG9mIGNoZWNraW5nIC5nZXRfZGV2X3N0YXR1cwo+IGluIGRldmZyZXFfbW9uaXRvcl9zdGFy dCgpLgoKCkknbGwgcmVqZWN0IHRoZSByZWdpc3RyYXRpb24gb2YgZGV2ZnJlcSBkZXZpY2UgaWYg dGhlIG1hbmRhdG9yeQpmdW5jdGlvbiBwb2ludGVyIG9mIHN0cnVjdCBkZXZmcmVxX2Rldl9wcm9m aWxlIGFyZSBub3QgaW5pdGlhbGl6ZWQuCi0gLmdldF9kZXZfc3RhdHVzCiAgIElmIHNvbWUgZ292 ZXJub3JzIGxpa2Ugc2ltcGxlX29uZGVtYW5kLCBoYXZlIHRvIGluaXRpYWxpemUgaXQuCiAgIFNv LCBJIG5lZWQgdG8gYWRkIHRoZSBuZXcgZmxhZyB0byBzcGVjaWZ5IHRoaXMgZmVhdHVyZS4KLSAu dGFyZ2V0IGlzIG1hbmRhdG9yeSBmb3IgYWxsIGRldmZyZXEgZGV2aWNlcy4gSSdsbCBjaGVjayBp dC4KCj4gCj4gCj4+Pgo+Pj4gU28gaSB3b25kZXIgaWYgeW91IGRvbid0IGxpa2UgY2hhbmdpbmcg dGhlIGNvbW1vbiBkZXZmcmVxX21vbml0b3Jfc3RhcnQgaW4gb3JkZXIKPj4+IHRvIG1ha2UgaXQg bG9vayBjb21tb24gZm9yIGFsbCBnb3Zlcm5vcnMsIHRoZW4gd2UgcHJvYmFibHkgc3RpbGwgbmVl ZAo+Pj4gdG8gZml4IGl0IGluCj4+PiBvbmRlbWFuZCBnb3Zlcm5vciBpbiBvcmRlciB0byBhdm9p ZCB0aGUgcG9zc2libGUgYWJvdmUgaXNzdWVzLgo+Pj4KPj4+IHN0YXRpYyBpbnQgZGV2ZnJlcV9z aW1wbGVfb25kZW1hbmRfaGFuZGxlcihzdHJ1Y3QgZGV2ZnJlcSAqZGV2ZnJlcSwKPj4+ICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IGV2ZW50LCB2b2lkICpkYXRh KQo+Pj4gewo+Pj4gICAgICAgICBzd2l0Y2ggKGV2ZW50KSB7Cj4+PiAgICAgICAgIGNhc2UgREVW RlJFUV9HT1ZfU1RBUlQ6Cj4+PiAgICAgICAgICAgICAgICAgaWYgKCFkZXZmcmVxLT5wcm9maWxl LT5nZXRfZGV2X3N0YXR1cykKPj4+ICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAtRUlO VkFMOwo+Pj4KPj4+ICAgICAgICAgICAgICAgICByZXR1cm4gZGV2ZnJlcV9tb25pdG9yX3N0YXJ0 KGRldmZyZXEpOwo+Pj4gLi4uCj4+PiB9Cj4+Pgo+Pj4gSG93IGRvIHlvdSB0aGluaz8KPj4KPj4g QW55IGZlZWRiYWNrPwo+Pgo+PiBJJ20gd2FpdGluZyBmb3IgeW91ciBjb25maXJtYXRpb24gd2hl dGhlciBkcm9wcGluZyB0aGlzIG9uZSwKPj4gdGhlbiBJIGNhbiByZS1zZW50IHRoZSBzZXJpZXMu Cj4+Cj4+IFJlZ2FyZHMKPj4gQWlzaGVuZwo+Pgo+Pj4KPj4+IFJlZ2FyZHMKPj4+IEFpc2hlbmcK Pj4+Cj4+Pgo+Pj4+Pgo+Pj4+Pj4gQW5kIG9uIG5leHQgdmVyc2lvbiwgcGxlYXNlIHVzZSB0aGUg Y2FwaXRhbCBsZXR0ZXIgZm9yIGZpcnN0IGNoYXJhY3Rlcgo+Pj4+Pj4gb24gcGF0Y2ggdGl0bGUg YXMgZm9sbG93aW5nOgo+Pj4+Pj4KPj4+Pj4+IC0gUE0gLyBkZXZmcmVxOiBDaGVjayBnZXRfZGV2 X3N0YXR1cyBiZWZvcmUgc3RhcnQgbW9uaXRvcgo+Pj4+Pj4KPj4+Pj4KPj4+Pj4gT2theSB0byBt ZS4KPj4+Pj4gVGhhbmtzIGZvciB0aGUgc3VnZ2VzdGlvbi4KPj4+Pj4KPj4+Pj4gUmVnYXJkcwo+ Pj4+PiBBaXNoZW5nCj4+Pj4+Cj4+Pj4+Pj4KPj4+Pj4+PiBSZWdhcmRzCj4+Pj4+Pj4gQWlzaGVu Zwo+Pj4+Pj4+Cj4+Pj4+Pj4+Cj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4gV2l0aG91dCBjaGVja2luZywg ZGV2aWNlIGNhbiBzd2l0Y2ggdG8gb25kZW1hbmQgZ292ZXJub3IgaWYgaXQgZG9lcyBub3Qgc3Vw cG9ydC4KPj4+Pj4+Pj4+Cj4+Pj4+Pj4+PiBBbSBpIG1pc3NlZCBzb21ldGhpbmc/Cj4+Pj4+Pj4+ Pgo+Pj4+Pj4+Pj4gUmVnYXJkcwo+Pj4+Pj4+Pj4gQWlzaGVuZwo+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+ Pj4+ICAgICAgICBzd2l0Y2ggKGRldmZyZXEtPnByb2ZpbGUtPnRpbWVyKSB7Cj4+Pj4+Pj4+Pj4+ PiAgICAgICAgY2FzZSBERVZGUkVRX1RJTUVSX0RFRkVSUkFCTEU6Cj4+Pj4+Pj4+Pj4+PiBAQCAt NDk1LDEyICs0OTgsMTMgQEAgdm9pZCBkZXZmcmVxX21vbml0b3Jfc3RhcnQoc3RydWN0IGRldmZy ZXEgKmRldmZyZXEpCj4+Pj4+Pj4+Pj4+PiAgICAgICAgICAgIElOSVRfREVMQVlFRF9XT1JLKCZk ZXZmcmVxLT53b3JrLCBkZXZmcmVxX21vbml0b3IpOwo+Pj4+Pj4+Pj4+Pj4gICAgICAgICAgICBi cmVhazsKPj4+Pj4+Pj4+Pj4+ICAgICAgICBkZWZhdWx0Ogo+Pj4+Pj4+Pj4+Pj4gLSAgICAgICAg cmV0dXJuOwo+Pj4+Pj4+Pj4+Pj4gKyAgICAgICAgcmV0dXJuIC1FSU5WQUw7Cj4+Pj4+Pj4+Pj4+ PiAgICAgICAgfQo+Pj4+Pj4+Pj4+Pj4gICAgICAgIGlmIChkZXZmcmVxLT5wcm9maWxlLT5wb2xs aW5nX21zKQo+Pj4+Pj4+Pj4+Pj4gICAgICAgICAgICBxdWV1ZV9kZWxheWVkX3dvcmsoZGV2ZnJl cV93cSwgJmRldmZyZXEtPndvcmssCj4+Pj4+Pj4+Pj4+PiAgICAgICAgICAgICAgICBtc2Vjc190 b19qaWZmaWVzKGRldmZyZXEtPnByb2ZpbGUtPnBvbGxpbmdfbXMpKTsKPj4+Pj4+Pj4+Pj4+ICsg ICAgcmV0dXJuIDA7Cj4+Pj4+Pj4+Pj4+PiAgICB9Cj4+Pj4+Pj4+Pj4+PiAgICBFWFBPUlRfU1lN Qk9MKGRldmZyZXFfbW9uaXRvcl9zdGFydCk7Cj4+Pj4+Pj4+Pj4+PiBkaWZmIC0tZ2l0IGEvZHJp dmVycy9kZXZmcmVxL2dvdmVybm9yLmggYi9kcml2ZXJzL2RldmZyZXEvZ292ZXJub3IuaAo+Pj4+ Pj4+Pj4+Pj4gaW5kZXggNWNlZTNmNjRmZTJiLi4zMWFmNmQwNzJhMTAgMTAwNjQ0Cj4+Pj4+Pj4+ Pj4+PiAtLS0gYS9kcml2ZXJzL2RldmZyZXEvZ292ZXJub3IuaAo+Pj4+Pj4+Pj4+Pj4gKysrIGIv ZHJpdmVycy9kZXZmcmVxL2dvdmVybm9yLmgKPj4+Pj4+Pj4+Pj4+IEBAIC03NSw3ICs3NSw3IEBA IHN0cnVjdCBkZXZmcmVxX2dvdmVybm9yIHsKPj4+Pj4+Pj4+Pj4+ICAgICAgICAgICAgICAgICAg ICB1bnNpZ25lZCBpbnQgZXZlbnQsIHZvaWQgKmRhdGEpOwo+Pj4+Pj4+Pj4+Pj4gICAgfTsKPj4+ Pj4+Pj4+Pj4+IC12b2lkIGRldmZyZXFfbW9uaXRvcl9zdGFydChzdHJ1Y3QgZGV2ZnJlcSAqZGV2 ZnJlcSk7Cj4+Pj4+Pj4+Pj4+PiAraW50IGRldmZyZXFfbW9uaXRvcl9zdGFydChzdHJ1Y3QgZGV2 ZnJlcSAqZGV2ZnJlcSk7Cj4+Pj4+Pj4+Pj4+PiAgICB2b2lkIGRldmZyZXFfbW9uaXRvcl9zdG9w KHN0cnVjdCBkZXZmcmVxICpkZXZmcmVxKTsKPj4+Pj4+Pj4+Pj4+ICAgIHZvaWQgZGV2ZnJlcV9t b25pdG9yX3N1c3BlbmQoc3RydWN0IGRldmZyZXEgKmRldmZyZXEpOwo+Pj4+Pj4+Pj4+Pj4gICAg dm9pZCBkZXZmcmVxX21vbml0b3JfcmVzdW1lKHN0cnVjdCBkZXZmcmVxICpkZXZmcmVxKTsKPj4+ Pj4+Pj4+Pj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2RldmZyZXEvZ292ZXJub3Jfc2ltcGxlb25k ZW1hbmQuYwo+Pj4+Pj4+Pj4+Pj4gYi9kcml2ZXJzL2RldmZyZXEvZ292ZXJub3Jfc2ltcGxlb25k ZW1hbmQuYwo+Pj4+Pj4+Pj4+Pj4gaW5kZXggZDU3YjgyYTJiNTcwLi5lYTI4N2I1N2NiZjMgMTAw NjQ0Cj4+Pj4+Pj4+Pj4+PiAtLS0gYS9kcml2ZXJzL2RldmZyZXEvZ292ZXJub3Jfc2ltcGxlb25k ZW1hbmQuYwo+Pj4+Pj4+Pj4+Pj4gKysrIGIvZHJpdmVycy9kZXZmcmVxL2dvdmVybm9yX3NpbXBs ZW9uZGVtYW5kLmMKPj4+Pj4+Pj4+Pj4+IEBAIC04OSw4ICs4OSw3IEBAIHN0YXRpYyBpbnQgZGV2 ZnJlcV9zaW1wbGVfb25kZW1hbmRfaGFuZGxlcihzdHJ1Y3QKPj4+Pj4+Pj4+Pj4+IGRldmZyZXEg KmRldmZyZXEsCj4+Pj4+Pj4+Pj4+PiAgICB7Cj4+Pj4+Pj4+Pj4+PiAgICAgICAgc3dpdGNoIChl dmVudCkgewo+Pj4+Pj4+Pj4+Pj4gICAgICAgIGNhc2UgREVWRlJFUV9HT1ZfU1RBUlQ6Cj4+Pj4+ Pj4+Pj4+PiAtICAgICAgICBkZXZmcmVxX21vbml0b3Jfc3RhcnQoZGV2ZnJlcSk7Cj4+Pj4+Pj4+ Pj4+PiAtICAgICAgICBicmVhazsKPj4+Pj4+Pj4+Pj4+ICsgICAgICAgIHJldHVybiBkZXZmcmVx X21vbml0b3Jfc3RhcnQoZGV2ZnJlcSk7Cj4+Pj4+Pj4+Pj4+PiAgICAgICAgY2FzZSBERVZGUkVR X0dPVl9TVE9QOgo+Pj4+Pj4+Pj4+Pj4gICAgICAgICAgICBkZXZmcmVxX21vbml0b3Jfc3RvcChk ZXZmcmVxKTsKPj4+Pj4+Pj4+Pj4+Cj4+Pj4+Pj4+Pj4+Cj4+Pj4+Pj4+Pj4+IE5lZWQgdG8gaGFu ZGxlIHRoZSBhbGwgcG9pbnRzIG9mIGRldmZyZXFfbW9uaXRvcl9zdGFydCgpIHVzYWdlLgo+Pj4+ Pj4+Pj4+PiBwbGVhc2UgY2hlY2sgdGhlIHRlZ3JhMzAtZGV2ZnJlcS5jIGZvciB0aGlzIHVwZGF0 ZS4KPj4+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+Pj4gJCBncmVwIC1ybiAiZGV2ZnJlcV9tb25pdG9yX3N0 YXJ0IiBkcml2ZXJzLwo+Pj4+Pj4+Pj4+PiBkcml2ZXJzL2RldmZyZXEvZ292ZXJub3Jfc2ltcGxl b25kZW1hbmQuYzo5MjoKPj4+Pj4+Pj4+Pj4gZGV2ZnJlcV9tb25pdG9yX3N0YXJ0KGRldmZyZXEp Owo+Pj4+Pj4+Pj4+PiBkcml2ZXJzL2RldmZyZXEvdGVncmEzMC1kZXZmcmVxLmM6NzQ0Ogo+Pj4+ Pj4+Pj4+PiBkZXZmcmVxX21vbml0b3Jfc3RhcnQoZGV2ZnJlcSk7Cj4+Pj4+Pj4+Pj4+IC4uLi4u Lgo+Pj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4+Cj4+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+PiAtLQo+Pj4+Pj4+ Pj4+IEJlc3QgUmVnYXJkcywKPj4+Pj4+Pj4+PiBTYW1zdW5nIEVsZWN0cm9uaWNzCj4+Pj4+Pj4+ Pj4gQ2hhbndvbyBDaG9pCj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4KPj4+Pj4+Pj4KPj4+Pj4+Pj4KPj4+ Pj4+Pj4gLS0KPj4+Pj4+Pj4gQmVzdCBSZWdhcmRzLAo+Pj4+Pj4+PiBDaGFud29vIENob2kKPj4+ Pj4+Pj4gU2Ftc3VuZyBFbGVjdHJvbmljcwo+Pj4+Pj4+Cj4+Pj4+Pj4KPj4+Pj4+Cj4+Pj4+Pgo+ Pj4+Pj4gLS0KPj4+Pj4+IEJlc3QgUmVnYXJkcywKPj4+Pj4+IENoYW53b28gQ2hvaQo+Pj4+Pj4g U2Ftc3VuZyBFbGVjdHJvbmljcwo+Pj4+Cj4+Pj4KPj4+PiAtLQo+Pj4+IEJlc3QgUmVnYXJkcywK Pj4+PiBTYW1zdW5nIEVsZWN0cm9uaWNzCj4+Pj4gQ2hhbndvbyBDaG9pCj4+Cj4+Cj4gCj4gCgoK LS0gCkJlc3QgUmVnYXJkcywKQ2hhbndvbyBDaG9pClNhbXN1bmcgRWxlY3Ryb25pY3MKCl9fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmxpbnV4LWFybS1rZXJu ZWwgbWFpbGluZyBsaXN0CmxpbnV4LWFybS1rZXJuZWxAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRw Oi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LWFybS1rZXJuZWwK