All of lore.kernel.org
 help / color / mirror / Atom feed
From: Matthias Kaehlcke <mka@chromium.org>
To: Amit Kucheria <amit.kucheria@linaro.org>
Cc: linux-kernel@vger.kernel.org, rnayak@codeaurora.org,
	linux-arm-msm@vger.kernel.org, bjorn.andersson@linaro.org,
	edubezval@gmail.com, smohanad@codeaurora.org,
	andy.gross@linaro.org, dianders@chromium.org,
	Zhang Rui <rui.zhang@intel.com>,
	linux-pm@vger.kernel.org
Subject: Re: [PATCH v1 3/3] thermal: tsens: Fix negative temperature reporting
Date: Wed, 25 Jul 2018 16:49:36 -0700	[thread overview]
Message-ID: <20180725234936.GT129942@google.com> (raw)
In-Reply-To: <42d6f2a6f9babd6351bd2fcde4000d5ca9c351ce.1531898088.git.amit.kucheria@linaro.org>

On Wed, Jul 18, 2018 at 12:55:03PM +0530, Amit Kucheria wrote:
> The current code will always return 0xffffffff in case of negative
> temperatures due to a bug in how the binary sign extension is being done.
> 
> Use sign_extend32() instead.
> 
> Signed-off-by: Amit Kucheria <amit.kucheria@linaro.org>
> ---
>  drivers/thermal/qcom/tsens-v2.c | 13 +++++--------
>  1 file changed, 5 insertions(+), 8 deletions(-)
> 
> diff --git a/drivers/thermal/qcom/tsens-v2.c b/drivers/thermal/qcom/tsens-v2.c
> index 908e3dc..46abc21 100644
> --- a/drivers/thermal/qcom/tsens-v2.c
> +++ b/drivers/thermal/qcom/tsens-v2.c
> @@ -5,19 +5,20 @@
>   */
>  
>  #include <linux/regmap.h>
> +#include <linux/bitops.h>
>  #include "tsens.h"
>  
>  #define STATUS_OFFSET		0xa0
>  #define LAST_TEMP_MASK		0xfff
>  #define STATUS_VALID_BIT	BIT(21)
> -#define CODE_SIGN_BIT		BIT(11)
>  
>  static int get_temp_tsens_v2(struct tsens_device *tmdev, int id, int *temp)
>  {
>  	struct tsens_sensor *s = &tmdev->sensor[id];
>  	u32 code;
>  	unsigned int status_reg;
> -	int last_temp = 0, last_temp2 = 0, last_temp3 = 0, ret;
> +	u32 last_temp = 0, last_temp2 = 0, last_temp3 = 0;
> +	int ret;
>  
>  	status_reg = tmdev->tm_offset + STATUS_OFFSET + s->hw_id * 4;
>  	ret = regmap_read(tmdev->map, status_reg, &code);
> @@ -54,12 +55,8 @@ static int get_temp_tsens_v2(struct tsens_device *tmdev, int id, int *temp)
>  	else if (last_temp2 == last_temp3)
>  		last_temp = last_temp3;
>  done:
> -	/* Code sign bit is the sign extension for a negative value */
> -	if (last_temp & CODE_SIGN_BIT)
> -		last_temp |= ~CODE_SIGN_BIT;
> -
> -	/* Temperatures are in deciCelicius */
> -	*temp = last_temp * 100;
> +	/* Convert temperatures to milliCelicius */

nits:

s/temperatures/temperature/
s/milliCelicius/milliCelsius/

> +	*temp = sign_extend32(last_temp, fls(LAST_TEMP_MASK) - 1) * 100;
>  
>  	return 0;
>  }

Reviewed-by: Matthias Kaehlcke <mka@chromium.org>

  reply	other threads:[~2018-07-25 23:49 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-07-18  7:25 [PATCH v1 0/3] thermal: tsens: bugfixes, cleanups Amit Kucheria
2018-07-18  7:25 ` [PATCH v1 1/3] thermal: tsens: Rename variable Amit Kucheria
2018-07-25 22:44   ` Matthias Kaehlcke
2018-07-18  7:25 ` [PATCH v1 2/3] thermal: tsens: switch from of_iomap() to devm_ioremap_resource() Amit Kucheria
2018-07-25 22:56   ` Matthias Kaehlcke
2018-07-18  7:25 ` [PATCH v1 3/3] thermal: tsens: Fix negative temperature reporting Amit Kucheria
2018-07-25 23:49   ` Matthias Kaehlcke [this message]
2018-07-26 10:17     ` Amit Kucheria

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20180725234936.GT129942@google.com \
    --to=mka@chromium.org \
    --cc=amit.kucheria@linaro.org \
    --cc=andy.gross@linaro.org \
    --cc=bjorn.andersson@linaro.org \
    --cc=dianders@chromium.org \
    --cc=edubezval@gmail.com \
    --cc=linux-arm-msm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pm@vger.kernel.org \
    --cc=rnayak@codeaurora.org \
    --cc=rui.zhang@intel.com \
    --cc=smohanad@codeaurora.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.