* [PATCH 0/5] staging: omap-thermal fixes
@ 2012-11-13 15:43 Eduardo Valentin
2012-11-13 15:43 ` [PATCH 1/5] staging: omap-thermal: fix compilation Eduardo Valentin
` (5 more replies)
0 siblings, 6 replies; 7+ messages in thread
From: Eduardo Valentin @ 2012-11-13 15:43 UTC (permalink / raw)
To: gregkh; +Cc: b-cousson, devel, linux-omap, linux-kernel, Eduardo Valentin
Hello Greg,
Several compilation fixes and a couple of debugging prints
added to the omap-thermal driver under staging area.
Patches are also available here:
git@gitorious.org:thermal-framework/thermal-framework.git thermal_work/omap/omap-thermal-fixes
Cheers,
Eduardo Valentin (4):
staging: omap-thermal: fix compilation
staging: omap-thermal: remove platform data nomenclature
staging: omap-thermal: remove freq_clip table
staging: omap-thermal: add IRQ debugging messaging
Radhesh Fadnis (1):
staging: omap-thermal: fix context restore function
drivers/staging/omap-thermal/omap-bandgap.c | 63 ++++++++----------
drivers/staging/omap-thermal/omap-bandgap.h | 9 ---
drivers/staging/omap-thermal/omap-thermal-common.c | 69 ++------------------
3 files changed, 34 insertions(+), 107 deletions(-)
--
1.7.7.1.488.ge8e1c
^ permalink raw reply [flat|nested] 7+ messages in thread
* [PATCH 1/5] staging: omap-thermal: fix compilation
2012-11-13 15:43 [PATCH 0/5] staging: omap-thermal fixes Eduardo Valentin
@ 2012-11-13 15:43 ` Eduardo Valentin
2012-11-13 15:43 ` [PATCH 2/5] staging: omap-thermal: remove platform data nomenclature Eduardo Valentin
` (4 subsequent siblings)
5 siblings, 0 replies; 7+ messages in thread
From: Eduardo Valentin @ 2012-11-13 15:43 UTC (permalink / raw)
To: gregkh; +Cc: b-cousson, devel, linux-omap, linux-kernel, Eduardo Valentin
Because we are not including asm/io.h, the driver is not compiling.
This patch adds the missing header.
Signed-off-by: Eduardo Valentin <eduardo.valentin@ti.com>
---
drivers/staging/omap-thermal/omap-bandgap.c | 1 +
1 files changed, 1 insertions(+), 0 deletions(-)
diff --git a/drivers/staging/omap-thermal/omap-bandgap.c b/drivers/staging/omap-thermal/omap-bandgap.c
index 368a2e1..1cae5ed 100644
--- a/drivers/staging/omap-thermal/omap-bandgap.c
+++ b/drivers/staging/omap-thermal/omap-bandgap.c
@@ -38,6 +38,7 @@
#include <linux/of_device.h>
#include <linux/of_platform.h>
#include <linux/of_irq.h>
+#include <linux/io.h>
#include "omap-bandgap.h"
--
1.7.7.1.488.ge8e1c
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [PATCH 2/5] staging: omap-thermal: remove platform data nomenclature
2012-11-13 15:43 [PATCH 0/5] staging: omap-thermal fixes Eduardo Valentin
2012-11-13 15:43 ` [PATCH 1/5] staging: omap-thermal: fix compilation Eduardo Valentin
@ 2012-11-13 15:43 ` Eduardo Valentin
2012-11-13 15:43 ` [PATCH 3/5] staging: omap-thermal: remove freq_clip table Eduardo Valentin
` (3 subsequent siblings)
5 siblings, 0 replies; 7+ messages in thread
From: Eduardo Valentin @ 2012-11-13 15:43 UTC (permalink / raw)
To: gregkh; +Cc: b-cousson, devel, linux-omap, linux-kernel, Eduardo Valentin
Because the driver is not really using platform data, this patch
removes the pdata nomenclature from this driver.
Signed-off-by: Eduardo Valentin <eduardo.valentin@ti.com>
---
drivers/staging/omap-thermal/omap-thermal-common.c | 6 +++---
1 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/drivers/staging/omap-thermal/omap-thermal-common.c b/drivers/staging/omap-thermal/omap-thermal-common.c
index 5c0c203b..5be66d7 100644
--- a/drivers/staging/omap-thermal/omap-thermal-common.c
+++ b/drivers/staging/omap-thermal/omap-thermal-common.c
@@ -256,12 +256,12 @@ static struct omap_thermal_data
int omap_thermal_expose_sensor(struct omap_bandgap *bg_ptr, int id,
char *domain)
{
- struct omap_thermal_pdata pdata;
+ struct omap_thermal_data *data;
data = omap_bandgap_get_sensor_data(bg_ptr, id);
if (!data)
- data = omap_thermal_build_pdata(bg_ptr, id);
+ data = omap_thermal_build_data(bg_ptr, id);
if (!data)
return -EINVAL;
@@ -359,7 +359,7 @@ int omap_thermal_register_cpu_cooling(struct omap_bandgap *bg_ptr, int id)
data = omap_bandgap_get_sensor_data(bg_ptr, id);
if (!data)
- data = omap_thermal_build_pdata(bg_ptr, id);
+ data = omap_thermal_build_data(bg_ptr, id);
if (!data)
return -EINVAL;
--
1.7.7.1.488.ge8e1c
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [PATCH 3/5] staging: omap-thermal: remove freq_clip table
2012-11-13 15:43 [PATCH 0/5] staging: omap-thermal fixes Eduardo Valentin
2012-11-13 15:43 ` [PATCH 1/5] staging: omap-thermal: fix compilation Eduardo Valentin
2012-11-13 15:43 ` [PATCH 2/5] staging: omap-thermal: remove platform data nomenclature Eduardo Valentin
@ 2012-11-13 15:43 ` Eduardo Valentin
2012-11-13 15:43 ` [PATCH 4/5] staging: omap-thermal: add IRQ debugging messaging Eduardo Valentin
` (2 subsequent siblings)
5 siblings, 0 replies; 7+ messages in thread
From: Eduardo Valentin @ 2012-11-13 15:43 UTC (permalink / raw)
To: gregkh; +Cc: b-cousson, devel, linux-omap, linux-kernel, Eduardo Valentin
The API exposed by cpu cooling does not need any freq clip
table anymore. Now the cpu cooling device is smart enough
to build its own table.
For this reason, this patch removes all the code that is
generating a freq clip table and also removes all references
in data structures regarding freq clip table.
Signed-off-by: Eduardo Valentin <eduardo.valentin@ti.com>
---
drivers/staging/omap-thermal/omap-bandgap.h | 9 ---
drivers/staging/omap-thermal/omap-thermal-common.c | 63 +-------------------
2 files changed, 3 insertions(+), 69 deletions(-)
diff --git a/drivers/staging/omap-thermal/omap-bandgap.h b/drivers/staging/omap-thermal/omap-bandgap.h
index 78aed75..2bb14bd 100644
--- a/drivers/staging/omap-thermal/omap-bandgap.h
+++ b/drivers/staging/omap-thermal/omap-bandgap.h
@@ -336,14 +336,6 @@ struct temp_sensor_regval {
};
/**
- * 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
* @registers: pointer to the list of register offsets and bitfields
@@ -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;
diff --git a/drivers/staging/omap-thermal/omap-thermal-common.c b/drivers/staging/omap-thermal/omap-thermal-common.c
index 5be66d7..15e9723 100644
--- a/drivers/staging/omap-thermal/omap-thermal-common.c
+++ b/drivers/staging/omap-thermal/omap-thermal-common.c
@@ -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"
@@ -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;
@@ -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 */
@@ -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)
@@ -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;
--
1.7.7.1.488.ge8e1c
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [PATCH 4/5] staging: omap-thermal: add IRQ debugging messaging
2012-11-13 15:43 [PATCH 0/5] staging: omap-thermal fixes Eduardo Valentin
` (2 preceding siblings ...)
2012-11-13 15:43 ` [PATCH 3/5] staging: omap-thermal: remove freq_clip table Eduardo Valentin
@ 2012-11-13 15:43 ` Eduardo Valentin
2012-11-13 15:43 ` [PATCH 5/5] staging: omap-thermal: fix context restore function Eduardo Valentin
2012-11-13 17:45 ` [PATCH 0/5] staging: omap-thermal fixes Eduardo Valentin
5 siblings, 0 replies; 7+ messages in thread
From: Eduardo Valentin @ 2012-11-13 15:43 UTC (permalink / raw)
To: gregkh; +Cc: b-cousson, devel, linux-omap, linux-kernel, Eduardo Valentin
For debugging purposes, print the IRQ event for the domain being processed.
Signed-off-by: Eduardo Valentin <eduardo.valentin@ti.com>
---
drivers/staging/omap-thermal/omap-bandgap.c | 5 +++++
1 files changed, 5 insertions(+), 0 deletions(-)
diff --git a/drivers/staging/omap-thermal/omap-bandgap.c b/drivers/staging/omap-thermal/omap-bandgap.c
index 1cae5ed..c5f39ec 100644
--- a/drivers/staging/omap-thermal/omap-bandgap.c
+++ b/drivers/staging/omap-thermal/omap-bandgap.c
@@ -113,6 +113,11 @@ static irqreturn_t talert_irq_handler(int irq, void *data)
omap_bandgap_writel(bg_ptr, ctrl, tsr->bgap_mask_ctrl);
+ dev_dbg(bg_ptr->dev,
+ "%s: IRQ from %s sensor: hotevent %d coldevent %d\n",
+ __func__, bg_ptr->pdata->sensors[i].domain,
+ t_hot, t_cold);
+
/* read temperature */
temp = omap_bandgap_readl(bg_ptr, tsr->temp_sensor_ctrl);
temp &= tsr->bgap_dtemp_mask;
--
1.7.7.1.488.ge8e1c
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [PATCH 5/5] staging: omap-thermal: fix context restore function
2012-11-13 15:43 [PATCH 0/5] staging: omap-thermal fixes Eduardo Valentin
` (3 preceding siblings ...)
2012-11-13 15:43 ` [PATCH 4/5] staging: omap-thermal: add IRQ debugging messaging Eduardo Valentin
@ 2012-11-13 15:43 ` Eduardo Valentin
2012-11-13 17:45 ` [PATCH 0/5] staging: omap-thermal fixes Eduardo Valentin
5 siblings, 0 replies; 7+ messages in thread
From: Eduardo Valentin @ 2012-11-13 15:43 UTC (permalink / raw)
To: gregkh
Cc: b-cousson, devel, linux-omap, linux-kernel, Radhesh Fadnis,
Eduardo Valentin
From: Radhesh Fadnis <radhesh.fadnis@ti.com>
In the context restore function, if the context is lost or
not is being checked by the contents of the counter register.
But this is logic hold good as long as counter reset value is
zero, if the reset value is non-zero then above logic doesn't
hold good. Hence removed checking of the register value and
restoring the context.
Signed-off-by: Radhesh Fadnis <radhesh.fadnis@ti.com>
Signed-off-by: Eduardo Valentin <eduardo.valentin@ti.com>
---
drivers/staging/omap-thermal/omap-bandgap.c | 56 ++++++++++-----------------
1 files changed, 21 insertions(+), 35 deletions(-)
diff --git a/drivers/staging/omap-thermal/omap-bandgap.c b/drivers/staging/omap-thermal/omap-bandgap.c
index c5f39ec..d6be31d 100644
--- a/drivers/staging/omap-thermal/omap-bandgap.c
+++ b/drivers/staging/omap-thermal/omap-bandgap.c
@@ -1078,41 +1078,27 @@ static int omap_bandgap_restore_ctxt(struct omap_bandgap *bg_ptr)
if (OMAP_BANDGAP_HAS(bg_ptr, COUNTER))
val = omap_bandgap_readl(bg_ptr, tsr->bgap_counter);
- if (val == 0) {
- if (OMAP_BANDGAP_HAS(bg_ptr, TSHUT_CONFIG))
- omap_bandgap_writel(bg_ptr,
- rval->tshut_threshold,
- tsr->tshut_threshold);
- /* Force immediate temperature measurement and update
- * of the DTEMP field
- */
- omap_bandgap_force_single_read(bg_ptr, i);
-
- if (OMAP_BANDGAP_HAS(bg_ptr, COUNTER))
- omap_bandgap_writel(bg_ptr, rval->bg_counter,
- tsr->bgap_counter);
- if (OMAP_BANDGAP_HAS(bg_ptr, MODE_CONFIG))
- omap_bandgap_writel(bg_ptr, rval->bg_mode_ctrl,
- tsr->bgap_mode_ctrl);
- if (OMAP_BANDGAP_HAS(bg_ptr, TALERT)) {
- omap_bandgap_writel(bg_ptr,
- rval->bg_threshold,
- tsr->bgap_threshold);
- omap_bandgap_writel(bg_ptr, rval->bg_ctrl,
- tsr->bgap_mask_ctrl);
- }
- } else {
- temp = omap_bandgap_readl(bg_ptr,
- tsr->temp_sensor_ctrl);
- temp &= (tsr->bgap_dtemp_mask);
- omap_bandgap_force_single_read(bg_ptr, i);
- if (temp == 0 && OMAP_BANDGAP_HAS(bg_ptr, TALERT)) {
- temp = omap_bandgap_readl(bg_ptr,
- tsr->bgap_mask_ctrl);
- temp |= 1 << __ffs(tsr->mode_ctrl_mask);
- omap_bandgap_writel(bg_ptr, temp,
- tsr->bgap_mask_ctrl);
- }
+ if (OMAP_BANDGAP_HAS(bg_ptr, TSHUT_CONFIG))
+ omap_bandgap_writel(bg_ptr,
+ rval->tshut_threshold,
+ tsr->tshut_threshold);
+ /* Force immediate temperature measurement and update
+ * of the DTEMP field
+ */
+ omap_bandgap_force_single_read(bg_ptr, i);
+
+ if (OMAP_BANDGAP_HAS(bg_ptr, COUNTER))
+ omap_bandgap_writel(bg_ptr, rval->bg_counter,
+ tsr->bgap_counter);
+ if (OMAP_BANDGAP_HAS(bg_ptr, MODE_CONFIG))
+ omap_bandgap_writel(bg_ptr, rval->bg_mode_ctrl,
+ tsr->bgap_mode_ctrl);
+ if (OMAP_BANDGAP_HAS(bg_ptr, TALERT)) {
+ omap_bandgap_writel(bg_ptr,
+ rval->bg_threshold,
+ tsr->bgap_threshold);
+ omap_bandgap_writel(bg_ptr, rval->bg_ctrl,
+ tsr->bgap_mask_ctrl);
}
}
--
1.7.7.1.488.ge8e1c
^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCH 0/5] staging: omap-thermal fixes
2012-11-13 15:43 [PATCH 0/5] staging: omap-thermal fixes Eduardo Valentin
` (4 preceding siblings ...)
2012-11-13 15:43 ` [PATCH 5/5] staging: omap-thermal: fix context restore function Eduardo Valentin
@ 2012-11-13 17:45 ` Eduardo Valentin
5 siblings, 0 replies; 7+ messages in thread
From: Eduardo Valentin @ 2012-11-13 17:45 UTC (permalink / raw)
To: Eduardo Valentin; +Cc: gregkh, b-cousson, devel, linux-omap, linux-kernel
Hello Greg,
I will repost this series as I found I sent you wrong set of patches.
Please check the next version.
On 13-11-2012 11:43, Eduardo Valentin wrote:
> Hello Greg,
>
> Several compilation fixes and a couple of debugging prints
> added to the omap-thermal driver under staging area.
>
> Patches are also available here:
>
> git@gitorious.org:thermal-framework/thermal-framework.git thermal_work/omap/omap-thermal-fixes
>
> Cheers,
>
> Eduardo Valentin (4):
> staging: omap-thermal: fix compilation
> staging: omap-thermal: remove platform data nomenclature
> staging: omap-thermal: remove freq_clip table
> staging: omap-thermal: add IRQ debugging messaging
>
> Radhesh Fadnis (1):
> staging: omap-thermal: fix context restore function
>
> drivers/staging/omap-thermal/omap-bandgap.c | 63 ++++++++----------
> drivers/staging/omap-thermal/omap-bandgap.h | 9 ---
> drivers/staging/omap-thermal/omap-thermal-common.c | 69 ++------------------
> 3 files changed, 34 insertions(+), 107 deletions(-)
>
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2012-11-13 17:45 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-11-13 15:43 [PATCH 0/5] staging: omap-thermal fixes Eduardo Valentin
2012-11-13 15:43 ` [PATCH 1/5] staging: omap-thermal: fix compilation Eduardo Valentin
2012-11-13 15:43 ` [PATCH 2/5] staging: omap-thermal: remove platform data nomenclature Eduardo Valentin
2012-11-13 15:43 ` [PATCH 3/5] staging: omap-thermal: remove freq_clip table Eduardo Valentin
2012-11-13 15:43 ` [PATCH 4/5] staging: omap-thermal: add IRQ debugging messaging Eduardo Valentin
2012-11-13 15:43 ` [PATCH 5/5] staging: omap-thermal: fix context restore function Eduardo Valentin
2012-11-13 17:45 ` [PATCH 0/5] staging: omap-thermal fixes Eduardo Valentin
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox