Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 325161
b: refs/heads/master
c: 04a4d10
h: refs/heads/master
i:
  325159: 382d471
v: v3
  • Loading branch information
Eduardo Valentin authored and Greg Kroah-Hartman committed Sep 11, 2012
1 parent 1860ba2 commit 6d46908
Show file tree
Hide file tree
Showing 3 changed files with 37 additions and 9 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: 765a1939a364d121e70b452c3df34c2af446f47a
refs/heads/master: 04a4d10d07b1017eadef721fcd5a3937e2e1be53
6 changes: 3 additions & 3 deletions trunk/drivers/staging/omap-thermal/omap-bandgap.c
Original file line number Diff line number Diff line change
Expand Up @@ -953,12 +953,12 @@ int __devinit omap_bandgap_probe(struct platform_device *pdev)
for (i = 0; i < bg_ptr->conf->sensor_count; i++) {
char *domain;

if (bg_ptr->conf->sensors[i].register_cooling)
bg_ptr->conf->sensors[i].register_cooling(bg_ptr, i);

domain = bg_ptr->conf->sensors[i].domain;
if (bg_ptr->conf->expose_sensor)
bg_ptr->conf->expose_sensor(bg_ptr, i, domain);

if (bg_ptr->conf->sensors[i].register_cooling)
bg_ptr->conf->sensors[i].register_cooling(bg_ptr, i);
}

/*
Expand Down
38 changes: 33 additions & 5 deletions trunk/drivers/staging/omap-thermal/omap-thermal-common.c
Original file line number Diff line number Diff line change
Expand Up @@ -77,10 +77,16 @@ static inline int omap_thermal_get_temp(struct thermal_zone_device *thermal,
unsigned long *temp)
{
struct omap_thermal_data *data = thermal->devdata;
struct omap_bandgap *bg_ptr = data->bg_ptr;
struct omap_temp_sensor *s = &bg_ptr->conf->sensors[data->sensor_id];
struct omap_bandgap *bg_ptr;
struct omap_temp_sensor *s;
int ret, tmp, pcb_temp, slope, constant;

if (!data)
return 0;

bg_ptr = data->bg_ptr;
s = &bg_ptr->conf->sensors[data->sensor_id];

ret = omap_bandgap_read_temperature(bg_ptr, data->sensor_id, &tmp);
if (ret)
return ret;
Expand Down Expand Up @@ -227,21 +233,37 @@ static struct thermal_zone_device_ops omap_thermal_ops = {
.get_crit_temp = omap_thermal_get_crit_temp,
};

int omap_thermal_expose_sensor(struct omap_bandgap *bg_ptr, int id,
char *domain)
static struct omap_thermal_data
*omap_thermal_build_data(struct omap_bandgap *bg_ptr, int id)
{
struct omap_thermal_data *data;

data = devm_kzalloc(bg_ptr->dev, sizeof(*data), GFP_KERNEL);
if (!data) {
dev_err(bg_ptr->dev, "kzalloc fail\n");
return -ENOMEM;
return NULL;
}
data->sensor_id = id;
data->bg_ptr = bg_ptr;
data->mode = THERMAL_DEVICE_ENABLED;
INIT_WORK(&data->thermal_wq, omap_thermal_work);

return data;
}

int omap_thermal_expose_sensor(struct omap_bandgap *bg_ptr, int id,
char *domain)
{
struct omap_thermal_pdata pdata;

data = omap_bandgap_get_sensor_data(bg_ptr, id);

if (!data)
data = omap_thermal_build_pdata(bg_ptr, id);

if (!data)
return -EINVAL;

/* TODO: remove TC1 TC2 */
/* Create thermal zone */
data->omap_thermal = thermal_zone_device_register(domain,
Expand Down Expand Up @@ -335,6 +357,11 @@ int omap_thermal_register_cpu_cooling(struct omap_bandgap *bg_ptr, int id)
int tab_size, ret;

data = omap_bandgap_get_sensor_data(bg_ptr, id);
if (!data)
data = omap_thermal_build_pdata(bg_ptr, id);

if (!data)
return -EINVAL;

ret = omap_thermal_build_cpufreq_clip(bg_ptr, &tab_ptr, &tab_size);
if (ret < 0) {
Expand All @@ -351,6 +378,7 @@ int omap_thermal_register_cpu_cooling(struct omap_bandgap *bg_ptr, int id)
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 6d46908

Please sign in to comment.