On Tue, Sep 25, 2012 at 10:12:10AM -0600, mathieu.poir...@linaro.org wrote:
> From: Hakan Berg <hakan.b...@stericsson.com>
> 
> Ignore the low btemp interrupts for ab8500 3.0 and 3.3
> 
> Signed-off-by: Hakan Berg <hakan.b...@stericsson.com>
> Signed-off-by: Mathieu Poirier <mathieu.poir...@linaro.org>
> Reviewed-by: Jonas ABERG <jonas.ab...@stericsson.com>
> ---
>  drivers/power/ab8500_btemp.c      |   22 +++++++++++-----------
>  include/linux/mfd/abx500/ab8500.h |    5 +++++
>  2 files changed, 16 insertions(+), 11 deletions(-)
> 
> diff --git a/drivers/power/ab8500_btemp.c b/drivers/power/ab8500_btemp.c
> index 45b10ad..04f9dec 100644
> --- a/drivers/power/ab8500_btemp.c
> +++ b/drivers/power/ab8500_btemp.c
> @@ -622,9 +622,9 @@ static irqreturn_t ab8500_btemp_templow_handler(int irq, 
> void *_di)
>  {
>       struct ab8500_btemp *di = _di;
>  
> -     if (is_ab8500_2p0_or_earlier(di->parent)) {
> -             dev_dbg(di->dev, "Ignore false btemp low irq"
> -                     " for ABB cut 1.0, 1.1 and 2.0\n");
> +     if (is_ab8500_3p3_or_earlier(di->parent)) {
> +             dev_dbg(di->dev, "Ignore false btemp low irq");
> +             dev_dbg(di->dev, " for ABB cut 1.0, 1.1, 2.0 and 3.3\n");
>       } else {
>               dev_crit(di->dev, "Battery temperature lower than -10deg c\n");
>  
> @@ -738,30 +738,30 @@ static int ab8500_btemp_get_temp(struct ab8500_btemp 
> *di)
>       int temp = 0;
>  
>       /*
> -      * The BTEMP events are not reliabe on AB8500 cut2.0
> +      * The BTEMP events are not reliabe on AB8500 cut3.3
>        * and prior versions
>        */
> -     if (is_ab8500_2p0_or_earlier(di->parent)) {
> +     if (is_ab8500_3p3_or_earlier(di->parent)) {

OK, this change reflects patch description.

>               temp = di->bat_temp * 10;
>       } else {
>               if (di->events.btemp_low) {
>                       if (temp > di->btemp_ranges.btemp_low_limit)
> -                             temp = di->btemp_ranges.btemp_low_limit;
> +                             temp = di->btemp_ranges.btemp_low_limit * 10;

But why these changes?

>                       else
>                               temp = di->bat_temp * 10;
>               } else if (di->events.btemp_high) {
>                       if (temp < di->btemp_ranges.btemp_high_limit)
> -                             temp = di->btemp_ranges.btemp_high_limit;
> +                             temp = di->btemp_ranges.btemp_high_limit * 10;
>                       else
>                               temp = di->bat_temp * 10;
>               } else if (di->events.btemp_lowmed) {
>                       if (temp > di->btemp_ranges.btemp_med_limit)
> -                             temp = di->btemp_ranges.btemp_med_limit;
> +                             temp = di->btemp_ranges.btemp_med_limit * 10;
>                       else
>                               temp = di->bat_temp * 10;
>               } else if (di->events.btemp_medhigh) {
>                       if (temp < di->btemp_ranges.btemp_med_limit)
> -                             temp = di->btemp_ranges.btemp_med_limit;
> +                             temp = di->btemp_ranges.btemp_med_limit * 10;
>                       else
>                               temp = di->bat_temp * 10;
>               } else
> @@ -1026,8 +1026,8 @@ static int __devinit ab8500_btemp_probe(struct 
> platform_device *pdev)
>               ab8500_btemp_periodic_work);
>  
>       /* Set BTEMP thermal limits. Low and Med are fixed */
> -     di->btemp_ranges.btemp_low_limit = BTEMP_THERMAL_LOW_LIMIT;
> -     di->btemp_ranges.btemp_med_limit = BTEMP_THERMAL_MED_LIMIT;
> +     di->btemp_ranges.btemp_low_limit = BTEMP_THERMAL_LOW_LIMIT * 10;
> +     di->btemp_ranges.btemp_med_limit = BTEMP_THERMAL_MED_LIMIT * 10;
>  
>       ret = abx500_get_register_interruptible(di->dev, AB8500_CHARGER,
>               AB8500_BTEMP_HIGH_TH, &val);
> diff --git a/include/linux/mfd/abx500/ab8500.h 
> b/include/linux/mfd/abx500/ab8500.h
> index db8a1e3..087b445 100644
> --- a/include/linux/mfd/abx500/ab8500.h
> +++ b/include/linux/mfd/abx500/ab8500.h
> @@ -340,6 +340,11 @@ static inline int is_ab8500_2p0_or_earlier(struct ab8500 
> *ab)
>       return (is_ab8500(ab) && (ab->chip_id <= AB8500_CUT2P0));
>  }
>  
> +static inline int is_ab8500_3p3_or_earlier(struct ab8500 *ab)
> +{
> +     return (is_ab8500(ab) && (ab->chip_id <= AB8500_CUT3P3));
> +}
> +
>  /* exclude also ab8505, ab9540... */
>  static inline int is_ab8500_2p0(struct ab8500 *ab)
>  {
> -- 
> 1.7.5.4
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to