Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1409884
| From | Eduardo Valentin <edubezval@gmail.com> |
|---|---|
| Newsgroups | linux.kernel |
| Subject | [PATCHv4 07/48] thermal: core: move passive attr to tz->device.groups |
| Date | 2016-05-31 08:40 +0200 |
| Message-ID | <rELvk-7hB-37@gated-at.bofh.it> (permalink) |
| References | <rELbY-79h-11@gated-at.bofh.it> |
| Organization | linux.* mail to news gateway |
This patch moves the passive attribute to tz->device.groups. Moving the
passive attribute also requires a .is_visible() callback implementation
for its attribute group.
The logic behind the visibility of passive attribute is kept the same.
We only expose the passive attribute if the thermal driver has exposed
at least one passive trip point.
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/thermal_core.c | 42 +++++++++++++++++++++++++++++++++---------
1 file changed, 33 insertions(+), 9 deletions(-)
diff --git a/drivers/thermal/thermal_core.c b/drivers/thermal/thermal_core.c
index 19fea9e..efc190c 100644
--- a/drivers/thermal/thermal_core.c
+++ b/drivers/thermal/thermal_core.c
@@ -1056,9 +1056,42 @@ static struct attribute_group thermal_zone_mode_attribute_group = {
.is_visible = thermal_zone_mode_is_visible,
};
+/* We expose passive only if passive trips are present */
+static struct attribute *thermal_zone_passive_attrs[] = {
+ &dev_attr_passive.attr,
+ NULL,
+};
+
+static umode_t thermal_zone_passive_is_visible(struct kobject *kobj,
+ struct attribute *attr,
+ int attrno)
+{
+ struct device *dev = container_of(kobj, struct device, kobj);
+ struct thermal_zone_device *tz;
+ enum thermal_trip_type trip_type;
+ int count;
+
+ tz = container_of(dev, struct thermal_zone_device, device);
+
+ for (count = 0; count < tz->trips; count++) {
+ tz->ops->get_trip_type(tz, count, &trip_type);
+
+ if (trip_type == THERMAL_TRIP_PASSIVE)
+ return attr->mode;
+ }
+
+ return 0;
+}
+
+static struct attribute_group thermal_zone_passive_attribute_group = {
+ .attrs = thermal_zone_passive_attrs,
+ .is_visible = thermal_zone_passive_is_visible,
+};
+
static const struct attribute_group *thermal_zone_attribute_groups[] = {
&thermal_zone_attribute_group,
&thermal_zone_mode_attribute_group,
+ &thermal_zone_passive_attribute_group,
NULL
};
@@ -1843,7 +1876,6 @@ struct thermal_zone_device *thermal_zone_device_register(const char *type,
int trip_temp;
int result;
int count;
- int passive = 0;
struct thermal_governor *governor;
if (!type || strlen(type) == 0)
@@ -1904,8 +1936,6 @@ struct thermal_zone_device *thermal_zone_device_register(const char *type,
for (count = 0; count < trips; count++) {
if (tz->ops->get_trip_type(tz, count, &trip_type))
set_bit(count, &tz->trips_disabled);
- if (trip_type == THERMAL_TRIP_PASSIVE)
- passive = 1;
if (tz->ops->get_trip_temp(tz, count, &trip_temp))
set_bit(count, &tz->trips_disabled);
/* Check for bogus trip points */
@@ -1913,12 +1943,6 @@ struct thermal_zone_device *thermal_zone_device_register(const char *type,
set_bit(count, &tz->trips_disabled);
}
- if (!passive) {
- result = device_create_file(&tz->device, &dev_attr_passive);
- if (result)
- goto unregister;
- }
-
/* Update 'this' zone's governor information */
mutex_lock(&thermal_governor_lock);
--
2.1.4
Back to linux.kernel | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
[PATCHv4 00/48] thermal: reorganizing thermal core Eduardo Valentin <edubezval@gmail.com> - 2016-05-31 08:40 +0200 [PATCHv4 16/48] thermal: core: split passive_store Eduardo Valentin <edubezval@gmail.com> - 2016-05-31 08:40 +0200 [PATCHv4 08/48] thermal: core: improve power actor documentation Eduardo Valentin <edubezval@gmail.com> - 2016-05-31 08:40 +0200 [PATCHv4 03/48] thermal: core: group device_create_file() calls that are always created Eduardo Valentin <edubezval@gmail.com> - 2016-05-31 08:40 +0200 [PATCHv4 07/48] thermal: core: move passive attr to tz->device.groups Eduardo Valentin <edubezval@gmail.com> - 2016-05-31 08:40 +0200 [PATCHv4 09/48] thermal: core: move power actor code out of sysfs I/F section Eduardo Valentin <edubezval@gmail.com> - 2016-05-31 08:40 +0200 [PATCHv4 11/48] thermal: core: fix style on remove_trip_attrs() Eduardo Valentin <edubezval@gmail.com> - 2016-05-31 08:40 +0200 [PATCHv4 06/48] thermal: core: move mode attribute to tz->device.groups Eduardo Valentin <edubezval@gmail.com> - 2016-05-31 08:40 +0200 [PATCHv4 05/48] thermal: core: move emul_temp creation to tz->device.groups Eduardo Valentin <edubezval@gmail.com> - 2016-05-31 08:40 +0200 [PATCHv4 02/48] thermal: core: group thermal_zone DEVICE_ATTR's declarations Eduardo Valentin <edubezval@gmail.com> - 2016-05-31 08:40 +0200 Re: [PATCHv4 00/48] thermal: reorganizing thermal core Keerthy <a0393675@ti.com> - 2016-05-31 11:50 +0200
csiph-web