public inbox for linux-omap@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/2] thermal: ti-soc-thermal: Implement work around for Errata i813 and i814
@ 2015-04-22 12:51 Keerthy
  2015-04-22 12:51 ` [PATCH 1/2] thermal: ti-soc-thermal: dra7: Implement Workaround for Errata i814 - Bandgap Temperature read Dtemp can be corrupted Keerthy
  2015-04-22 12:51 ` [PATCH 2/2] thermal: ti-soc-thermal: OMAP5: Implement Workaround for Errata i813 Keerthy
  0 siblings, 2 replies; 4+ messages in thread
From: Keerthy @ 2015-04-22 12:51 UTC (permalink / raw)
  To: edubezval; +Cc: rui.zhang, linux-omap, linux-pm, t-kristo, j-keerthy

The series implements work arounds for couple of Erratas.

Tested the series on OMAP5 and DRA7 Boards.

Keerthy (2):
  thermal: ti-soc-thermal: dra7: Implement Workaround for Errata i814 -
    Bandgap Temperature read Dtemp can be corrupted
  thermal: ti-soc-thermal: OMAP5: Implement Workaround for Errata i813

 .../thermal/ti-soc-thermal/dra752-thermal-data.c   |  3 +-
 .../thermal/ti-soc-thermal/omap5-thermal-data.c    |  3 +-
 drivers/thermal/ti-soc-thermal/ti-bandgap.c        | 78 +++++++++++++++++++++-
 drivers/thermal/ti-soc-thermal/ti-bandgap.h        |  6 ++
 4 files changed, 86 insertions(+), 4 deletions(-)

-- 
1.9.1


^ permalink raw reply	[flat|nested] 4+ messages in thread

* [PATCH 1/2] thermal: ti-soc-thermal: dra7: Implement Workaround for Errata i814 - Bandgap Temperature read Dtemp can be corrupted
  2015-04-22 12:51 [PATCH 0/2] thermal: ti-soc-thermal: Implement work around for Errata i813 and i814 Keerthy
@ 2015-04-22 12:51 ` Keerthy
  2015-04-22 12:51 ` [PATCH 2/2] thermal: ti-soc-thermal: OMAP5: Implement Workaround for Errata i813 Keerthy
  1 sibling, 0 replies; 4+ messages in thread
From: Keerthy @ 2015-04-22 12:51 UTC (permalink / raw)
  To: edubezval; +Cc: rui.zhang, linux-omap, linux-pm, t-kristo, j-keerthy

Bandgap Temperature read Dtemp can be corrupted

DESCRIPTION
        Read accesses to registers listed below can be corrupted due to incorrect resynchronization between
        clock domains.

        Read access to registers below can be corrupted :
                • CTRL_CORE_DTEMP_MPU/GPU/CORE/DSPEVE/IVA_n (n = 0 to 4)
        • CTRL_CORE_TEMP_SENSOR_MPU/GPU/CORE/DSPEVE/IVA_n

WORKAROUND
        Multiple reads to CTRL_CORE_TEMP_SENSOR_MPU/GPU/CORE/DSPEVE/IVA[9:0]:
        BGAP_DTEMPMPU/GPU/CORE/DSPEVE/IVA is needed to discard false value and read right value:
                1. Perform two successive reads to BGAP_DTEMP bit field.
                        (a) If read1 returns Val1 and read2 returns Val1, then right value is Val1.
                        (b) If read1 returns Val1, read 2 returns Val2, a third read is needed.
                2. Perform third read
                        (a) If read3 returns Val2 then right value is Val2.
                        (b) If read3 returns Val3, then right value is Val3.

        The above in gist means if val1 and val2 are the same then we can go ahead with that value
        else we need a third read which will be right since synchronization will be complete by then.

Signed-off-by: Keerthy <j-keerthy@ti.com>
---
 .../thermal/ti-soc-thermal/dra752-thermal-data.c   |  3 +-
 drivers/thermal/ti-soc-thermal/ti-bandgap.c        | 37 +++++++++++++++++++++-
 drivers/thermal/ti-soc-thermal/ti-bandgap.h        |  4 +++
 3 files changed, 42 insertions(+), 2 deletions(-)

diff --git a/drivers/thermal/ti-soc-thermal/dra752-thermal-data.c b/drivers/thermal/ti-soc-thermal/dra752-thermal-data.c
index a492927..58b5c66 100644
--- a/drivers/thermal/ti-soc-thermal/dra752-thermal-data.c
+++ b/drivers/thermal/ti-soc-thermal/dra752-thermal-data.c
@@ -420,7 +420,8 @@ const struct ti_bandgap_data dra752_data = {
 			TI_BANDGAP_FEATURE_FREEZE_BIT |
 			TI_BANDGAP_FEATURE_TALERT |
 			TI_BANDGAP_FEATURE_COUNTER_DELAY |
-			TI_BANDGAP_FEATURE_HISTORY_BUFFER,
+			TI_BANDGAP_FEATURE_HISTORY_BUFFER |
+			TI_BANDGAP_FEATURE_ERRATA_814,
 	.fclock_name = "l3instr_ts_gclk_div",
 	.div_ck_name = "l3instr_ts_gclk_div",
 	.conv_table = dra752_adc_to_temp,
diff --git a/drivers/thermal/ti-soc-thermal/ti-bandgap.c b/drivers/thermal/ti-soc-thermal/ti-bandgap.c
index 634b6ce..8fdddb6 100644
--- a/drivers/thermal/ti-soc-thermal/ti-bandgap.c
+++ b/drivers/thermal/ti-soc-thermal/ti-bandgap.c
@@ -119,6 +119,37 @@ exit:
 }
 
 /**
+ * ti_errata814_bandgap_read_temp() - helper function to read dra7 sensor temperature
+ * @bgp: pointer to ti_bandgap structure
+ * @reg: desired register (offset) to be read
+ *
+ * Function to read dra7 bandgap sensor temperature. This is done separately
+ * so as to workaround the errata "Bandgap Temperature read Dtemp can be
+ * corrupted" - Errata ID: i814".
+ * Read accesses to registers listed below can be corrupted due to incorrect
+ * resynchronization between clock domains.
+ * Read access to registers below can be corrupted :
+ * CTRL_CORE_DTEMP_MPU/GPU/CORE/DSPEVE/IVA_n (n = 0 to 4)
+ * CTRL_CORE_TEMP_SENSOR_MPU/GPU/CORE/DSPEVE/IVA_n
+ *
+ * Return: the register value.
+ */
+static u32 ti_errata814_bandgap_read_temp(struct ti_bandgap *bgp,  u32 reg)
+{
+	u32 val1, val2;
+
+	val1 = ti_bandgap_readl(bgp, reg);
+	val2 = ti_bandgap_readl(bgp, reg);
+
+	/* If both times we read the same value then that is right */
+	if (val1 == val2)
+		return val1;
+
+	/* if val1 and val2 are different read it third time */
+	return ti_bandgap_readl(bgp, reg);
+}
+
+/**
  * ti_bandgap_read_temp() - helper function to read sensor temperature
  * @bgp: pointer to ti_bandgap structure
  * @id: bandgap sensor id
@@ -148,7 +179,11 @@ static u32 ti_bandgap_read_temp(struct ti_bandgap *bgp, int id)
 	}
 
 	/* read temperature */
-	temp = ti_bandgap_readl(bgp, reg);
+	if (TI_BANDGAP_HAS(bgp, ERRATA_814))
+		temp = ti_errata814_bandgap_read_temp(bgp, reg);
+	else
+		temp = ti_bandgap_readl(bgp, reg);
+
 	temp &= tsr->bgap_dtemp_mask;
 
 	if (TI_BANDGAP_HAS(bgp, FREEZE_BIT))
diff --git a/drivers/thermal/ti-soc-thermal/ti-bandgap.h b/drivers/thermal/ti-soc-thermal/ti-bandgap.h
index b3adf72..b2da3fc 100644
--- a/drivers/thermal/ti-soc-thermal/ti-bandgap.h
+++ b/drivers/thermal/ti-soc-thermal/ti-bandgap.h
@@ -318,6 +318,9 @@ struct ti_temp_sensor {
  * TI_BANDGAP_FEATURE_HISTORY_BUFFER - used when the bandgap device features
  *	a history buffer of temperatures.
  *
+ * TI_BANDGAP_FEATURE_ERRATA_814 - used to workaorund when the bandgap device
+ *	has Errata 814
+ *
  * TI_BANDGAP_HAS(b, f) - macro to check if a bandgap device is capable of a
  *      specific feature (above) or not. Return non-zero, if yes.
  */
@@ -331,6 +334,7 @@ struct ti_temp_sensor {
 #define TI_BANDGAP_FEATURE_FREEZE_BIT		BIT(7)
 #define TI_BANDGAP_FEATURE_COUNTER_DELAY	BIT(8)
 #define TI_BANDGAP_FEATURE_HISTORY_BUFFER	BIT(9)
+#define TI_BANDGAP_FEATURE_ERRATA_814		BIT(10)
 #define TI_BANDGAP_HAS(b, f)			\
 			((b)->conf->features & TI_BANDGAP_FEATURE_ ## f)
 
-- 
1.9.1

--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply related	[flat|nested] 4+ messages in thread

* [PATCH 2/2] thermal: ti-soc-thermal: OMAP5: Implement Workaround for Errata i813
  2015-04-22 12:51 [PATCH 0/2] thermal: ti-soc-thermal: Implement work around for Errata i813 and i814 Keerthy
  2015-04-22 12:51 ` [PATCH 1/2] thermal: ti-soc-thermal: dra7: Implement Workaround for Errata i814 - Bandgap Temperature read Dtemp can be corrupted Keerthy
@ 2015-04-22 12:51 ` Keerthy
  2015-05-09  0:43   ` Eduardo Valentin
  1 sibling, 1 reply; 4+ messages in thread
From: Keerthy @ 2015-04-22 12:51 UTC (permalink / raw)
  To: edubezval; +Cc: rui.zhang, linux-omap, linux-pm, t-kristo, j-keerthy

DESCRIPTION

Spurious Thermal Alert: Talert can happen randomly while the device remains under the temperature limit
defined for this event to trig. This spurious event is caused by a incorrect re-synchronization between
clock domains. The comparison between configured threshold and current temperature value can happen
while the value is transitioning (metastable), thus causing inappropriate event generation.
No spurious event occurs as long as the threshold value stays unchanged. Spurious event can be
generated while a thermal alert threshold is modified in
CONTROL_BANDGAP_THRESHOLD_MPU/GPU/CORE/DSPEVE/IVA_n.
WORKAROUND

Spurious event generation can be avoided by performing following sequence when the threshold is
modified:
1. Mask the hot/cold events at the thermal IP level.
2. Modify Threshold.
3. Unmask the hot/cold events at the thermal IP level.

Signed-off-by: Keerthy <j-keerthy@ti.com>
---
 .../thermal/ti-soc-thermal/omap5-thermal-data.c    |  3 +-
 drivers/thermal/ti-soc-thermal/ti-bandgap.c        | 41 +++++++++++++++++++++-
 drivers/thermal/ti-soc-thermal/ti-bandgap.h        |  4 ++-
 3 files changed, 45 insertions(+), 3 deletions(-)

diff --git a/drivers/thermal/ti-soc-thermal/omap5-thermal-data.c b/drivers/thermal/ti-soc-thermal/omap5-thermal-data.c
index eff0c80..79ff70c 100644
--- a/drivers/thermal/ti-soc-thermal/omap5-thermal-data.c
+++ b/drivers/thermal/ti-soc-thermal/omap5-thermal-data.c
@@ -319,7 +319,8 @@ const struct ti_bandgap_data omap5430_data = {
 			TI_BANDGAP_FEATURE_FREEZE_BIT |
 			TI_BANDGAP_FEATURE_TALERT |
 			TI_BANDGAP_FEATURE_COUNTER_DELAY |
-			TI_BANDGAP_FEATURE_HISTORY_BUFFER,
+			TI_BANDGAP_FEATURE_HISTORY_BUFFER |
+			TI_BANDGAP_FEATURE_ERRATA_813,
 	.fclock_name = "l3instr_ts_gclk_div",
 	.div_ck_name = "l3instr_ts_gclk_div",
 	.conv_table = omap5430_adc_to_temp,
diff --git a/drivers/thermal/ti-soc-thermal/ti-bandgap.c b/drivers/thermal/ti-soc-thermal/ti-bandgap.c
index 8fdddb6..08a2155 100644
--- a/drivers/thermal/ti-soc-thermal/ti-bandgap.c
+++ b/drivers/thermal/ti-soc-thermal/ti-bandgap.c
@@ -445,7 +445,7 @@ static int ti_bandgap_update_alert_threshold(struct ti_bandgap *bgp, int id,
 {
 	struct temp_sensor_data *ts_data = bgp->conf->sensors[id].ts_data;
 	struct temp_sensor_registers *tsr;
-	u32 thresh_val, reg_val, t_hot, t_cold;
+	u32 thresh_val, reg_val, t_hot, t_cold, ctrl;
 	int err = 0;
 
 	tsr = bgp->conf->sensors[id].registers;
@@ -477,8 +477,47 @@ static int ti_bandgap_update_alert_threshold(struct ti_bandgap *bgp, int id,
 		  ~(tsr->threshold_thot_mask | tsr->threshold_tcold_mask);
 	reg_val |= (t_hot << __ffs(tsr->threshold_thot_mask)) |
 		   (t_cold << __ffs(tsr->threshold_tcold_mask));
+
+	/**
+	 * Errata i813:
+	 * Spurious Thermal Alert: Talert can happen randomly while the device
+	 * remains under the temperature limit defined for this event to trig.
+	 * This spurious event is caused by a incorrect re-synchronization
+	 * between clock domains. The comparison between configured threshold
+	 * and current temperature value can happen while the value is
+	 * transitioning (metastable), thus causing inappropriate event
+	 * generation. No spurious event occurs as long as the threshold value
+	 * stays unchanged. Spurious event can be generated while a thermal
+	 * alert threshold is modified in
+	 * CONTROL_BANDGAP_THRESHOLD_MPU/GPU/CORE/DSPEVE/IVA_n.
+	 */
+
+	if (TI_BANDGAP_HAS(bgp, ERRATA_813)) {
+		/* Mask t_hot and t_cold events at the IP Level */
+		ctrl = ti_bandgap_readl(bgp, tsr->bgap_mask_ctrl);
+
+		if (hot)
+			ctrl &= ~tsr->mask_hot_mask;
+		else
+			ctrl &= ~tsr->mask_cold_mask;
+
+		ti_bandgap_writel(bgp, ctrl, tsr->bgap_mask_ctrl);
+	}
+
+	/* Write the threshold value */
 	ti_bandgap_writel(bgp, reg_val, tsr->bgap_threshold);
 
+	if (TI_BANDGAP_HAS(bgp, ERRATA_813)) {
+		/* Unmask t_hot and t_cold events at the IP Level */
+		ctrl = ti_bandgap_readl(bgp, tsr->bgap_mask_ctrl);
+		if (hot)
+			ctrl |= tsr->mask_hot_mask;
+		else
+			ctrl |= tsr->mask_cold_mask;
+
+		ti_bandgap_writel(bgp, ctrl, tsr->bgap_mask_ctrl);
+	}
+
 	if (err) {
 		dev_err(bgp->dev, "failed to reprogram thot threshold\n");
 		err = -EIO;
diff --git a/drivers/thermal/ti-soc-thermal/ti-bandgap.h b/drivers/thermal/ti-soc-thermal/ti-bandgap.h
index b2da3fc..0c52f7a 100644
--- a/drivers/thermal/ti-soc-thermal/ti-bandgap.h
+++ b/drivers/thermal/ti-soc-thermal/ti-bandgap.h
@@ -320,7 +320,8 @@ struct ti_temp_sensor {
  *
  * TI_BANDGAP_FEATURE_ERRATA_814 - used to workaorund when the bandgap device
  *	has Errata 814
- *
+ * TI_BANDGAP_FEATURE_ERRATA_813 - used to workaorund when the bandgap device
+ *	has Errata 813
  * TI_BANDGAP_HAS(b, f) - macro to check if a bandgap device is capable of a
  *      specific feature (above) or not. Return non-zero, if yes.
  */
@@ -335,6 +336,7 @@ struct ti_temp_sensor {
 #define TI_BANDGAP_FEATURE_COUNTER_DELAY	BIT(8)
 #define TI_BANDGAP_FEATURE_HISTORY_BUFFER	BIT(9)
 #define TI_BANDGAP_FEATURE_ERRATA_814		BIT(10)
+#define TI_BANDGAP_FEATURE_ERRATA_813		BIT(11)
 #define TI_BANDGAP_HAS(b, f)			\
 			((b)->conf->features & TI_BANDGAP_FEATURE_ ## f)
 
-- 
1.9.1


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [PATCH 2/2] thermal: ti-soc-thermal: OMAP5: Implement Workaround for Errata i813
  2015-04-22 12:51 ` [PATCH 2/2] thermal: ti-soc-thermal: OMAP5: Implement Workaround for Errata i813 Keerthy
@ 2015-05-09  0:43   ` Eduardo Valentin
  0 siblings, 0 replies; 4+ messages in thread
From: Eduardo Valentin @ 2015-05-09  0:43 UTC (permalink / raw)
  To: Keerthy; +Cc: rui.zhang, linux-omap, linux-pm, t-kristo

[-- Attachment #1: Type: text/plain, Size: 5736 bytes --]

On Wed, Apr 22, 2015 at 06:21:42PM +0530, Keerthy wrote:
> DESCRIPTION
> 
> Spurious Thermal Alert: Talert can happen randomly while the device remains under the temperature limit
> defined for this event to trig. This spurious event is caused by a incorrect re-synchronization between
> clock domains. The comparison between configured threshold and current temperature value can happen
> while the value is transitioning (metastable), thus causing inappropriate event generation.
> No spurious event occurs as long as the threshold value stays unchanged. Spurious event can be
> generated while a thermal alert threshold is modified in
> CONTROL_BANDGAP_THRESHOLD_MPU/GPU/CORE/DSPEVE/IVA_n.
> WORKAROUND
> 
> Spurious event generation can be avoided by performing following sequence when the threshold is
> modified:
> 1. Mask the hot/cold events at the thermal IP level.
> 2. Modify Threshold.
> 3. Unmask the hot/cold events at the thermal IP level.
> 

applying to my -fixes branch. next time, please make sure you have the
correct linux-pm address so we can track the patch in our patchwork.

BR,

Eduardo Valentin

> Signed-off-by: Keerthy <j-keerthy@ti.com>
> ---
>  .../thermal/ti-soc-thermal/omap5-thermal-data.c    |  3 +-
>  drivers/thermal/ti-soc-thermal/ti-bandgap.c        | 41 +++++++++++++++++++++-
>  drivers/thermal/ti-soc-thermal/ti-bandgap.h        |  4 ++-
>  3 files changed, 45 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/thermal/ti-soc-thermal/omap5-thermal-data.c b/drivers/thermal/ti-soc-thermal/omap5-thermal-data.c
> index eff0c80..79ff70c 100644
> --- a/drivers/thermal/ti-soc-thermal/omap5-thermal-data.c
> +++ b/drivers/thermal/ti-soc-thermal/omap5-thermal-data.c
> @@ -319,7 +319,8 @@ const struct ti_bandgap_data omap5430_data = {
>  			TI_BANDGAP_FEATURE_FREEZE_BIT |
>  			TI_BANDGAP_FEATURE_TALERT |
>  			TI_BANDGAP_FEATURE_COUNTER_DELAY |
> -			TI_BANDGAP_FEATURE_HISTORY_BUFFER,
> +			TI_BANDGAP_FEATURE_HISTORY_BUFFER |
> +			TI_BANDGAP_FEATURE_ERRATA_813,
>  	.fclock_name = "l3instr_ts_gclk_div",
>  	.div_ck_name = "l3instr_ts_gclk_div",
>  	.conv_table = omap5430_adc_to_temp,
> diff --git a/drivers/thermal/ti-soc-thermal/ti-bandgap.c b/drivers/thermal/ti-soc-thermal/ti-bandgap.c
> index 8fdddb6..08a2155 100644
> --- a/drivers/thermal/ti-soc-thermal/ti-bandgap.c
> +++ b/drivers/thermal/ti-soc-thermal/ti-bandgap.c
> @@ -445,7 +445,7 @@ static int ti_bandgap_update_alert_threshold(struct ti_bandgap *bgp, int id,
>  {
>  	struct temp_sensor_data *ts_data = bgp->conf->sensors[id].ts_data;
>  	struct temp_sensor_registers *tsr;
> -	u32 thresh_val, reg_val, t_hot, t_cold;
> +	u32 thresh_val, reg_val, t_hot, t_cold, ctrl;
>  	int err = 0;
>  
>  	tsr = bgp->conf->sensors[id].registers;
> @@ -477,8 +477,47 @@ static int ti_bandgap_update_alert_threshold(struct ti_bandgap *bgp, int id,
>  		  ~(tsr->threshold_thot_mask | tsr->threshold_tcold_mask);
>  	reg_val |= (t_hot << __ffs(tsr->threshold_thot_mask)) |
>  		   (t_cold << __ffs(tsr->threshold_tcold_mask));
> +
> +	/**
> +	 * Errata i813:
> +	 * Spurious Thermal Alert: Talert can happen randomly while the device
> +	 * remains under the temperature limit defined for this event to trig.
> +	 * This spurious event is caused by a incorrect re-synchronization
> +	 * between clock domains. The comparison between configured threshold
> +	 * and current temperature value can happen while the value is
> +	 * transitioning (metastable), thus causing inappropriate event
> +	 * generation. No spurious event occurs as long as the threshold value
> +	 * stays unchanged. Spurious event can be generated while a thermal
> +	 * alert threshold is modified in
> +	 * CONTROL_BANDGAP_THRESHOLD_MPU/GPU/CORE/DSPEVE/IVA_n.
> +	 */
> +
> +	if (TI_BANDGAP_HAS(bgp, ERRATA_813)) {
> +		/* Mask t_hot and t_cold events at the IP Level */
> +		ctrl = ti_bandgap_readl(bgp, tsr->bgap_mask_ctrl);
> +
> +		if (hot)
> +			ctrl &= ~tsr->mask_hot_mask;
> +		else
> +			ctrl &= ~tsr->mask_cold_mask;
> +
> +		ti_bandgap_writel(bgp, ctrl, tsr->bgap_mask_ctrl);
> +	}
> +
> +	/* Write the threshold value */
>  	ti_bandgap_writel(bgp, reg_val, tsr->bgap_threshold);
>  
> +	if (TI_BANDGAP_HAS(bgp, ERRATA_813)) {
> +		/* Unmask t_hot and t_cold events at the IP Level */
> +		ctrl = ti_bandgap_readl(bgp, tsr->bgap_mask_ctrl);
> +		if (hot)
> +			ctrl |= tsr->mask_hot_mask;
> +		else
> +			ctrl |= tsr->mask_cold_mask;
> +
> +		ti_bandgap_writel(bgp, ctrl, tsr->bgap_mask_ctrl);
> +	}
> +
>  	if (err) {
>  		dev_err(bgp->dev, "failed to reprogram thot threshold\n");
>  		err = -EIO;
> diff --git a/drivers/thermal/ti-soc-thermal/ti-bandgap.h b/drivers/thermal/ti-soc-thermal/ti-bandgap.h
> index b2da3fc..0c52f7a 100644
> --- a/drivers/thermal/ti-soc-thermal/ti-bandgap.h
> +++ b/drivers/thermal/ti-soc-thermal/ti-bandgap.h
> @@ -320,7 +320,8 @@ struct ti_temp_sensor {
>   *
>   * TI_BANDGAP_FEATURE_ERRATA_814 - used to workaorund when the bandgap device
>   *	has Errata 814
> - *
> + * TI_BANDGAP_FEATURE_ERRATA_813 - used to workaorund when the bandgap device
> + *	has Errata 813
>   * TI_BANDGAP_HAS(b, f) - macro to check if a bandgap device is capable of a
>   *      specific feature (above) or not. Return non-zero, if yes.
>   */
> @@ -335,6 +336,7 @@ struct ti_temp_sensor {
>  #define TI_BANDGAP_FEATURE_COUNTER_DELAY	BIT(8)
>  #define TI_BANDGAP_FEATURE_HISTORY_BUFFER	BIT(9)
>  #define TI_BANDGAP_FEATURE_ERRATA_814		BIT(10)
> +#define TI_BANDGAP_FEATURE_ERRATA_813		BIT(11)
>  #define TI_BANDGAP_HAS(b, f)			\
>  			((b)->conf->features & TI_BANDGAP_FEATURE_ ## f)
>  
> -- 
> 1.9.1
> 

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 490 bytes --]

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2015-05-08 17:43 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-04-22 12:51 [PATCH 0/2] thermal: ti-soc-thermal: Implement work around for Errata i813 and i814 Keerthy
2015-04-22 12:51 ` [PATCH 1/2] thermal: ti-soc-thermal: dra7: Implement Workaround for Errata i814 - Bandgap Temperature read Dtemp can be corrupted Keerthy
2015-04-22 12:51 ` [PATCH 2/2] thermal: ti-soc-thermal: OMAP5: Implement Workaround for Errata i813 Keerthy
2015-05-09  0:43   ` Eduardo Valentin

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox