* Re: [PATCH v2 3/3] thermal/core: Remove ms based delay fields
2020-12-16 22:03 ` [PATCH v2 3/3] thermal/core: Remove ms based delay fields Daniel Lezcano
@ 2020-12-16 22:35 ` Peter Kästle
2020-12-17 6:00 ` Daniel Lezcano
2020-12-17 0:02 ` kernel test robot
` (4 subsequent siblings)
5 siblings, 1 reply; 18+ messages in thread
From: Peter Kästle @ 2020-12-16 22:35 UTC (permalink / raw)
To: Daniel Lezcano, rui.zhang
Cc: amitk, linux-kernel, linux-pm, Thara Gopinath, Lukasz Luba,
Hans de Goede, Mark Gross, Support Opensource, Eduardo Valentin,
Keerthy, platform-driver-x86, linux-omap
16. Dezember 2020 23:04, "Daniel Lezcano" <daniel.lezcano@linaro.org> schrieb:
> The code does no longer use the ms unit based fields to set the
> delays as they are replaced by the jiffies.
>
> Remove them and replace their user to use the jiffies version instead.
>
> Cc: Thara Gopinath <thara.gopinath@linaro.org>
> Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>
> Reviewed-by: Lukasz Luba <lukasz.luba@arm.com>
> ---
> drivers/platform/x86/acerhdf.c | 3 ++-
Reviewed-by: Peter Kästle <peter@piie.net>
> drivers/thermal/da9062-thermal.c | 4 ++--
> drivers/thermal/gov_power_allocator.c | 2 +-
> drivers/thermal/thermal_core.c | 4 +---
> drivers/thermal/ti-soc-thermal/ti-thermal-common.c | 6 ++++--
> include/linux/thermal.h | 7 -------
> 6 files changed, 10 insertions(+), 16 deletions(-)
>
> diff --git a/drivers/platform/x86/acerhdf.c b/drivers/platform/x86/acerhdf.c
> index b6aa6e5514f4..6b8b3ab8db48 100644
> --- a/drivers/platform/x86/acerhdf.c
> +++ b/drivers/platform/x86/acerhdf.c
> @@ -336,7 +336,8 @@ static void acerhdf_check_param(struct thermal_zone_device *thermal)
> pr_notice("interval changed to: %d\n", interval);
>
> if (thermal)
> - thermal->polling_delay = interval*1000;
> + thermal->polling_delay_jiffies =
> + round_jiffies(msecs_to_jiffies(interval * 1000));
>
> prev_interval = interval;
> }
> diff --git a/drivers/thermal/da9062-thermal.c b/drivers/thermal/da9062-thermal.c
> index 4d74994f160a..180edec34e07 100644
> --- a/drivers/thermal/da9062-thermal.c
> +++ b/drivers/thermal/da9062-thermal.c
> @@ -95,7 +95,7 @@ static void da9062_thermal_poll_on(struct work_struct *work)
> thermal_zone_device_update(thermal->zone,
> THERMAL_EVENT_UNSPECIFIED);
>
> - delay = msecs_to_jiffies(thermal->zone->passive_delay);
> + delay = thermal->zone->passive_delay_jiffies;
> queue_delayed_work(system_freezable_wq, &thermal->work, delay);
> return;
> }
> @@ -245,7 +245,7 @@ static int da9062_thermal_probe(struct platform_device *pdev)
>
> dev_dbg(&pdev->dev,
> "TJUNC temperature polling period set at %d ms\n",
> - thermal->zone->passive_delay);
> + jiffies_to_msecs(thermal->zone->passive_delay_jiffies));
>
> ret = platform_get_irq_byname(pdev, "THERMAL");
> if (ret < 0) {
> diff --git a/drivers/thermal/gov_power_allocator.c b/drivers/thermal/gov_power_allocator.c
> index 7a4170a0b51f..f8c3d1e40b86 100644
> --- a/drivers/thermal/gov_power_allocator.c
> +++ b/drivers/thermal/gov_power_allocator.c
> @@ -258,7 +258,7 @@ static u32 pid_controller(struct thermal_zone_device *tz,
> * power being applied, slowing down the controller)
> */
> d = mul_frac(tz->tzp->k_d, err - params->prev_err);
> - d = div_frac(d, tz->passive_delay);
> + d = div_frac(d, jiffies_to_msecs(tz->passive_delay_jiffies));
> params->prev_err = err;
>
> power_range = p + i + d;
> diff --git a/drivers/thermal/thermal_core.c b/drivers/thermal/thermal_core.c
> index d96c515af3cb..b2615449b18f 100644
> --- a/drivers/thermal/thermal_core.c
> +++ b/drivers/thermal/thermal_core.c
> @@ -313,7 +313,7 @@ static void monitor_thermal_zone(struct thermal_zone_device *tz)
>
> if (!stop && tz->passive)
> thermal_zone_device_set_polling(tz, tz->passive_delay_jiffies);
> - else if (!stop && tz->polling_delay)
> + else if (!stop && tz->polling_delay_jiffies)
> thermal_zone_device_set_polling(tz, tz->polling_delay_jiffies);
> else
> thermal_zone_device_set_polling(tz, 0);
> @@ -1307,8 +1307,6 @@ thermal_zone_device_register(const char *type, int trips, int mask,
> tz->device.class = &thermal_class;
> tz->devdata = devdata;
> tz->trips = trips;
> - tz->passive_delay = passive_delay;
> - tz->polling_delay = polling_delay;
>
> thermal_set_delay_jiffies(&tz->passive_delay_jiffies, passive_delay);
> thermal_set_delay_jiffies(&tz->polling_delay_jiffies, polling_delay);
> diff --git a/drivers/thermal/ti-soc-thermal/ti-thermal-common.c
> b/drivers/thermal/ti-soc-thermal/ti-thermal-common.c
> index 2ce4b19f312a..f84375865c97 100644
> --- a/drivers/thermal/ti-soc-thermal/ti-thermal-common.c
> +++ b/drivers/thermal/ti-soc-thermal/ti-thermal-common.c
> @@ -166,6 +166,7 @@ int ti_thermal_expose_sensor(struct ti_bandgap *bgp, int id,
> char *domain)
> {
> struct ti_thermal_data *data;
> + int interval;
>
> data = ti_bandgap_get_sensor_data(bgp, id);
>
> @@ -183,9 +184,10 @@ int ti_thermal_expose_sensor(struct ti_bandgap *bgp, int id,
> return PTR_ERR(data->ti_thermal);
> }
>
> + interval = jiffies_to_msecs(data->ti_thermal->polling_delay_jiffies);
> +
> ti_bandgap_set_sensor_data(bgp, id, data);
> - ti_bandgap_write_update_interval(bgp, data->sensor_id,
> - data->ti_thermal->polling_delay);
> + ti_bandgap_write_update_interval(bgp, data->sensor_id, interval);
>
> return 0;
> }
> diff --git a/include/linux/thermal.h b/include/linux/thermal.h
> index d1b82c70de69..1e686404951b 100644
> --- a/include/linux/thermal.h
> +++ b/include/linux/thermal.h
> @@ -115,13 +115,8 @@ struct thermal_cooling_device {
> * @devdata: private pointer for device private data
> * @trips: number of trip points the thermal zone supports
> * @trips_disabled; bitmap for disabled trips
> - * @passive_delay: number of milliseconds to wait between polls when
> - * performing passive cooling.
> * @passive_delay_jiffies: number of jiffies to wait between polls when
> * performing passive cooling.
> - * @polling_delay: number of milliseconds to wait between polls when
> - * checking whether trip points have been crossed (0 for
> - * interrupt driven systems)
> * @polling_delay_jiffies: number of jiffies to wait between polls when
> * checking whether trip points have been crossed (0 for
> * interrupt driven systems)
> @@ -162,8 +157,6 @@ struct thermal_zone_device {
> unsigned long trips_disabled; /* bitmap for disabled trips */
> unsigned long passive_delay_jiffies;
> unsigned long polling_delay_jiffies;
> - int passive_delay;
> - int polling_delay;
> int temperature;
> int last_temperature;
> int emul_temperature;
> --
> 2.25.1
^ permalink raw reply [flat|nested] 18+ messages in thread* Re: [PATCH v2 3/3] thermal/core: Remove ms based delay fields
2020-12-16 22:35 ` Peter Kästle
@ 2020-12-17 6:00 ` Daniel Lezcano
0 siblings, 0 replies; 18+ messages in thread
From: Daniel Lezcano @ 2020-12-17 6:00 UTC (permalink / raw)
To: Peter Kästle, rui.zhang
Cc: amitk, linux-kernel, linux-pm, Thara Gopinath, Lukasz Luba,
Hans de Goede, Mark Gross, Support Opensource, Eduardo Valentin,
Keerthy, platform-driver-x86, linux-omap
On 16/12/2020 23:35, Peter Kästle wrote:
> 16. Dezember 2020 23:04, "Daniel Lezcano" <daniel.lezcano@linaro.org> schrieb:
>
>> The code does no longer use the ms unit based fields to set the
>> delays as they are replaced by the jiffies.
>>
>> Remove them and replace their user to use the jiffies version instead.
>>
>> Cc: Thara Gopinath <thara.gopinath@linaro.org>
>> Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>
>> Reviewed-by: Lukasz Luba <lukasz.luba@arm.com>
>> ---
>> drivers/platform/x86/acerhdf.c | 3 ++-
>
> Reviewed-by: Peter Kästle <peter@piie.net>
Thanks for reviewing
-- Daniel
--
<http://www.linaro.org/> Linaro.org │ Open source software for ARM SoCs
Follow Linaro: <http://www.facebook.com/pages/Linaro> Facebook |
<http://twitter.com/#!/linaroorg> Twitter |
<http://www.linaro.org/linaro-blog/> Blog
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PATCH v2 3/3] thermal/core: Remove ms based delay fields
2020-12-16 22:03 ` [PATCH v2 3/3] thermal/core: Remove ms based delay fields Daniel Lezcano
@ 2020-12-17 0:02 ` kernel test robot
2020-12-17 0:02 ` kernel test robot
` (4 subsequent siblings)
5 siblings, 0 replies; 18+ messages in thread
From: kernel test robot @ 2020-12-17 0:02 UTC (permalink / raw)
To: Daniel Lezcano, rui.zhang
Cc: kbuild-all, clang-built-linux, amitk, linux-kernel, linux-pm,
Thara Gopinath, Lukasz Luba, Peter Kaestle, Hans de Goede,
Mark Gross
[-- Attachment #1: Type: text/plain, Size: 5108 bytes --]
Hi Daniel,
I love your patch! Yet something to improve:
[auto build test ERROR on linus/master]
[also build test ERROR on next-20201215]
[cannot apply to linux/master thermal/next v5.10]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]
url: https://github.com/0day-ci/linux/commits/Daniel-Lezcano/thermal-core-Precompute-the-delays-from-msecs-to-jiffies/20201217-060807
base: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git d01e7f10dae29eba0f9ada82b65d24e035d5b2f9
config: powerpc-randconfig-r025-20201217 (attached as .config)
compiler: clang version 12.0.0 (https://github.com/llvm/llvm-project 71601d2ac9954cb59c443cb3ae442cb106df35d4)
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# install powerpc cross compiling tool for clang build
# apt-get install binutils-powerpc-linux-gnu
# https://github.com/0day-ci/linux/commit/269c49cd4aa4fe5b05d789faa6b974f4a4c85185
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Daniel-Lezcano/thermal-core-Precompute-the-delays-from-msecs-to-jiffies/20201217-060807
git checkout 269c49cd4aa4fe5b05d789faa6b974f4a4c85185
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=powerpc
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
All errors (new ones prefixed by >>):
>> drivers/thermal/thermal_sysfs.c:236:12: error: no member named 'passive_delay' in 'struct thermal_zone_device'
if (!tz->passive_delay)
~~ ^
drivers/thermal/thermal_sysfs.c:237:8: error: no member named 'passive_delay' in 'struct thermal_zone_device'
tz->passive_delay = 1000;
~~ ^
drivers/thermal/thermal_sysfs.c:241:7: error: no member named 'passive_delay' in 'struct thermal_zone_device'
tz->passive_delay = 0;
~~ ^
3 errors generated.
vim +236 drivers/thermal/thermal_sysfs.c
a369ee88f7f6059 Eduardo Valentin 2016-11-07 218
a369ee88f7f6059 Eduardo Valentin 2016-11-07 219 static ssize_t
a369ee88f7f6059 Eduardo Valentin 2016-11-07 220 passive_store(struct device *dev, struct device_attribute *attr,
a369ee88f7f6059 Eduardo Valentin 2016-11-07 221 const char *buf, size_t count)
a369ee88f7f6059 Eduardo Valentin 2016-11-07 222 {
a369ee88f7f6059 Eduardo Valentin 2016-11-07 223 struct thermal_zone_device *tz = to_thermal_zone(dev);
a369ee88f7f6059 Eduardo Valentin 2016-11-07 224 int state;
a369ee88f7f6059 Eduardo Valentin 2016-11-07 225
a369ee88f7f6059 Eduardo Valentin 2016-11-07 226 if (sscanf(buf, "%d\n", &state) != 1)
a369ee88f7f6059 Eduardo Valentin 2016-11-07 227 return -EINVAL;
a369ee88f7f6059 Eduardo Valentin 2016-11-07 228
a369ee88f7f6059 Eduardo Valentin 2016-11-07 229 /* sanity check: values below 1000 millicelcius don't make sense
a369ee88f7f6059 Eduardo Valentin 2016-11-07 230 * and can cause the system to go into a thermal heart attack
a369ee88f7f6059 Eduardo Valentin 2016-11-07 231 */
a369ee88f7f6059 Eduardo Valentin 2016-11-07 232 if (state && state < 1000)
a369ee88f7f6059 Eduardo Valentin 2016-11-07 233 return -EINVAL;
a369ee88f7f6059 Eduardo Valentin 2016-11-07 234
a369ee88f7f6059 Eduardo Valentin 2016-11-07 235 if (state && !tz->forced_passive) {
a369ee88f7f6059 Eduardo Valentin 2016-11-07 @236 if (!tz->passive_delay)
a369ee88f7f6059 Eduardo Valentin 2016-11-07 237 tz->passive_delay = 1000;
a369ee88f7f6059 Eduardo Valentin 2016-11-07 238 thermal_zone_device_rebind_exception(tz, "Processor",
a369ee88f7f6059 Eduardo Valentin 2016-11-07 239 sizeof("Processor"));
a369ee88f7f6059 Eduardo Valentin 2016-11-07 240 } else if (!state && tz->forced_passive) {
a369ee88f7f6059 Eduardo Valentin 2016-11-07 241 tz->passive_delay = 0;
a369ee88f7f6059 Eduardo Valentin 2016-11-07 242 thermal_zone_device_unbind_exception(tz, "Processor",
a369ee88f7f6059 Eduardo Valentin 2016-11-07 243 sizeof("Processor"));
a369ee88f7f6059 Eduardo Valentin 2016-11-07 244 }
a369ee88f7f6059 Eduardo Valentin 2016-11-07 245
a369ee88f7f6059 Eduardo Valentin 2016-11-07 246 tz->forced_passive = state;
a369ee88f7f6059 Eduardo Valentin 2016-11-07 247
a369ee88f7f6059 Eduardo Valentin 2016-11-07 248 thermal_zone_device_update(tz, THERMAL_EVENT_UNSPECIFIED);
a369ee88f7f6059 Eduardo Valentin 2016-11-07 249
a369ee88f7f6059 Eduardo Valentin 2016-11-07 250 return count;
a369ee88f7f6059 Eduardo Valentin 2016-11-07 251 }
a369ee88f7f6059 Eduardo Valentin 2016-11-07 252
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 39507 bytes --]
^ permalink raw reply [flat|nested] 18+ messages in thread* Re: [PATCH v2 3/3] thermal/core: Remove ms based delay fields
@ 2020-12-17 0:02 ` kernel test robot
0 siblings, 0 replies; 18+ messages in thread
From: kernel test robot @ 2020-12-17 0:02 UTC (permalink / raw)
To: kbuild-all
[-- Attachment #1: Type: text/plain, Size: 5195 bytes --]
Hi Daniel,
I love your patch! Yet something to improve:
[auto build test ERROR on linus/master]
[also build test ERROR on next-20201215]
[cannot apply to linux/master thermal/next v5.10]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]
url: https://github.com/0day-ci/linux/commits/Daniel-Lezcano/thermal-core-Precompute-the-delays-from-msecs-to-jiffies/20201217-060807
base: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git d01e7f10dae29eba0f9ada82b65d24e035d5b2f9
config: powerpc-randconfig-r025-20201217 (attached as .config)
compiler: clang version 12.0.0 (https://github.com/llvm/llvm-project 71601d2ac9954cb59c443cb3ae442cb106df35d4)
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# install powerpc cross compiling tool for clang build
# apt-get install binutils-powerpc-linux-gnu
# https://github.com/0day-ci/linux/commit/269c49cd4aa4fe5b05d789faa6b974f4a4c85185
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Daniel-Lezcano/thermal-core-Precompute-the-delays-from-msecs-to-jiffies/20201217-060807
git checkout 269c49cd4aa4fe5b05d789faa6b974f4a4c85185
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=powerpc
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
All errors (new ones prefixed by >>):
>> drivers/thermal/thermal_sysfs.c:236:12: error: no member named 'passive_delay' in 'struct thermal_zone_device'
if (!tz->passive_delay)
~~ ^
drivers/thermal/thermal_sysfs.c:237:8: error: no member named 'passive_delay' in 'struct thermal_zone_device'
tz->passive_delay = 1000;
~~ ^
drivers/thermal/thermal_sysfs.c:241:7: error: no member named 'passive_delay' in 'struct thermal_zone_device'
tz->passive_delay = 0;
~~ ^
3 errors generated.
vim +236 drivers/thermal/thermal_sysfs.c
a369ee88f7f6059 Eduardo Valentin 2016-11-07 218
a369ee88f7f6059 Eduardo Valentin 2016-11-07 219 static ssize_t
a369ee88f7f6059 Eduardo Valentin 2016-11-07 220 passive_store(struct device *dev, struct device_attribute *attr,
a369ee88f7f6059 Eduardo Valentin 2016-11-07 221 const char *buf, size_t count)
a369ee88f7f6059 Eduardo Valentin 2016-11-07 222 {
a369ee88f7f6059 Eduardo Valentin 2016-11-07 223 struct thermal_zone_device *tz = to_thermal_zone(dev);
a369ee88f7f6059 Eduardo Valentin 2016-11-07 224 int state;
a369ee88f7f6059 Eduardo Valentin 2016-11-07 225
a369ee88f7f6059 Eduardo Valentin 2016-11-07 226 if (sscanf(buf, "%d\n", &state) != 1)
a369ee88f7f6059 Eduardo Valentin 2016-11-07 227 return -EINVAL;
a369ee88f7f6059 Eduardo Valentin 2016-11-07 228
a369ee88f7f6059 Eduardo Valentin 2016-11-07 229 /* sanity check: values below 1000 millicelcius don't make sense
a369ee88f7f6059 Eduardo Valentin 2016-11-07 230 * and can cause the system to go into a thermal heart attack
a369ee88f7f6059 Eduardo Valentin 2016-11-07 231 */
a369ee88f7f6059 Eduardo Valentin 2016-11-07 232 if (state && state < 1000)
a369ee88f7f6059 Eduardo Valentin 2016-11-07 233 return -EINVAL;
a369ee88f7f6059 Eduardo Valentin 2016-11-07 234
a369ee88f7f6059 Eduardo Valentin 2016-11-07 235 if (state && !tz->forced_passive) {
a369ee88f7f6059 Eduardo Valentin 2016-11-07 @236 if (!tz->passive_delay)
a369ee88f7f6059 Eduardo Valentin 2016-11-07 237 tz->passive_delay = 1000;
a369ee88f7f6059 Eduardo Valentin 2016-11-07 238 thermal_zone_device_rebind_exception(tz, "Processor",
a369ee88f7f6059 Eduardo Valentin 2016-11-07 239 sizeof("Processor"));
a369ee88f7f6059 Eduardo Valentin 2016-11-07 240 } else if (!state && tz->forced_passive) {
a369ee88f7f6059 Eduardo Valentin 2016-11-07 241 tz->passive_delay = 0;
a369ee88f7f6059 Eduardo Valentin 2016-11-07 242 thermal_zone_device_unbind_exception(tz, "Processor",
a369ee88f7f6059 Eduardo Valentin 2016-11-07 243 sizeof("Processor"));
a369ee88f7f6059 Eduardo Valentin 2016-11-07 244 }
a369ee88f7f6059 Eduardo Valentin 2016-11-07 245
a369ee88f7f6059 Eduardo Valentin 2016-11-07 246 tz->forced_passive = state;
a369ee88f7f6059 Eduardo Valentin 2016-11-07 247
a369ee88f7f6059 Eduardo Valentin 2016-11-07 248 thermal_zone_device_update(tz, THERMAL_EVENT_UNSPECIFIED);
a369ee88f7f6059 Eduardo Valentin 2016-11-07 249
a369ee88f7f6059 Eduardo Valentin 2016-11-07 250 return count;
a369ee88f7f6059 Eduardo Valentin 2016-11-07 251 }
a369ee88f7f6059 Eduardo Valentin 2016-11-07 252
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org
[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 39507 bytes --]
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PATCH v2 3/3] thermal/core: Remove ms based delay fields
2020-12-16 22:03 ` [PATCH v2 3/3] thermal/core: Remove ms based delay fields Daniel Lezcano
@ 2020-12-17 0:24 ` kernel test robot
2020-12-17 0:02 ` kernel test robot
` (4 subsequent siblings)
5 siblings, 0 replies; 18+ messages in thread
From: kernel test robot @ 2020-12-17 0:24 UTC (permalink / raw)
To: Daniel Lezcano, rui.zhang
Cc: kbuild-all, amitk, linux-kernel, linux-pm, Thara Gopinath,
Lukasz Luba, Peter Kaestle, Hans de Goede, Mark Gross
[-- Attachment #1: Type: text/plain, Size: 4903 bytes --]
Hi Daniel,
I love your patch! Yet something to improve:
[auto build test ERROR on linus/master]
[also build test ERROR on next-20201215]
[cannot apply to linux/master thermal/next v5.10]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]
url: https://github.com/0day-ci/linux/commits/Daniel-Lezcano/thermal-core-Precompute-the-delays-from-msecs-to-jiffies/20201217-060807
base: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git d01e7f10dae29eba0f9ada82b65d24e035d5b2f9
config: arc-randconfig-r024-20201217 (attached as .config)
compiler: arc-elf-gcc (GCC) 9.3.0
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# https://github.com/0day-ci/linux/commit/269c49cd4aa4fe5b05d789faa6b974f4a4c85185
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Daniel-Lezcano/thermal-core-Precompute-the-delays-from-msecs-to-jiffies/20201217-060807
git checkout 269c49cd4aa4fe5b05d789faa6b974f4a4c85185
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=arc
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
All errors (new ones prefixed by >>):
drivers/thermal/thermal_sysfs.c: In function 'passive_store':
>> drivers/thermal/thermal_sysfs.c:236:10: error: 'struct thermal_zone_device' has no member named 'passive_delay'
236 | if (!tz->passive_delay)
| ^~
drivers/thermal/thermal_sysfs.c:237:6: error: 'struct thermal_zone_device' has no member named 'passive_delay'
237 | tz->passive_delay = 1000;
| ^~
drivers/thermal/thermal_sysfs.c:241:5: error: 'struct thermal_zone_device' has no member named 'passive_delay'
241 | tz->passive_delay = 0;
| ^~
vim +236 drivers/thermal/thermal_sysfs.c
a369ee88f7f6059 Eduardo Valentin 2016-11-07 218
a369ee88f7f6059 Eduardo Valentin 2016-11-07 219 static ssize_t
a369ee88f7f6059 Eduardo Valentin 2016-11-07 220 passive_store(struct device *dev, struct device_attribute *attr,
a369ee88f7f6059 Eduardo Valentin 2016-11-07 221 const char *buf, size_t count)
a369ee88f7f6059 Eduardo Valentin 2016-11-07 222 {
a369ee88f7f6059 Eduardo Valentin 2016-11-07 223 struct thermal_zone_device *tz = to_thermal_zone(dev);
a369ee88f7f6059 Eduardo Valentin 2016-11-07 224 int state;
a369ee88f7f6059 Eduardo Valentin 2016-11-07 225
a369ee88f7f6059 Eduardo Valentin 2016-11-07 226 if (sscanf(buf, "%d\n", &state) != 1)
a369ee88f7f6059 Eduardo Valentin 2016-11-07 227 return -EINVAL;
a369ee88f7f6059 Eduardo Valentin 2016-11-07 228
a369ee88f7f6059 Eduardo Valentin 2016-11-07 229 /* sanity check: values below 1000 millicelcius don't make sense
a369ee88f7f6059 Eduardo Valentin 2016-11-07 230 * and can cause the system to go into a thermal heart attack
a369ee88f7f6059 Eduardo Valentin 2016-11-07 231 */
a369ee88f7f6059 Eduardo Valentin 2016-11-07 232 if (state && state < 1000)
a369ee88f7f6059 Eduardo Valentin 2016-11-07 233 return -EINVAL;
a369ee88f7f6059 Eduardo Valentin 2016-11-07 234
a369ee88f7f6059 Eduardo Valentin 2016-11-07 235 if (state && !tz->forced_passive) {
a369ee88f7f6059 Eduardo Valentin 2016-11-07 @236 if (!tz->passive_delay)
a369ee88f7f6059 Eduardo Valentin 2016-11-07 237 tz->passive_delay = 1000;
a369ee88f7f6059 Eduardo Valentin 2016-11-07 238 thermal_zone_device_rebind_exception(tz, "Processor",
a369ee88f7f6059 Eduardo Valentin 2016-11-07 239 sizeof("Processor"));
a369ee88f7f6059 Eduardo Valentin 2016-11-07 240 } else if (!state && tz->forced_passive) {
a369ee88f7f6059 Eduardo Valentin 2016-11-07 241 tz->passive_delay = 0;
a369ee88f7f6059 Eduardo Valentin 2016-11-07 242 thermal_zone_device_unbind_exception(tz, "Processor",
a369ee88f7f6059 Eduardo Valentin 2016-11-07 243 sizeof("Processor"));
a369ee88f7f6059 Eduardo Valentin 2016-11-07 244 }
a369ee88f7f6059 Eduardo Valentin 2016-11-07 245
a369ee88f7f6059 Eduardo Valentin 2016-11-07 246 tz->forced_passive = state;
a369ee88f7f6059 Eduardo Valentin 2016-11-07 247
a369ee88f7f6059 Eduardo Valentin 2016-11-07 248 thermal_zone_device_update(tz, THERMAL_EVENT_UNSPECIFIED);
a369ee88f7f6059 Eduardo Valentin 2016-11-07 249
a369ee88f7f6059 Eduardo Valentin 2016-11-07 250 return count;
a369ee88f7f6059 Eduardo Valentin 2016-11-07 251 }
a369ee88f7f6059 Eduardo Valentin 2016-11-07 252
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 24645 bytes --]
^ permalink raw reply [flat|nested] 18+ messages in thread* Re: [PATCH v2 3/3] thermal/core: Remove ms based delay fields
@ 2020-12-17 0:24 ` kernel test robot
0 siblings, 0 replies; 18+ messages in thread
From: kernel test robot @ 2020-12-17 0:24 UTC (permalink / raw)
To: kbuild-all
[-- Attachment #1: Type: text/plain, Size: 4988 bytes --]
Hi Daniel,
I love your patch! Yet something to improve:
[auto build test ERROR on linus/master]
[also build test ERROR on next-20201215]
[cannot apply to linux/master thermal/next v5.10]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]
url: https://github.com/0day-ci/linux/commits/Daniel-Lezcano/thermal-core-Precompute-the-delays-from-msecs-to-jiffies/20201217-060807
base: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git d01e7f10dae29eba0f9ada82b65d24e035d5b2f9
config: arc-randconfig-r024-20201217 (attached as .config)
compiler: arc-elf-gcc (GCC) 9.3.0
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# https://github.com/0day-ci/linux/commit/269c49cd4aa4fe5b05d789faa6b974f4a4c85185
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Daniel-Lezcano/thermal-core-Precompute-the-delays-from-msecs-to-jiffies/20201217-060807
git checkout 269c49cd4aa4fe5b05d789faa6b974f4a4c85185
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=arc
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
All errors (new ones prefixed by >>):
drivers/thermal/thermal_sysfs.c: In function 'passive_store':
>> drivers/thermal/thermal_sysfs.c:236:10: error: 'struct thermal_zone_device' has no member named 'passive_delay'
236 | if (!tz->passive_delay)
| ^~
drivers/thermal/thermal_sysfs.c:237:6: error: 'struct thermal_zone_device' has no member named 'passive_delay'
237 | tz->passive_delay = 1000;
| ^~
drivers/thermal/thermal_sysfs.c:241:5: error: 'struct thermal_zone_device' has no member named 'passive_delay'
241 | tz->passive_delay = 0;
| ^~
vim +236 drivers/thermal/thermal_sysfs.c
a369ee88f7f6059 Eduardo Valentin 2016-11-07 218
a369ee88f7f6059 Eduardo Valentin 2016-11-07 219 static ssize_t
a369ee88f7f6059 Eduardo Valentin 2016-11-07 220 passive_store(struct device *dev, struct device_attribute *attr,
a369ee88f7f6059 Eduardo Valentin 2016-11-07 221 const char *buf, size_t count)
a369ee88f7f6059 Eduardo Valentin 2016-11-07 222 {
a369ee88f7f6059 Eduardo Valentin 2016-11-07 223 struct thermal_zone_device *tz = to_thermal_zone(dev);
a369ee88f7f6059 Eduardo Valentin 2016-11-07 224 int state;
a369ee88f7f6059 Eduardo Valentin 2016-11-07 225
a369ee88f7f6059 Eduardo Valentin 2016-11-07 226 if (sscanf(buf, "%d\n", &state) != 1)
a369ee88f7f6059 Eduardo Valentin 2016-11-07 227 return -EINVAL;
a369ee88f7f6059 Eduardo Valentin 2016-11-07 228
a369ee88f7f6059 Eduardo Valentin 2016-11-07 229 /* sanity check: values below 1000 millicelcius don't make sense
a369ee88f7f6059 Eduardo Valentin 2016-11-07 230 * and can cause the system to go into a thermal heart attack
a369ee88f7f6059 Eduardo Valentin 2016-11-07 231 */
a369ee88f7f6059 Eduardo Valentin 2016-11-07 232 if (state && state < 1000)
a369ee88f7f6059 Eduardo Valentin 2016-11-07 233 return -EINVAL;
a369ee88f7f6059 Eduardo Valentin 2016-11-07 234
a369ee88f7f6059 Eduardo Valentin 2016-11-07 235 if (state && !tz->forced_passive) {
a369ee88f7f6059 Eduardo Valentin 2016-11-07 @236 if (!tz->passive_delay)
a369ee88f7f6059 Eduardo Valentin 2016-11-07 237 tz->passive_delay = 1000;
a369ee88f7f6059 Eduardo Valentin 2016-11-07 238 thermal_zone_device_rebind_exception(tz, "Processor",
a369ee88f7f6059 Eduardo Valentin 2016-11-07 239 sizeof("Processor"));
a369ee88f7f6059 Eduardo Valentin 2016-11-07 240 } else if (!state && tz->forced_passive) {
a369ee88f7f6059 Eduardo Valentin 2016-11-07 241 tz->passive_delay = 0;
a369ee88f7f6059 Eduardo Valentin 2016-11-07 242 thermal_zone_device_unbind_exception(tz, "Processor",
a369ee88f7f6059 Eduardo Valentin 2016-11-07 243 sizeof("Processor"));
a369ee88f7f6059 Eduardo Valentin 2016-11-07 244 }
a369ee88f7f6059 Eduardo Valentin 2016-11-07 245
a369ee88f7f6059 Eduardo Valentin 2016-11-07 246 tz->forced_passive = state;
a369ee88f7f6059 Eduardo Valentin 2016-11-07 247
a369ee88f7f6059 Eduardo Valentin 2016-11-07 248 thermal_zone_device_update(tz, THERMAL_EVENT_UNSPECIFIED);
a369ee88f7f6059 Eduardo Valentin 2016-11-07 249
a369ee88f7f6059 Eduardo Valentin 2016-11-07 250 return count;
a369ee88f7f6059 Eduardo Valentin 2016-11-07 251 }
a369ee88f7f6059 Eduardo Valentin 2016-11-07 252
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org
[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 24645 bytes --]
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PATCH v2 3/3] thermal/core: Remove ms based delay fields
2020-12-16 22:03 ` [PATCH v2 3/3] thermal/core: Remove ms based delay fields Daniel Lezcano
` (2 preceding siblings ...)
2020-12-17 0:24 ` kernel test robot
@ 2020-12-17 18:32 ` Hans de Goede
2020-12-17 19:25 ` Daniel Lezcano
2020-12-18 10:16 ` Adam Thomson
2021-01-19 21:27 ` [thermal: thermal/next] " thermal-bot for Daniel Lezcano
5 siblings, 1 reply; 18+ messages in thread
From: Hans de Goede @ 2020-12-17 18:32 UTC (permalink / raw)
To: Daniel Lezcano, rui.zhang
Cc: amitk, linux-kernel, linux-pm, Thara Gopinath, Lukasz Luba,
Peter Kaestle, Mark Gross, Support Opensource, Eduardo Valentin,
Keerthy, open list:ACER ASPIRE ONE TEMPERATURE AND FAN DRIVER,
open list:TI BANDGAP AND THERMAL DRIVER
Hi Daniel,
On 12/16/20 11:03 PM, Daniel Lezcano wrote:
> The code does no longer use the ms unit based fields to set the
> delays as they are replaced by the jiffies.
>
> Remove them and replace their user to use the jiffies version instead.
>
> Cc: Thara Gopinath <thara.gopinath@linaro.org>
> Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>
> Reviewed-by: Lukasz Luba <lukasz.luba@arm.com>
I assume that you will merge this through the thermal tree,
here is my ack for doing so for the pdx86 bits:
Acked-by: Hans de Goede <hdegoede@redhat.com>
Regards,
Hans
> ---
> drivers/platform/x86/acerhdf.c | 3 ++-
> drivers/thermal/da9062-thermal.c | 4 ++--
> drivers/thermal/gov_power_allocator.c | 2 +-
> drivers/thermal/thermal_core.c | 4 +---
> drivers/thermal/ti-soc-thermal/ti-thermal-common.c | 6 ++++--
> include/linux/thermal.h | 7 -------
> 6 files changed, 10 insertions(+), 16 deletions(-)
>
> diff --git a/drivers/platform/x86/acerhdf.c b/drivers/platform/x86/acerhdf.c
> index b6aa6e5514f4..6b8b3ab8db48 100644
> --- a/drivers/platform/x86/acerhdf.c
> +++ b/drivers/platform/x86/acerhdf.c
> @@ -336,7 +336,8 @@ static void acerhdf_check_param(struct thermal_zone_device *thermal)
> pr_notice("interval changed to: %d\n", interval);
>
> if (thermal)
> - thermal->polling_delay = interval*1000;
> + thermal->polling_delay_jiffies =
> + round_jiffies(msecs_to_jiffies(interval * 1000));
>
> prev_interval = interval;
> }
> diff --git a/drivers/thermal/da9062-thermal.c b/drivers/thermal/da9062-thermal.c
> index 4d74994f160a..180edec34e07 100644
> --- a/drivers/thermal/da9062-thermal.c
> +++ b/drivers/thermal/da9062-thermal.c
> @@ -95,7 +95,7 @@ static void da9062_thermal_poll_on(struct work_struct *work)
> thermal_zone_device_update(thermal->zone,
> THERMAL_EVENT_UNSPECIFIED);
>
> - delay = msecs_to_jiffies(thermal->zone->passive_delay);
> + delay = thermal->zone->passive_delay_jiffies;
> queue_delayed_work(system_freezable_wq, &thermal->work, delay);
> return;
> }
> @@ -245,7 +245,7 @@ static int da9062_thermal_probe(struct platform_device *pdev)
>
> dev_dbg(&pdev->dev,
> "TJUNC temperature polling period set at %d ms\n",
> - thermal->zone->passive_delay);
> + jiffies_to_msecs(thermal->zone->passive_delay_jiffies));
>
> ret = platform_get_irq_byname(pdev, "THERMAL");
> if (ret < 0) {
> diff --git a/drivers/thermal/gov_power_allocator.c b/drivers/thermal/gov_power_allocator.c
> index 7a4170a0b51f..f8c3d1e40b86 100644
> --- a/drivers/thermal/gov_power_allocator.c
> +++ b/drivers/thermal/gov_power_allocator.c
> @@ -258,7 +258,7 @@ static u32 pid_controller(struct thermal_zone_device *tz,
> * power being applied, slowing down the controller)
> */
> d = mul_frac(tz->tzp->k_d, err - params->prev_err);
> - d = div_frac(d, tz->passive_delay);
> + d = div_frac(d, jiffies_to_msecs(tz->passive_delay_jiffies));
> params->prev_err = err;
>
> power_range = p + i + d;
> diff --git a/drivers/thermal/thermal_core.c b/drivers/thermal/thermal_core.c
> index d96c515af3cb..b2615449b18f 100644
> --- a/drivers/thermal/thermal_core.c
> +++ b/drivers/thermal/thermal_core.c
> @@ -313,7 +313,7 @@ static void monitor_thermal_zone(struct thermal_zone_device *tz)
>
> if (!stop && tz->passive)
> thermal_zone_device_set_polling(tz, tz->passive_delay_jiffies);
> - else if (!stop && tz->polling_delay)
> + else if (!stop && tz->polling_delay_jiffies)
> thermal_zone_device_set_polling(tz, tz->polling_delay_jiffies);
> else
> thermal_zone_device_set_polling(tz, 0);
> @@ -1307,8 +1307,6 @@ thermal_zone_device_register(const char *type, int trips, int mask,
> tz->device.class = &thermal_class;
> tz->devdata = devdata;
> tz->trips = trips;
> - tz->passive_delay = passive_delay;
> - tz->polling_delay = polling_delay;
>
> thermal_set_delay_jiffies(&tz->passive_delay_jiffies, passive_delay);
> thermal_set_delay_jiffies(&tz->polling_delay_jiffies, polling_delay);
> diff --git a/drivers/thermal/ti-soc-thermal/ti-thermal-common.c b/drivers/thermal/ti-soc-thermal/ti-thermal-common.c
> index 2ce4b19f312a..f84375865c97 100644
> --- a/drivers/thermal/ti-soc-thermal/ti-thermal-common.c
> +++ b/drivers/thermal/ti-soc-thermal/ti-thermal-common.c
> @@ -166,6 +166,7 @@ int ti_thermal_expose_sensor(struct ti_bandgap *bgp, int id,
> char *domain)
> {
> struct ti_thermal_data *data;
> + int interval;
>
> data = ti_bandgap_get_sensor_data(bgp, id);
>
> @@ -183,9 +184,10 @@ int ti_thermal_expose_sensor(struct ti_bandgap *bgp, int id,
> return PTR_ERR(data->ti_thermal);
> }
>
> + interval = jiffies_to_msecs(data->ti_thermal->polling_delay_jiffies);
> +
> ti_bandgap_set_sensor_data(bgp, id, data);
> - ti_bandgap_write_update_interval(bgp, data->sensor_id,
> - data->ti_thermal->polling_delay);
> + ti_bandgap_write_update_interval(bgp, data->sensor_id, interval);
>
> return 0;
> }
> diff --git a/include/linux/thermal.h b/include/linux/thermal.h
> index d1b82c70de69..1e686404951b 100644
> --- a/include/linux/thermal.h
> +++ b/include/linux/thermal.h
> @@ -115,13 +115,8 @@ struct thermal_cooling_device {
> * @devdata: private pointer for device private data
> * @trips: number of trip points the thermal zone supports
> * @trips_disabled; bitmap for disabled trips
> - * @passive_delay: number of milliseconds to wait between polls when
> - * performing passive cooling.
> * @passive_delay_jiffies: number of jiffies to wait between polls when
> * performing passive cooling.
> - * @polling_delay: number of milliseconds to wait between polls when
> - * checking whether trip points have been crossed (0 for
> - * interrupt driven systems)
> * @polling_delay_jiffies: number of jiffies to wait between polls when
> * checking whether trip points have been crossed (0 for
> * interrupt driven systems)
> @@ -162,8 +157,6 @@ struct thermal_zone_device {
> unsigned long trips_disabled; /* bitmap for disabled trips */
> unsigned long passive_delay_jiffies;
> unsigned long polling_delay_jiffies;
> - int passive_delay;
> - int polling_delay;
> int temperature;
> int last_temperature;
> int emul_temperature;
>
^ permalink raw reply [flat|nested] 18+ messages in thread* Re: [PATCH v2 3/3] thermal/core: Remove ms based delay fields
2020-12-17 18:32 ` Hans de Goede
@ 2020-12-17 19:25 ` Daniel Lezcano
0 siblings, 0 replies; 18+ messages in thread
From: Daniel Lezcano @ 2020-12-17 19:25 UTC (permalink / raw)
To: Hans de Goede, rui.zhang
Cc: amitk, linux-kernel, linux-pm, Thara Gopinath, Lukasz Luba,
Peter Kaestle, Mark Gross, Support Opensource, Eduardo Valentin,
Keerthy, open list:ACER ASPIRE ONE TEMPERATURE AND FAN DRIVER,
open list:TI BANDGAP AND THERMAL DRIVER
On 17/12/2020 19:32, Hans de Goede wrote:
> Hi Daniel,
>
> On 12/16/20 11:03 PM, Daniel Lezcano wrote:
>> The code does no longer use the ms unit based fields to set the
>> delays as they are replaced by the jiffies.
>>
>> Remove them and replace their user to use the jiffies version instead.
>>
>> Cc: Thara Gopinath <thara.gopinath@linaro.org>
>> Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>
>> Reviewed-by: Lukasz Luba <lukasz.luba@arm.com>
>
> I assume that you will merge this through the thermal tree,
> here is my ack for doing so for the pdx86 bits:
>
> Acked-by: Hans de Goede <hdegoede@redhat.com>
Thanks!
--
<http://www.linaro.org/> Linaro.org │ Open source software for ARM SoCs
Follow Linaro: <http://www.facebook.com/pages/Linaro> Facebook |
<http://twitter.com/#!/linaroorg> Twitter |
<http://www.linaro.org/linaro-blog/> Blog
^ permalink raw reply [flat|nested] 18+ messages in thread
* RE: [PATCH v2 3/3] thermal/core: Remove ms based delay fields
2020-12-16 22:03 ` [PATCH v2 3/3] thermal/core: Remove ms based delay fields Daniel Lezcano
` (3 preceding siblings ...)
2020-12-17 18:32 ` Hans de Goede
@ 2020-12-18 10:16 ` Adam Thomson
2020-12-18 10:45 ` Daniel Lezcano
2021-01-19 21:27 ` [thermal: thermal/next] " thermal-bot for Daniel Lezcano
5 siblings, 1 reply; 18+ messages in thread
From: Adam Thomson @ 2020-12-18 10:16 UTC (permalink / raw)
To: Daniel Lezcano, rui.zhang@intel.com
Cc: amitk@kernel.org, linux-kernel@vger.kernel.org,
linux-pm@vger.kernel.org, Thara Gopinath, Lukasz Luba,
Peter Kaestle, Hans de Goede, Mark Gross, Support Opensource,
Eduardo Valentin, Keerthy,
open list:ACER ASPIRE ONE TEMPERATURE AND FAN DRIVER,
open list:TI BANDGAP AND THERMAL DRIVER
On 16 December 2020 22:04, Daniel Lezcano wrote:
> The code does no longer use the ms unit based fields to set the
> delays as they are replaced by the jiffies.
>
> Remove them and replace their user to use the jiffies version instead.
>
> Cc: Thara Gopinath <thara.gopinath@linaro.org>
> Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>
> Reviewed-by: Lukasz Luba <lukasz.luba@arm.com>
For DA9062: Reviewed-by: Adam Thomson <Adam.Thomson.Opensource@diasemi.com>
^ permalink raw reply [flat|nested] 18+ messages in thread* Re: [PATCH v2 3/3] thermal/core: Remove ms based delay fields
2020-12-18 10:16 ` Adam Thomson
@ 2020-12-18 10:45 ` Daniel Lezcano
0 siblings, 0 replies; 18+ messages in thread
From: Daniel Lezcano @ 2020-12-18 10:45 UTC (permalink / raw)
To: Adam Thomson, rui.zhang@intel.com
Cc: amitk@kernel.org, linux-kernel@vger.kernel.org,
linux-pm@vger.kernel.org, Thara Gopinath, Lukasz Luba,
Peter Kaestle, Hans de Goede, Mark Gross, Support Opensource,
Eduardo Valentin, Keerthy,
open list:ACER ASPIRE ONE TEMPERATURE AND FAN DRIVER,
open list:TI BANDGAP AND THERMAL DRIVER
On 18/12/2020 11:16, Adam Thomson wrote:
> On 16 December 2020 22:04, Daniel Lezcano wrote:
>
>> The code does no longer use the ms unit based fields to set the
>> delays as they are replaced by the jiffies.
>>
>> Remove them and replace their user to use the jiffies version instead.
>>
>> Cc: Thara Gopinath <thara.gopinath@linaro.org>
>> Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>
>> Reviewed-by: Lukasz Luba <lukasz.luba@arm.com>
>
> For DA9062: Reviewed-by: Adam Thomson <Adam.Thomson.Opensource@diasemi.com>
Thanks !
--
<http://www.linaro.org/> Linaro.org │ Open source software for ARM SoCs
Follow Linaro: <http://www.facebook.com/pages/Linaro> Facebook |
<http://twitter.com/#!/linaroorg> Twitter |
<http://www.linaro.org/linaro-blog/> Blog
^ permalink raw reply [flat|nested] 18+ messages in thread
* [thermal: thermal/next] thermal/core: Remove ms based delay fields
2020-12-16 22:03 ` [PATCH v2 3/3] thermal/core: Remove ms based delay fields Daniel Lezcano
` (4 preceding siblings ...)
2020-12-18 10:16 ` Adam Thomson
@ 2021-01-19 21:27 ` thermal-bot for Daniel Lezcano
5 siblings, 0 replies; 18+ messages in thread
From: thermal-bot for Daniel Lezcano @ 2021-01-19 21:27 UTC (permalink / raw)
To: linux-pm
Cc: Thara Gopinath, Daniel Lezcano, Lukasz Luba, peter, Hans de Goede,
rui.zhang, amitk
The following commit has been merged into the thermal/next branch of thermal:
Commit-ID: b39d2dd5b5ed08d15711aefd5afd72bd87387c64
Gitweb: https://git.kernel.org/pub/scm/linux/kernel/git/thermal/linux.git//b39d2dd5b5ed08d15711aefd5afd72bd87387c64
Author: Daniel Lezcano <daniel.lezcano@linaro.org>
AuthorDate: Wed, 16 Dec 2020 23:03:37 +01:00
Committer: Daniel Lezcano <daniel.lezcano@linaro.org>
CommitterDate: Tue, 19 Jan 2021 22:23:49 +01:00
thermal/core: Remove ms based delay fields
The code does no longer use the ms unit based fields to set the
delays as they are replaced by the jiffies.
Remove them and replace their user to use the jiffies version instead.
Cc: Thara Gopinath <thara.gopinath@linaro.org>
Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>
Reviewed-by: Lukasz Luba <lukasz.luba@arm.com>
Reviewed-by: Peter Kästle <peter@piie.net>
Acked-by: Hans de Goede <hdegoede@redhat.com>
Link: https://lore.kernel.org/r/20201216220337.839878-3-daniel.lezcano@linaro.org
---
drivers/platform/x86/acerhdf.c | 3 ++-
drivers/thermal/da9062-thermal.c | 4 ++--
drivers/thermal/gov_power_allocator.c | 2 +-
drivers/thermal/thermal_core.c | 4 +---
drivers/thermal/ti-soc-thermal/ti-thermal-common.c | 6 ++++--
include/linux/thermal.h | 7 -------
6 files changed, 10 insertions(+), 16 deletions(-)
diff --git a/drivers/platform/x86/acerhdf.c b/drivers/platform/x86/acerhdf.c
index b6aa6e5..6b8b3ab 100644
--- a/drivers/platform/x86/acerhdf.c
+++ b/drivers/platform/x86/acerhdf.c
@@ -336,7 +336,8 @@ static void acerhdf_check_param(struct thermal_zone_device *thermal)
pr_notice("interval changed to: %d\n", interval);
if (thermal)
- thermal->polling_delay = interval*1000;
+ thermal->polling_delay_jiffies =
+ round_jiffies(msecs_to_jiffies(interval * 1000));
prev_interval = interval;
}
diff --git a/drivers/thermal/da9062-thermal.c b/drivers/thermal/da9062-thermal.c
index 4d74994..180edec 100644
--- a/drivers/thermal/da9062-thermal.c
+++ b/drivers/thermal/da9062-thermal.c
@@ -95,7 +95,7 @@ static void da9062_thermal_poll_on(struct work_struct *work)
thermal_zone_device_update(thermal->zone,
THERMAL_EVENT_UNSPECIFIED);
- delay = msecs_to_jiffies(thermal->zone->passive_delay);
+ delay = thermal->zone->passive_delay_jiffies;
queue_delayed_work(system_freezable_wq, &thermal->work, delay);
return;
}
@@ -245,7 +245,7 @@ static int da9062_thermal_probe(struct platform_device *pdev)
dev_dbg(&pdev->dev,
"TJUNC temperature polling period set at %d ms\n",
- thermal->zone->passive_delay);
+ jiffies_to_msecs(thermal->zone->passive_delay_jiffies));
ret = platform_get_irq_byname(pdev, "THERMAL");
if (ret < 0) {
diff --git a/drivers/thermal/gov_power_allocator.c b/drivers/thermal/gov_power_allocator.c
index 7a4170a..f8c3d1e 100644
--- a/drivers/thermal/gov_power_allocator.c
+++ b/drivers/thermal/gov_power_allocator.c
@@ -258,7 +258,7 @@ static u32 pid_controller(struct thermal_zone_device *tz,
* power being applied, slowing down the controller)
*/
d = mul_frac(tz->tzp->k_d, err - params->prev_err);
- d = div_frac(d, tz->passive_delay);
+ d = div_frac(d, jiffies_to_msecs(tz->passive_delay_jiffies));
params->prev_err = err;
power_range = p + i + d;
diff --git a/drivers/thermal/thermal_core.c b/drivers/thermal/thermal_core.c
index d96c515..b261544 100644
--- a/drivers/thermal/thermal_core.c
+++ b/drivers/thermal/thermal_core.c
@@ -313,7 +313,7 @@ static void monitor_thermal_zone(struct thermal_zone_device *tz)
if (!stop && tz->passive)
thermal_zone_device_set_polling(tz, tz->passive_delay_jiffies);
- else if (!stop && tz->polling_delay)
+ else if (!stop && tz->polling_delay_jiffies)
thermal_zone_device_set_polling(tz, tz->polling_delay_jiffies);
else
thermal_zone_device_set_polling(tz, 0);
@@ -1307,8 +1307,6 @@ thermal_zone_device_register(const char *type, int trips, int mask,
tz->device.class = &thermal_class;
tz->devdata = devdata;
tz->trips = trips;
- tz->passive_delay = passive_delay;
- tz->polling_delay = polling_delay;
thermal_set_delay_jiffies(&tz->passive_delay_jiffies, passive_delay);
thermal_set_delay_jiffies(&tz->polling_delay_jiffies, polling_delay);
diff --git a/drivers/thermal/ti-soc-thermal/ti-thermal-common.c b/drivers/thermal/ti-soc-thermal/ti-thermal-common.c
index 2ce4b19..f843758 100644
--- a/drivers/thermal/ti-soc-thermal/ti-thermal-common.c
+++ b/drivers/thermal/ti-soc-thermal/ti-thermal-common.c
@@ -166,6 +166,7 @@ int ti_thermal_expose_sensor(struct ti_bandgap *bgp, int id,
char *domain)
{
struct ti_thermal_data *data;
+ int interval;
data = ti_bandgap_get_sensor_data(bgp, id);
@@ -183,9 +184,10 @@ int ti_thermal_expose_sensor(struct ti_bandgap *bgp, int id,
return PTR_ERR(data->ti_thermal);
}
+ interval = jiffies_to_msecs(data->ti_thermal->polling_delay_jiffies);
+
ti_bandgap_set_sensor_data(bgp, id, data);
- ti_bandgap_write_update_interval(bgp, data->sensor_id,
- data->ti_thermal->polling_delay);
+ ti_bandgap_write_update_interval(bgp, data->sensor_id, interval);
return 0;
}
diff --git a/include/linux/thermal.h b/include/linux/thermal.h
index d1b82c7..1e68640 100644
--- a/include/linux/thermal.h
+++ b/include/linux/thermal.h
@@ -115,13 +115,8 @@ struct thermal_cooling_device {
* @devdata: private pointer for device private data
* @trips: number of trip points the thermal zone supports
* @trips_disabled; bitmap for disabled trips
- * @passive_delay: number of milliseconds to wait between polls when
- * performing passive cooling.
* @passive_delay_jiffies: number of jiffies to wait between polls when
* performing passive cooling.
- * @polling_delay: number of milliseconds to wait between polls when
- * checking whether trip points have been crossed (0 for
- * interrupt driven systems)
* @polling_delay_jiffies: number of jiffies to wait between polls when
* checking whether trip points have been crossed (0 for
* interrupt driven systems)
@@ -162,8 +157,6 @@ struct thermal_zone_device {
unsigned long trips_disabled; /* bitmap for disabled trips */
unsigned long passive_delay_jiffies;
unsigned long polling_delay_jiffies;
- int passive_delay;
- int polling_delay;
int temperature;
int last_temperature;
int emul_temperature;
^ permalink raw reply related [flat|nested] 18+ messages in thread