Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 337847
b: refs/heads/master
c: 5035d48
h: refs/heads/master
i:
  337845: 28c9151
  337843: a845af2
  337839: 3d3666e
v: v3
  • Loading branch information
Eduardo Valentin authored and Greg Kroah-Hartman committed Nov 13, 2012
1 parent b60863d commit 99fd1c5
Show file tree
Hide file tree
Showing 3 changed files with 4 additions and 70 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: 5041949117e3c1a0b7c21c3b176ca18b202d4027
refs/heads/master: 5035d48dd02f982b3034ba755d5c4d153b2fc6df
9 changes: 0 additions & 9 deletions trunk/drivers/staging/omap-thermal/omap-bandgap.h
Original file line number Diff line number Diff line change
Expand Up @@ -335,14 +335,6 @@ struct temp_sensor_regval {
u32 tshut_threshold;
};

/**
* struct thermal_cooling_conf - description on how to cool a thermal zone
* @freq_clip_count: size of freq_data
*/
struct thermal_cooling_conf {
int freq_clip_count;
};

/**
* struct omap_temp_sensor - bandgap temperature sensor platform data
* @ts_data: pointer to struct with thresholds, limits of temperature sensor
Expand All @@ -365,7 +357,6 @@ struct omap_temp_sensor {
struct temp_sensor_registers *registers;
struct temp_sensor_regval regval;
char *domain;
struct thermal_cooling_conf cooling_data;
/* for hotspot extrapolation */
const int slope;
const int constant;
Expand Down
63 changes: 3 additions & 60 deletions trunk/drivers/staging/omap-thermal/omap-thermal-common.c
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@
#include <linux/workqueue.h>
#include <linux/thermal.h>
#include <linux/cpufreq.h>
#include <linux/cpumask.h>
#include <linux/cpu_cooling.h>

#include "omap-thermal.h"
Expand Down Expand Up @@ -112,7 +113,7 @@ static int omap_thermal_bind(struct thermal_zone_device *thermal,
struct thermal_cooling_device *cdev)
{
struct omap_thermal_data *data = thermal->devdata;
int max, id;
int id;

if (IS_ERR_OR_NULL(data))
return -ENODEV;
Expand All @@ -122,7 +123,6 @@ static int omap_thermal_bind(struct thermal_zone_device *thermal,
return 0;

id = data->sensor_id;
max = data->bg_ptr->conf->sensors[id].cooling_data.freq_clip_count;

/* TODO: bind with min and max states */
/* Simple thing, two trips, one passive another critical */
Expand Down Expand Up @@ -304,58 +304,9 @@ int omap_thermal_report_sensor_temperature(struct omap_bandgap *bg_ptr, int id)
return 0;
}

static int omap_thermal_build_cpufreq_clip(struct omap_bandgap *bg_ptr,
struct freq_clip_table **tab_ptr,
int *tab_size)
{
struct cpufreq_frequency_table *freq_table;
struct freq_clip_table *tab;
int i, count = 0;

freq_table = cpufreq_frequency_get_table(0);
if (IS_ERR_OR_NULL(freq_table)) {
dev_err(bg_ptr->dev,
"%s: failed to get cpufreq table (%p)\n",
__func__, freq_table);
return -EINVAL;
}

for (i = 0; freq_table[i].frequency != CPUFREQ_TABLE_END; i++) {
unsigned int freq = freq_table[i].frequency;
if (freq == CPUFREQ_ENTRY_INVALID)
continue;
count++;
}

tab = devm_kzalloc(bg_ptr->dev, sizeof(*tab) * count, GFP_KERNEL);
if (!tab) {
dev_err(bg_ptr->dev,
"%s: no memory available\n", __func__);
return -ENOMEM;
}

for (i = 0; freq_table[i].frequency != CPUFREQ_TABLE_END; i++) {
unsigned int freq = freq_table[i].frequency;

if (freq == CPUFREQ_ENTRY_INVALID)
continue;

tab[count - i - 1].freq_clip_max = freq;
tab[count - i - 1].temp_level = OMAP_TRIP_HOT;
tab[count - i - 1].mask_val = cpumask_of(0);
}

*tab_ptr = tab;
*tab_size = count;

return 0;
}

int omap_thermal_register_cpu_cooling(struct omap_bandgap *bg_ptr, int id)
{
struct omap_thermal_data *data;
struct freq_clip_table *tab_ptr;
int tab_size, ret;

data = omap_bandgap_get_sensor_data(bg_ptr, id);
if (!data)
Expand All @@ -364,21 +315,13 @@ int omap_thermal_register_cpu_cooling(struct omap_bandgap *bg_ptr, int id)
if (!data)
return -EINVAL;

ret = omap_thermal_build_cpufreq_clip(bg_ptr, &tab_ptr, &tab_size);
if (ret < 0) {
dev_err(bg_ptr->dev,
"%s: failed to build cpufreq clip table\n", __func__);
return ret;
}

/* Register cooling device */
data->cool_dev = cpufreq_cooling_register(tab_ptr, tab_size);
data->cool_dev = cpufreq_cooling_register(cpu_present_mask);
if (IS_ERR_OR_NULL(data->cool_dev)) {
dev_err(bg_ptr->dev,
"Failed to register cpufreq cooling device\n");
return PTR_ERR(data->cool_dev);
}
bg_ptr->conf->sensors[id].cooling_data.freq_clip_count = tab_size;
omap_bandgap_set_sensor_data(bg_ptr, id, data);

return 0;
Expand Down

0 comments on commit 99fd1c5

Please sign in to comment.