From: Zhang Rui <rui.zhang@intel.com>
To: Durgadoss R <durgadoss.r@intel.com>
Cc: lenb@kernel.org, linux-acpi@vger.kernel.org, eduardo.valentin@ti.com
Subject: Re: [PATCHv4 07/15] Thermal: Add a policy sysfs attribute
Date: Fri, 21 Sep 2012 16:07:07 +0800 [thread overview]
Message-ID: <1348214827.10877.138.camel@rui.sh.intel.com> (raw)
In-Reply-To: <1347946506-18449-8-git-send-email-durgadoss.r@intel.com>
On 二, 2012-09-18 at 11:04 +0530, Durgadoss R wrote:
> This patch adds a policy sysfs attribute to a thermal zone.
> This attribute denotes the throttling governor used for the
> zone. This is a RW attribute.
>
> Signed-off-by: Durgadoss R <durgadoss.r@intel.com>
> ---
> drivers/thermal/thermal_sys.c | 42 ++++++++++++++++++++++++++++++++++++++---
> 1 file changed, 39 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/thermal/thermal_sys.c b/drivers/thermal/thermal_sys.c
> index a67c6c0..0948a60 100644
> --- a/drivers/thermal/thermal_sys.c
> +++ b/drivers/thermal/thermal_sys.c
> @@ -454,10 +454,41 @@ passive_show(struct device *dev, struct device_attribute *attr,
> return sprintf(buf, "%d\n", tz->forced_passive);
> }
>
> +static ssize_t
> +policy_store(struct device *dev, struct device_attribute *attr,
> + const char *buf, size_t count)
> +{
> + int ret = -EINVAL;
> + struct thermal_zone_device *tz = to_thermal_zone(dev);
> + struct thermal_governor *gov;
> +
> + mutex_lock(&thermal_governor_lock);
> +
> + gov = __find_governor(buf);
> + if (!gov)
> + goto exit;
> +
> + tz->governor = gov;
> + ret = count;
> +
> +exit:
> + mutex_unlock(&thermal_governor_lock);
> + return ret;
> +}
> +
> +static ssize_t
> +policy_show(struct device *dev, struct device_attribute *devattr, char *buf)
> +{
> + struct thermal_zone_device *tz = to_thermal_zone(dev);
> +
> + return sprintf(buf, "%s\n", tz->governor->name);
> +}
> +
we should introduce an API for platform thermal drivers to switch their
policy.
say they may want to switch to "userspace" to disable the kernel thermal
control.
and policy_store should invoke that function directly.
BTW, IMO, deactiving all the thermal_instances and updating the cooling
devices when a thermal zone switches to "userspace" governor is
reasonable.
thanks,
rui
> static DEVICE_ATTR(type, 0444, type_show, NULL);
> static DEVICE_ATTR(temp, 0444, temp_show, NULL);
> static DEVICE_ATTR(mode, 0644, mode_show, mode_store);
> static DEVICE_ATTR(passive, S_IRUGO | S_IWUSR, passive_show, passive_store);
> +static DEVICE_ATTR(policy, S_IRUGO | S_IWUSR, policy_show, policy_store);
>
> /* sys I/F for cooling device */
> #define to_cooling_device(_dev) \
> @@ -1512,10 +1543,14 @@ struct thermal_zone_device *thermal_zone_device_register(const char *type,
> passive = 1;
> }
>
> - if (!passive)
> - result = device_create_file(&tz->device,
> - &dev_attr_passive);
> + if (!passive) {
> + result = device_create_file(&tz->device, &dev_attr_passive);
> + if (result)
> + goto unregister;
> + }
>
> + /* Create policy attribute */
> + result = device_create_file(&tz->device, &dev_attr_policy);
> if (result)
> goto unregister;
>
> @@ -1591,6 +1626,7 @@ void thermal_zone_device_unregister(struct thermal_zone_device *tz)
> device_remove_file(&tz->device, &dev_attr_temp);
> if (tz->ops->get_mode)
> device_remove_file(&tz->device, &dev_attr_mode);
> + device_remove_file(&tz->device, &dev_attr_policy);
> remove_trip_attrs(tz);
> tz->governor = NULL;
>
--
To unsubscribe from this list: send the line "unsubscribe linux-acpi" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
next prev parent reply other threads:[~2012-09-21 8:06 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-09-18 5:34 [PATCHv4 00/15] Thermal_framework_enhancements Durgadoss R
2012-09-18 5:34 ` [PATCHv4 01/15] Thermal: Refactor thermal.h file Durgadoss R
2012-09-18 5:34 ` [PATCHv4 02/15] Thermal: Move thermal_instance to thermal_core.h Durgadoss R
2012-09-18 5:34 ` [PATCHv4 03/15] Thermal: Add get trend, get instance API's to thermal_sys Durgadoss R
2012-09-18 5:34 ` [PATCHv4 04/15] Thermal: Add platform level information to thermal.h Durgadoss R
2012-09-21 7:12 ` Zhang Rui
2012-09-21 8:07 ` R, Durgadoss
2012-09-24 5:43 ` Zhang Rui
2012-09-18 5:34 ` [PATCHv4 05/15] Thermal: Pass zone parameters as argument to tzd_register Durgadoss R
2012-09-18 5:34 ` [PATCHv4 06/15] Thermal: Add thermal governor registration APIs Durgadoss R
2012-09-18 5:34 ` [PATCHv4 07/15] Thermal: Add a policy sysfs attribute Durgadoss R
2012-09-21 8:07 ` Zhang Rui [this message]
2012-09-21 8:09 ` R, Durgadoss
2012-09-24 5:44 ` Zhang Rui
2012-09-18 5:34 ` [PATCHv4 08/15] Thermal: Update binding logic based on platform data Durgadoss R
2012-09-18 5:35 ` [PATCHv4 09/15] Thermal: Make thermal_cdev_update as a global function Durgadoss R
2012-09-18 5:35 ` [PATCHv4 10/15] Thermal: Introduce fair_share thermal governor Durgadoss R
2012-09-18 5:35 ` [PATCHv4 11/15] Thermal: Introduce a step_wise " Durgadoss R
2012-09-18 7:13 ` Zhang Rui
2012-09-18 8:11 ` R, Durgadoss
2012-09-18 8:22 ` Zhang Rui
2012-09-18 8:32 ` R, Durgadoss
2012-09-18 5:35 ` [PATCHv4 12/15] Thermal: Add a thermal notifier for user space Durgadoss R
2012-09-18 5:35 ` [PATCHv4 13/15] Thermal: Remove throttling logic out of thermal_sys.c Durgadoss R
2012-09-18 5:35 ` [PATCHv4 14/15] Thermal: Add a notification API Durgadoss R
2012-09-18 5:35 ` [PATCHv4 15/15] Thermal: Add documentation for platform layer data Durgadoss R
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=1348214827.10877.138.camel@rui.sh.intel.com \
--to=rui.zhang@intel.com \
--cc=durgadoss.r@intel.com \
--cc=eduardo.valentin@ti.com \
--cc=lenb@kernel.org \
--cc=linux-acpi@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.