Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 374559
b: refs/heads/master
c: 63c4d91
h: refs/heads/master
i:
  374557: 72e7a45
  374555: 54f1e62
  374551: 07d7778
  374543: 137e07e
  374527: b49bcd9
v: v3
  • Loading branch information
Eduardo Valentin authored and Zhang Rui committed Apr 15, 2013
1 parent c8bed9a commit 6a15041
Show file tree
Hide file tree
Showing 4 changed files with 42 additions and 3 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 4f89038f177462dbd2fd911297fd004226176db7
refs/heads/master: 63c4d919cf66b1b3ffa7861bddb50a697914af5b
4 changes: 2 additions & 2 deletions trunk/drivers/thermal/cpu_cooling.c
Original file line number Diff line number Diff line change
Expand Up @@ -303,12 +303,12 @@ static int cpufreq_get_max_state(struct thermal_cooling_device *cdev,
struct cpufreq_cooling_device *cpufreq_device = cdev->devdata;
struct cpumask *mask = &cpufreq_device->allowed_cpus;
unsigned int cpu;
unsigned int count = 0;
unsigned long count = 0;
int ret;

cpu = cpumask_any(mask);

ret = get_property(cpu, 0, &count, GET_MAXL);
ret = get_property(cpu, 0, (unsigned int *)&count, GET_MAXL);

if (count > 0)
*state = count;
Expand Down
38 changes: 38 additions & 0 deletions trunk/drivers/thermal/thermal_core.c
Original file line number Diff line number Diff line change
Expand Up @@ -1754,6 +1754,44 @@ void thermal_zone_device_unregister(struct thermal_zone_device *tz)
}
EXPORT_SYMBOL(thermal_zone_device_unregister);

/**
* thermal_zone_get_zone_by_name() - search for a zone and returns its ref
* @name: thermal zone name to fetch the temperature
*
* When only one zone is found with the passed name, returns a reference to it.
*
* Return: On success returns a reference to an unique thermal zone with
* matching name equals to @name, an ERR_PTR otherwise (-EINVAL for invalid
* paramenters, -ENODEV for not found and -EEXIST for multiple matches).
*/
struct thermal_zone_device *thermal_zone_get_zone_by_name(const char *name)
{
struct thermal_zone_device *pos = NULL, *ref = ERR_PTR(-EINVAL);
unsigned int found = 0;

if (!name)
goto exit;

mutex_lock(&thermal_list_lock);
list_for_each_entry(pos, &thermal_tz_list, node)
if (!strnicmp(name, pos->type, THERMAL_NAME_LENGTH)) {
found++;
ref = pos;
}
mutex_unlock(&thermal_list_lock);

/* nothing has been found, thus an error code for it */
if (found == 0)
ref = ERR_PTR(-ENODEV);
else if (found > 1)
/* Success only when an unique zone is found */
ref = ERR_PTR(-EEXIST);

exit:
return ref;
}
EXPORT_SYMBOL_GPL(thermal_zone_get_zone_by_name);

#ifdef CONFIG_NET
static struct genl_family thermal_event_genl_family = {
.id = GENL_ID_GENERATE,
Expand Down
1 change: 1 addition & 0 deletions trunk/include/linux/thermal.h
Original file line number Diff line number Diff line change
Expand Up @@ -239,6 +239,7 @@ void thermal_zone_device_update(struct thermal_zone_device *);
struct thermal_cooling_device *thermal_cooling_device_register(char *, void *,
const struct thermal_cooling_device_ops *);
void thermal_cooling_device_unregister(struct thermal_cooling_device *);
struct thermal_zone_device *thermal_zone_get_zone_by_name(const char *name);

int get_tz_trend(struct thermal_zone_device *, int);
struct thermal_instance *get_thermal_instance(struct thermal_zone_device *,
Expand Down

0 comments on commit 6a15041

Please sign in to comment.