lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite for Android: free password hash cracker in your pocket
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20120927033202.GG8836@lizard>
Date:	Wed, 26 Sep 2012 20:32:02 -0700
From:	Anton Vorontsov <anton.vorontsov@...aro.org>
To:	mathieu.poirier@...aro.org
Cc:	linux-kernel@...r.kernel.org, dwmw2@...radead.org
Subject: Re: [PATCH 13/57] power: ab8500_bm: Ignore false btemp low interrupt

On Tue, Sep 25, 2012 at 10:12:10AM -0600, mathieu.poirier@...aro.org wrote:
> From: Hakan Berg <hakan.berg@...ricsson.com>
> 
> Ignore the low btemp interrupts for ab8500 3.0 and 3.3
> 
> Signed-off-by: Hakan Berg <hakan.berg@...ricsson.com>
> Signed-off-by: Mathieu Poirier <mathieu.poirier@...aro.org>
> Reviewed-by: Jonas ABERG <jonas.aberg@...ricsson.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 majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ