Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S934510AbcKXIQg (ORCPT ); Thu, 24 Nov 2016 03:16:36 -0500 Received: from mailout3.samsung.com ([203.254.224.33]:38230 "EHLO mailout3.samsung.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S933782AbcKXIQe (ORCPT ); Thu, 24 Nov 2016 03:16:34 -0500 MIME-version: 1.0 Content-type: text/plain; charset=utf-8 X-AuditID: cbfee61b-f796f6d000004092-7f-5836a1e07e91 Content-transfer-encoding: 8BIT Message-id: <5836A1E0.1070707@samsung.com> Date: Thu, 24 Nov 2016 17:16:32 +0900 From: Chanwoo Choi Organization: Samsung Electronics User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.6.0 To: hl , myungjoo.ham@samsung.com Cc: "linux-pm@vger.kernel.org" , "dbasehore@chromium.org" , "dianders@chromium.org" , "linux-kernel@vger.kernel.org" , "linux-rockchip@lists.infradead.org" , "linux-arm-kernel@lists.infradead.org" , Tobias Jakobi Subject: Re: [PATCH v1 & v6 1/2] PM/devfreq: add suspend frequency support References: <20161124061416epcms1p44a0152bca14312f1229cab835ea0297f@epcms1p4> <58368C91.8030502@rock-chips.com> <5836927B.9010205@samsung.com> <5836980F.6050006@rock-chips.com> In-reply-to: <5836980F.6050006@rock-chips.com> X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFjrBIsWRmVeSWpSXmKPExsVy+t9jAd0HC80iDG5OU7N4tXkPm8XZZQfZ LH5sOMVssenxNVaLy7vmsFl87j3CaPHpwX9mi9uNK9gs2lZ/YHXg9JjdcJHFY/OSeo9/x9g9 /s7az+LRt2UVo8fnTXIBbFFuNhmpiSmpRQqpecn5KZl56bZKoSFuuhZKCnmJuam2ShG6viFB SgpliTmlQJ6RARpwcA5wD1bSt0twy7j4ZQpbwUrZip4Na5kaGB+IdzFycEgImEh83qjfxcgJ ZIpJXLi3nq2LkYtDSGApo8TXnf1MIAleAUGJH5PvsYDUMwvISxy5lA1hqktMmZILUf6AUeLb h0fsIHFeAS2Js3PSQDpZBFQlpp3vZwax2YDC+1/cYAOx+QUUJa7+eMwIUi4qECHRfaISJCwC dMyGk/OZQUYyC2xklrjS8x2sV1jAS2LC7JNMELv+MUrcuzidCaSZU0BP4spkjwmMgrOQHDoL 4dBZCIcuYGRexSiRWpBcUJyUnmuUl1quV5yYW1yal66XnJ+7iREci8+kdzAe3uV+iFGAg1GJ h7fDxCxCiDWxrLgy9xCjBAezkgjvp/lAId6UxMqq1KL8+KLSnNTiQ4ymQK9OZJYSTc4Hpom8 knhDE3MTc2MDC3NLSxMjJXHextnPwoUE0hNLUrNTUwtSi2D6mDg4pRoYiyqVzmle2ns2QOfd LtvAg60/Euqcm6axeaTxe2tqaKd2TczKSIlzOPc6xPL7g67Gxvm7dHqezyw7rmz2KH3+Wb1f qo1Mzwr+dSz+/Gjmqd18Tj5X5z5vtU++OPXe32vOHO5dpsGXZng/nfqRedZk3W5v+wivV7n9 EoUV+RO+zNbvihWYqR6gxFKckWioxVxUnAgAJSsw5tsCAAA= X-MTR: 20000000000000000@CPGS Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 3638 Lines: 113 Hi Lin, On 2016년 11월 24일 16:34, hl wrote: > Hi Chanwoo Choi, > > I think the dev_pm_opp_get_suspend_opp() have implement most of > the funtion, all we need is just define the node in dts, like following: > > &dmc_opp_table { > opp06 { > opp-suspend; > }; > }; Two approaches use the 'opp-suspend' property. I think that the method to support suspend-opp have to guarantee following conditions: - Support the all of devfreq's governors. - Devfreq framework have the responsibility to change the frequency/voltage for suspend-opp. If we uses the new devfreq_suspend(), each devfreq device don't care how to support the suspend-opp. Just the developer of each devfreq device need to add 'opp-suspend' propet to OPP entry in DT file. Best Regards, Chanwoo Choi > > so i think my way semm more simple. > > On 2016年11月24日 15:10, Chanwoo Choi wrote: >> + Tobias Jakobi, >> >> Hi Lin, >> >> We need to discuss how to support the suspend-opp of devfreq device. >> Now, there are two patch thread for suspend-opp of devfreq. >> >> The Lin's approach modify the devfreq_suspend_device() to support suspend-opp. >> The Tobias's approach[1] add new devfreq_suspend() and then call it on dpm_suspend() >> when entering the suspend state. >> >> [1] [RFC 0/4] PM / devfreq: draft for OPP suspend impl >> - https://patchwork.kernel.org/patch/9443323/ >> - https://patchwork.kernel.org/patch/9443325/ >> - https://patchwork.kernel.org/patch/9443329/ >> - https://patchwork.kernel.org/patch/9443331/ >> >> I think we need to discuss it together. >> >> Regards, >> Chanwoo Choi >> >> On 2016년 11월 24일 15:45, hl wrote: >>> Hi MyungJoo Ham, >>> >>> On 2016年11月24日 14:14, MyungJoo Ham wrote: >>>> On Thu, Nov 24, 2016 at 11:18 AM, hl wrote: >>>>> Hi MyungJoo Ham, >>>> [] >>>>>> We still need to sync the all status even i call target() in >>>>>> devfreq_suspend/resume_device >>>>>> directly, so still need update_devfreq() other setp except >>>>>> devfreq->governor->get_target_freq(devfreq, &freq); >>>>> And i think it better to be governor behaviors, for userspace they may not >>>>> want to change >>>>> the suspend frequency like other governor, the frequency should decide by >>>>> the user, if they >>>>> want this function, they should like other governor to rigister a >>>>> devfreq_monitor_suspend(). >>>>> What do you think about my rev6 patch? >>>> If I understand the intention correctly, this is for the stability of >>>> the device due to the behavior or bootloader/SoC-initializer, which >>>> has nothing to do with governors. >>>> >>>> Even if users are using userspace, as long as they set the custom >>>> frequencies lower than the default, they have the possibility of >>>> being unstable as ondemand is going to have. >>>> >>>> >>>> To reuse the update_devfreq() code, you may do something like: >>>> >>>> static int _update_freq(struct devfreq *devfreq, bool is_suspending) >>>> { >>>> /* original contents of update_freq with if statement with is_suspending wrapping get_target_freq */ >>>> } >>>> int update_freq(struct devfreq *devfreq) >>>> { >>>> return _update_freq(devfreq, false); >>>> } >>>> >>>> >>>> There should be other good non-invasive methods that are not governoe-specific as well. >>>> >>> Thanks for your suggestion, i will update the new version soon. >>>> Cheers, >>>> MyungJoo >>>> >>>> >>>> >>>> >>>> _______________________________________________ >>>> Linux-rockchip mailing list >>>> Linux-rockchip@lists.infradead.org >>>> http://lists.infradead.org/mailman/listinfo/linux-rockchip >>> -- >>> Lin Huang >>> >> >> >> >