All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Zhang, Rui" <rui.zhang@intel.com>
To: "edubezval@gmail.com" <edubezval@gmail.com>
Cc: "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"linux-pm@vger.kernel.org" <linux-pm@vger.kernel.org>
Subject: Re: [PATCH 20/31] thermal: core: introduce thermal_helpers.c
Date: Tue, 17 May 2016 13:20:17 +0000	[thread overview]
Message-ID: <1463491216.29980.36.camel@rzhang1-mobl4> (raw)
In-Reply-To: <1462341765-13268-21-git-send-email-edubezval@gmail.com>

$checkpatch.pl 20-31-thermal-core-introduce-thermal_helpers.c.patch 

WARNING: added, moved or deleted file(s), does MAINTAINERS need
updating?
#187: 
new file mode 100644

ERROR: trailing whitespace
#302: FILE: drivers/thermal/thermal_helpers.c:111:
+ $

WARNING: please, no spaces at the start of a line
#302: FILE: drivers/thermal/thermal_helpers.c:111:
+ $

total: 1 errors, 2 warnings, 287 lines checked

NOTE: Whitespace errors detected.
      You may wish to use scripts/cleanpatch or scripts/cleanfile

20-31-thermal-core-introduce-thermal_helpers.c.patch has style problems,
please review.

NOTE: If any of the errors are false positives, please report
      them to the maintainer, see CHECKPATCH in MAINTAINERS.

Please remove these spaces.
BTW, there are also some warnings in the other patches, please fix the
checkpatch warnings/errors.

thanks,
rui
On Tue, 2016-05-03 at 23:02 -0700, Eduardo Valentin wrote:
> Here we have a simple code organization. This patch moves
> functions that do not need to handle thermal core internal
> data structure to thermal_helpers.c file.
> 
> Cc: Zhang Rui <rui.zhang@intel.com>
> Cc: linux-pm@vger.kernel.org
> Cc: linux-kernel@vger.kernel.org
> Signed-off-by: Eduardo Valentin <edubezval@gmail.com>
> ---
>  drivers/thermal/Makefile          |   3 +-
>  drivers/thermal/thermal_core.c    | 117 -------------------------------
>  drivers/thermal/thermal_helpers.c | 143 ++++++++++++++++++++++++++++++++++++++
>  3 files changed, 145 insertions(+), 118 deletions(-)
>  create mode 100644 drivers/thermal/thermal_helpers.c
> 
> diff --git a/drivers/thermal/Makefile b/drivers/thermal/Makefile
> index 95ccb75..cded802 100644
> --- a/drivers/thermal/Makefile
> +++ b/drivers/thermal/Makefile
> @@ -3,7 +3,8 @@
>  #
>  
>  obj-$(CONFIG_THERMAL)		+= thermal_sys.o
> -thermal_sys-y			+= thermal_core.o thermal_sysfs.o
> +thermal_sys-y			+= thermal_core.o thermal_sysfs.o \
> +					thermal_helpers.o
>  
>  # interface to/from other layers providing sensors
>  thermal_sys-$(CONFIG_THERMAL_HWMON)		+= thermal_hwmon.o
> diff --git a/drivers/thermal/thermal_core.c b/drivers/thermal/thermal_core.c
> index 846449c..aa2edec 100644
> --- a/drivers/thermal/thermal_core.c
> +++ b/drivers/thermal/thermal_core.c
> @@ -230,47 +230,6 @@ static void release_idr(struct idr *idr, struct mutex *lock, int id)
>  		mutex_unlock(lock);
>  }
>  
> -int get_tz_trend(struct thermal_zone_device *tz, int trip)
> -{
> -	enum thermal_trend trend;
> -
> -	if (tz->emul_temperature || !tz->ops->get_trend ||
> -	    tz->ops->get_trend(tz, trip, &trend)) {
> -		if (tz->temperature > tz->last_temperature)
> -			trend = THERMAL_TREND_RAISING;
> -		else if (tz->temperature < tz->last_temperature)
> -			trend = THERMAL_TREND_DROPPING;
> -		else
> -			trend = THERMAL_TREND_STABLE;
> -	}
> -
> -	return trend;
> -}
> -EXPORT_SYMBOL(get_tz_trend);
> -
> -struct thermal_instance *get_thermal_instance(struct thermal_zone_device *tz,
> -			struct thermal_cooling_device *cdev, int trip)
> -{
> -	struct thermal_instance *pos = NULL;
> -	struct thermal_instance *target_instance = NULL;
> -
> -	mutex_lock(&tz->lock);
> -	mutex_lock(&cdev->lock);
> -
> -	list_for_each_entry(pos, &tz->thermal_instances, tz_node) {
> -		if (pos->tz == tz && pos->trip == trip && pos->cdev == cdev) {
> -			target_instance = pos;
> -			break;
> -		}
> -	}
> -
> -	mutex_unlock(&cdev->lock);
> -	mutex_unlock(&tz->lock);
> -
> -	return target_instance;
> -}
> -EXPORT_SYMBOL(get_thermal_instance);
> -
>  static void print_bind_err_msg(struct thermal_zone_device *tz,
>  			struct thermal_cooling_device *cdev, int ret)
>  {
> @@ -471,55 +430,6 @@ static void handle_thermal_trip(struct thermal_zone_device *tz, int trip)
>  	monitor_thermal_zone(tz);
>  }
>  
> -/**
> - * thermal_zone_get_temp() - returns the temperature of a thermal zone
> - * @tz: a valid pointer to a struct thermal_zone_device
> - * @temp: a valid pointer to where to store the resulting temperature.
> - *
> - * When a valid thermal zone reference is passed, it will fetch its
> - * temperature and fill @temp.
> - *
> - * Return: On success returns 0, an error code otherwise
> - */
> -int thermal_zone_get_temp(struct thermal_zone_device *tz, int *temp)
> -{
> -	int ret = -EINVAL;
> -	int count;
> -	int crit_temp = INT_MAX;
> -	enum thermal_trip_type type;
> -
> -	if (!tz || IS_ERR(tz) || !tz->ops->get_temp)
> -		goto exit;
> -
> -	mutex_lock(&tz->lock);
> -
> -	ret = tz->ops->get_temp(tz, temp);
> -
> -	if (IS_ENABLED(CONFIG_THERMAL_EMULATION) && tz->emul_temperature) {
> -		for (count = 0; count < tz->trips; count++) {
> -			ret = tz->ops->get_trip_type(tz, count, &type);
> -			if (!ret && type == THERMAL_TRIP_CRITICAL) {
> -				ret = tz->ops->get_trip_temp(tz, count,
> -						&crit_temp);
> -				break;
> -			}
> -		}
> -
> -		/*
> -		 * Only allow emulating a temperature when the real temperature
> -		 * is below the critical temperature so that the emulation code
> -		 * cannot hide critical conditions.
> -		 */
> -		if (!ret && *temp < crit_temp)
> -			*temp = tz->emul_temperature;
> -	}
> - 
> -	mutex_unlock(&tz->lock);
> -exit:
> -	return ret;
> -}
> -EXPORT_SYMBOL_GPL(thermal_zone_get_temp);
> -
>  static void update_temperature(struct thermal_zone_device *tz)
>  {
>  	int temp, ret;
> @@ -1118,33 +1028,6 @@ void thermal_cooling_device_unregister(struct thermal_cooling_device *cdev)
>  }
>  EXPORT_SYMBOL_GPL(thermal_cooling_device_unregister);
>  
> -void thermal_cdev_update(struct thermal_cooling_device *cdev)
> -{
> -	struct thermal_instance *instance;
> -	unsigned long target = 0;
> -
> -	/* cooling device is updated*/
> -	if (cdev->updated)
> -		return;
> -
> -	mutex_lock(&cdev->lock);
> -	/* Make sure cdev enters the deepest cooling state */
> -	list_for_each_entry(instance, &cdev->thermal_instances, cdev_node) {
> -		dev_dbg(&cdev->device, "zone%d->target=%lu\n",
> -				instance->tz->id, instance->target);
> -		if (instance->target == THERMAL_NO_TARGET)
> -			continue;
> -		if (instance->target > target)
> -			target = instance->target;
> -	}
> -	mutex_unlock(&cdev->lock);
> -	cdev->ops->set_cur_state(cdev, target);
> -	cdev->updated = true;
> -	trace_cdev_update(cdev, target);
> -	dev_dbg(&cdev->device, "set to state %lu\n", target);
> -}
> -EXPORT_SYMBOL(thermal_cdev_update);
> -
>  /**
>   * thermal_notify_framework - Sensor drivers use this API to notify framework
>   * @tz:		thermal zone device
> diff --git a/drivers/thermal/thermal_helpers.c b/drivers/thermal/thermal_helpers.c
> new file mode 100644
> index 0000000..32f38e9
> --- /dev/null
> +++ b/drivers/thermal/thermal_helpers.c
> @@ -0,0 +1,143 @@
> +/*
> + *  thermal_helpers.c - helper functions to handle thermal devices
> + *
> + *  Copyright (C) 2016 Eduardo Valentin <edubezval@gmail.com>
> + *
> + *  Highly based on original thermal_core.c
> + *  Copyright (C) 2008 Intel Corp
> + *  Copyright (C) 2008 Zhang Rui <rui.zhang@intel.com>
> + *  Copyright (C) 2008 Sujith Thomas <sujith.thomas@intel.com>
> + *
> + *  This program is free software; you can redistribute it and/or modify
> + *  it under the terms of the GNU General Public License as published by
> + *  the Free Software Foundation; version 2 of the License.
> + */
> +
> +#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
> +
> +#include <linux/sysfs.h>
> +#include <linux/device.h>
> +#include <linux/err.h>
> +#include <linux/slab.h>
> +#include <linux/string.h>
> +
> +#include <trace/events/thermal.h>
> +
> +#include "thermal_core.h"
> +
> +int get_tz_trend(struct thermal_zone_device *tz, int trip)
> +{
> +	enum thermal_trend trend;
> +
> +	if (tz->emul_temperature || !tz->ops->get_trend ||
> +	    tz->ops->get_trend(tz, trip, &trend)) {
> +		if (tz->temperature > tz->last_temperature)
> +			trend = THERMAL_TREND_RAISING;
> +		else if (tz->temperature < tz->last_temperature)
> +			trend = THERMAL_TREND_DROPPING;
> +		else
> +			trend = THERMAL_TREND_STABLE;
> +	}
> +
> +	return trend;
> +}
> +EXPORT_SYMBOL(get_tz_trend);
> +
> +struct thermal_instance *get_thermal_instance(struct thermal_zone_device *tz,
> +			struct thermal_cooling_device *cdev, int trip)
> +{
> +	struct thermal_instance *pos = NULL;
> +	struct thermal_instance *target_instance = NULL;
> +
> +	mutex_lock(&tz->lock);
> +	mutex_lock(&cdev->lock);
> +
> +	list_for_each_entry(pos, &tz->thermal_instances, tz_node) {
> +		if (pos->tz == tz && pos->trip == trip && pos->cdev == cdev) {
> +			target_instance = pos;
> +			break;
> +		}
> +	}
> +
> +	mutex_unlock(&cdev->lock);
> +	mutex_unlock(&tz->lock);
> +
> +	return target_instance;
> +}
> +EXPORT_SYMBOL(get_thermal_instance);
> +
> +/**
> + * thermal_zone_get_temp() - returns the temperature of a thermal zone
> + * @tz: a valid pointer to a struct thermal_zone_device
> + * @temp: a valid pointer to where to store the resulting temperature.
> + *
> + * When a valid thermal zone reference is passed, it will fetch its
> + * temperature and fill @temp.
> + *
> + * Return: On success returns 0, an error code otherwise
> + */
> +int thermal_zone_get_temp(struct thermal_zone_device *tz, int *temp)
> +{
> +	int ret = -EINVAL;
> +	int count;
> +	int crit_temp = INT_MAX;
> +	enum thermal_trip_type type;
> +
> +	if (!tz || IS_ERR(tz) || !tz->ops->get_temp)
> +		goto exit;
> +
> +	mutex_lock(&tz->lock);
> +
> +	ret = tz->ops->get_temp(tz, temp);
> +
> +	if (IS_ENABLED(CONFIG_THERMAL_EMULATION) && tz->emul_temperature) {
> +		for (count = 0; count < tz->trips; count++) {
> +			ret = tz->ops->get_trip_type(tz, count, &type);
> +			if (!ret && type == THERMAL_TRIP_CRITICAL) {
> +				ret = tz->ops->get_trip_temp(tz, count,
> +						&crit_temp);
> +				break;
> +			}
> +		}
> +
> +		/*
> +		 * Only allow emulating a temperature when the real temperature
> +		 * is below the critical temperature so that the emulation code
> +		 * cannot hide critical conditions.
> +		 */
> +		if (!ret && *temp < crit_temp)
> +			*temp = tz->emul_temperature;
> +	}
> + 
> +	mutex_unlock(&tz->lock);
> +exit:
> +	return ret;
> +}
> +EXPORT_SYMBOL_GPL(thermal_zone_get_temp);
> +
> +void thermal_cdev_update(struct thermal_cooling_device *cdev)
> +{
> +	struct thermal_instance *instance;
> +	unsigned long target = 0;
> +
> +	/* cooling device is updated*/
> +	if (cdev->updated)
> +		return;
> +
> +	mutex_lock(&cdev->lock);
> +	/* Make sure cdev enters the deepest cooling state */
> +	list_for_each_entry(instance, &cdev->thermal_instances, cdev_node) {
> +		dev_dbg(&cdev->device, "zone%d->target=%lu\n",
> +				instance->tz->id, instance->target);
> +		if (instance->target == THERMAL_NO_TARGET)
> +			continue;
> +		if (instance->target > target)
> +			target = instance->target;
> +	}
> +	mutex_unlock(&cdev->lock);
> +	cdev->ops->set_cur_state(cdev, target);
> +	cdev->updated = true;
> +	trace_cdev_update(cdev, target);
> +	dev_dbg(&cdev->device, "set to state %lu\n", target);
> +}
> +EXPORT_SYMBOL(thermal_cdev_update);

  reply	other threads:[~2016-05-17 13:20 UTC|newest]

Thread overview: 35+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-05-04  6:02 [PATCH 00/31] thermal: reorganizing thermal core Eduardo Valentin
2016-05-04  6:02 ` [PATCH 01/31] thermal: core: prevent zones with no types to be registered Eduardo Valentin
2016-05-04  6:02 ` [PATCH 02/31] thermal: core: group thermal_zone DEVICE_ATTR's declarations Eduardo Valentin
2016-05-04  6:02 ` [PATCH 03/31] thermal: core: group device_create_file() calls that are always created Eduardo Valentin
2016-05-04  6:02 ` [PATCH 04/31] thermal: core: use dev.groups to manage always present tz attributes Eduardo Valentin
2016-05-04  6:02 ` [PATCH 05/31] thermal: core: move emul_temp creation to tz->device.groups Eduardo Valentin
2016-05-04  6:02 ` [PATCH 06/31] thermal: core: move mode attribute " Eduardo Valentin
2016-05-04  6:02 ` [PATCH 07/31] thermal: core: move passive attr " Eduardo Valentin
2016-05-04  6:02 ` [PATCH 08/31] thermal: core: move power actor code out of sysfs I/F section Eduardo Valentin
2016-05-04  6:02 ` [PATCH 09/31] thermal: core: move the trip attrs to the tz " Eduardo Valentin
2016-05-04  6:02 ` [PATCH 10/31] thermal: core: create tz->device.groups dynamically Eduardo Valentin
2016-05-04  6:02 ` [PATCH 11/31] thermal: core: move trips attributes to tz->device.groups Eduardo Valentin
2016-05-04  6:02 ` [PATCH 12/31] thermal: core: remove unnecessary device_remove() calls Eduardo Valentin
2016-05-04  6:02 ` [PATCH 13/31] thermal: core: split passive_store Eduardo Valentin
2016-05-04  6:02 ` [PATCH 14/31] thermal: core: split policy_store Eduardo Valentin
2016-05-04  6:02 ` [PATCH 15/31] thermal: core: split available_policies_show() Eduardo Valentin
2016-05-04  6:02 ` [PATCH 16/31] thermal: core: move to_thermal_zone() macro to header file Eduardo Valentin
2016-05-04  6:02 ` [PATCH 17/31] thermal: core: move thermal_zone sysfs to thermal_sysfs.c Eduardo Valentin
2016-05-04  6:02 ` [PATCH 18/31] thermal: core: move to_cooling_device macro to header file Eduardo Valentin
2016-05-04  6:02 ` [PATCH 19/31] thermal: core: move cooling device sysfs to thermal_sysfs.c Eduardo Valentin
2016-05-04  6:02 ` [PATCH 20/31] thermal: core: introduce thermal_helpers.c Eduardo Valentin
2016-05-17 13:20   ` Zhang, Rui [this message]
2016-05-17 14:40     ` Eduardo Valentin
2016-05-30 16:05       ` Eduardo Valentin
2016-05-04  6:02 ` [PATCH 21/31] thermal: core: group functions related to governor handling Eduardo Valentin
2016-05-04  6:02 ` [PATCH 22/31] thermal: core: move idr handling to device management section Eduardo Valentin
2016-05-04  6:02 ` [PATCH 23/31] thermal: core: move __unbind() helper to where it is used Eduardo Valentin
2016-05-04  6:02 ` [PATCH 24/31] thermal: core: move bind_cdev() " Eduardo Valentin
2016-05-04  6:02 ` [PATCH 25/31] thermal: core: move bind_tz() " Eduardo Valentin
2016-05-04  6:02 ` [PATCH 26/31] thermal: core: move __bind() " Eduardo Valentin
2016-05-04  6:02 ` [PATCH 27/31] thermal: core: add inline to print_bind_err_msg() Eduardo Valentin
2016-05-04  6:02 ` [PATCH 28/31] thermal: core: move notify to the zone update section Eduardo Valentin
2016-05-04  6:02 ` [PATCH 29/31] thermal: core: add a comment describing the main update loop Eduardo Valentin
2016-05-04  6:02 ` [PATCH 30/31] thermal: core: add a comment describing the power actor section Eduardo Valentin
2016-05-04  6:02 ` [PATCH 31/31] thermal: core: add a comment describing the device management section Eduardo Valentin

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1463491216.29980.36.camel@rzhang1-mobl4 \
    --to=rui.zhang@intel.com \
    --cc=edubezval@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pm@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.