From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756896AbdJKDJx (ORCPT ); Tue, 10 Oct 2017 23:09:53 -0400 Received: from mailout3.samsung.com ([203.254.224.33]:39094 "EHLO mailout3.samsung.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754285AbdJKDJt (ORCPT ); Tue, 10 Oct 2017 23:09:49 -0400 X-AuditID: b6c32a35-8adff70000001157-d6-59dd8b7ac913 From: Chanwoo Choi To: myungjoo.ham@samsung.com, kyungmin.park@samsung.com, cw00.choi@samsung.com Cc: rafael.j.wysocki@intel.com, chanwoo@kernel.org, inki.dae@samsung.com, linux-kernel@vger.kernel.org, linux-pm@vger.kernel.org Subject: [PATCH v3 0/8] PM / devfreq: Use OPP interface to handle the frequency Date: Wed, 11 Oct 2017 12:09:16 +0900 Message-id: <1507691364-3899-1-git-send-email-cw00.choi@samsung.com> X-Mailer: git-send-email 1.8.0 X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFprLKsWRmVeSWpSXmKPExsWy7bCmvm5V991Ig/bDWhYTb1xhsbj+5Tmr xaT7E1gszja9Ybe4vGsOm8Xn3iOMFrcbV7BZPF7xlt2Bw2PxnpdMHptWdbJ59G1ZxejxeZNc AEtUqk1GamJKapFCal5yfkpmXrqtkndwvHO8qZmBoa6hpYW5kkJeYm6qrZKLT4CuW2YO0BlK CmWJOaVAoYDE4mIlfTubovzSklSFjPziElulaENDIz1DA3M9IyMjPRPjWCsjU6CShNSMO+e6 GQsuyFc0LF3H3MA4V7KLkZNDQsBEYl77E6YuRi4OIYEdjBI/J3ewQDjfGSWO/PzGAlO1YeUm qMRuRomD7/ZAOT8YJXpa5rKDVLEJaEnsf3GDDcQWEQiQ6Fy7Cmwus0ATo8T+ezfAioQFAiXW LjjI2MXIwcEioCrxZFIoSJhXwEXi7trjUNvkJD7secQO0ish8JVVYl7rCUaIhIvEj23XmSFs YYlXx7ewg8yREJCWuHTUFqK+nVFi85x7LBBOB6PE/ZWNrBANxhKnuhqZQGxmAT6Jd197WCGa eSU62oQgSjwkVv9cwwRhO0osPbIfbK+QQKzE8UPfWCcwSi5gZFjFKJZaUJybnlpsWGCoV5yY W1yal66XnJ+7iRGcNLRMdzBOOedziFGAg1GJh1fg+p1IIdbEsuLK3EOMEhzMSiK8FoV3I4V4 UxIrq1KL8uOLSnNSiw8xmgKDYyKzlGhyPjCh5ZXEG5pYGpiYGQETgKWhoZI4r+j6axFCAumJ JanZqakFqUUwfUwcnFINjNJlvo2Jkk8d60O7zZo3nI04vTudzVb45S9fS6+J3UXnGKP+H6+8 rXF+H29i/FkLDfsJ+Zx3v98Vqbj1WP3ZvSdqk/ZkPJ3gV/DeKY5x9+7uFwlzklIC7pyT6FER T+qbdiW+Y/K3dW8W3cw725YsmBgx5W/C5uqd4cZTOo4tn7sm/M2P0DXl3UosxRmJhlrMRcWJ AMFE9ikwAwAA X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrMJMWRmVeSWpSXmKPExsVy+t9jAd2q7ruRBvf3i1tMvHGFxeL6l+es FpPuT2CxONv0ht3i8q45bBafe48wWtxuXMFm8XjFW3YHDo/Fe14yeWxa1cnm0bdlFaPH501y ASxRXDYpqTmZZalF+nYJXBl3znUzFlyQr2hYuo65gXGuZBcjJ4eEgInEhpWbWLoYuTiEBHYy Skw4dpEVwvnBKLHl8XQmkCo2AS2J/S9usIHYIgJ+Etvnr2cEKWIWaGKUWN5/CyjBwSEs4C+x eVs1iMkioCrxZFIoSDmvgIvE3bXHWSCWyUl82POIfQIj1wJGhlWMkqkFxbnpucVGBYZ5qeV6 xYm5xaV56XrJ+bmbGIFBse2wVt8OxvtL4g8xCnAwKvHwCly/EynEmlhWXJl7iFGCg1lJhNei 8G6kEG9KYmVValF+fFFpTmrxIUZpDhYlcd7beccihQTSE0tSs1NTC1KLYLJMHJxSDYyRtlfW neeK+f3zan7wrtfh29atm9woonfrs1f+uR9uUx9f6Kzcxn9p94Gm9XUxyrMrMvQebY5LTS61 T1kiKusaYKe/0+t3a6NxdcojQRtv7oNHd09eVhdvnV9TvkVWgn39DKktc6fYad5yuqcpIsnl aCnsOiOM1cluroWi2K1Avj/SU85JCSqxFGckGmoxFxUnAgBf02j0BgIAAA== X-CMS-MailID: 20171011030946epcas1p1268ea2af497086ca64c373ea7367baaa X-Msg-Generator: CA X-Sender-IP: 182.195.42.142 X-Local-Sender: =?UTF-8?B?7LWc7LCs7JqwG1RpemVuIFBsYXRmb3JtIExhYihTL1fshLw=?= =?UTF-8?B?7YSwKRvsgrzshLHsoITsnpAbU2VuaW9yIEVuZ2luZWVy?= X-Global-Sender: =?UTF-8?B?Q2hhbndvbyBDaG9pG1RpemVuIFBsYXRmb3JtIExhYi4bU2Ft?= =?UTF-8?B?c3VuZyBFbGVjdHJvbmljcxtTZW5pb3IgRW5naW5lZXI=?= X-Sender-Code: =?UTF-8?B?QzEwG1RFTEUbQzEwVjgxMTE=?= CMS-TYPE: 101P DLP-Filter: Pass X-CFilter-Loop: Reflected X-CMS-RootMailID: 20171011030946epcas1p1268ea2af497086ca64c373ea7367baaa X-RootMTR: 20171011030946epcas1p1268ea2af497086ca64c373ea7367baaa References: Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org These patches makes the devfreq to use the OPP interface and clean-up codes. - patch 1~5 are related to te OPP interfaces. - patch 6 removes the unneeded code. - patch 7 clean-up for the governor name. - patch 8 registers the cooling device for exynos-bus. [Detaild Descripion] The commit a76caf55e5b3 ("thermal: Add devfreq cooling") provides the devfreq cooling device by using the OPP interface such as dev_pm_opp_disable() and dev_pm_opp_enable(). It means that the OPP interface is able to change the available status of the frequency. Firstly, the existing devfreq doesn't use the OPP interface when showing the minimum and maximum frequency through the following sysfs nodes: It shows the wrong frequency value because min_freq/max_freq don't consider the frequency status by handling OPP interface (opp_dev_pm_opp_{disable|add}()). So, these patches fix this issue. - /sys/class/devfreq/devfreqX/min_freq - /sys/class/devfreq/devfreqX/max_freq Second, the 'available_frequencies' should show the all supported frequencis even if the specific frequency is not available. It doesn't matter whether frequneyc is available or not. Because the role of 'available_frequencies' shows the all frequencies. Also, these patches fix this issue. - /sys/class/devfreq/devfreqX/available_frequencies Third, update_devfreq() get the available next frequency by using the devfreq_recommended_opp() in order to consider the disabled OPP. For example, - devfreq's min_freq is 100Mhz and max_freq is 700Mhz. - OPP disabled 500/600/700Mhz due to devfreq-cooling.c. - simple_ondemand govenor decided the next target_freq (600Mhz) |----------|-------------------------------------------------------------| |Freq(MHz) |100 |200 |300 |400 |500 |600 |70 0 | |Devfreq |min_freq| | | | | |max_freq| |OPP avail |enabled |enabled|enabled|enabled |Disabled| Disabled|Disabled| |Ondmenad | | | | | |next_freq| | |------------------------------------------------------------------------| In result, - Before this patch, target_freq is 600Mhz and TRANSITION_NOTIFIER sends the next_freq is 600Mhz to the notifiee. - After this patch, target_freq is 400Mhz because 500/600 were disabled by OPP. and TRANSITION_NOTIFIER sends the next_freq is 400Mhz to the notifiee. Lastly, - patch6/7 fix the minor issue and cleanup codes. - patch8 register the cooling device. It depends on opp patch[1]. [1] https://patchwork.kernel.org/patch/9962387/ Changes from v2: (https://lkml.org/lkml/2017/9/20/886) - Fix the exynos-bus.c for the cooling device on patch8 Changes from v1: (https://lkml.org/lkml/2017/8/23/785) - Show the available frequencies as an ascending order - Change the author info from cwchoi00@gmail.com to cw00.choi@samsung.com - Drop the patches related to opp_notifier - Add new patch5/6/7/8 Chanwoo Choi (8): PM / devfreq: Set min/max_freq when adding the devfreq device Revert "PM / devfreq: Add show_one macro to delete the duplicate code" PM / devfreq: Show the available min/max frequency through sysfs node PM / devfreq: Show the all available frequencies PM / devfreq: Get the available next frequency on update_devfreq() PM / devfreq: Remove unneeded conditional statement PM / devfreq: Define the constant governor name PM / devfreq: exynos-bus: Register cooling device drivers/devfreq/devfreq.c | 121 +++++++++++++++++++++++------- drivers/devfreq/exynos-bus.c | 25 +++++- drivers/devfreq/governor_passive.c | 2 +- drivers/devfreq/governor_performance.c | 2 +- drivers/devfreq/governor_powersave.c | 2 +- drivers/devfreq/governor_simpleondemand.c | 2 +- drivers/devfreq/governor_userspace.c | 2 +- drivers/devfreq/rk3399_dmc.c | 2 +- include/linux/devfreq.h | 7 ++ 9 files changed, 131 insertions(+), 34 deletions(-) -- 1.9.1