From: Amit Kucheria Date: Wed, 20 Mar 2019 13:17:58 +0000 (+0530) Subject: drivers: thermal: tsens: Common get_temp() learns to do ADC conversion X-Git-Tag: v5.2-rc1~47^2~29 X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=14bbe98811209f3fb3f8143285ddcf1f6108aae4;p=uclinux-h8%2Flinux.git drivers: thermal: tsens: Common get_temp() learns to do ADC conversion get_temp() learns to return temperature regardless of whether it is returned as ADC code or direct temperature. Signed-off-by: Amit Kucheria Signed-off-by: Eduardo Valentin --- diff --git a/drivers/thermal/qcom/tsens-common.c b/drivers/thermal/qcom/tsens-common.c index 5adbf1a2e0fb..92747ccb2850 100644 --- a/drivers/thermal/qcom/tsens-common.c +++ b/drivers/thermal/qcom/tsens-common.c @@ -129,10 +129,15 @@ int get_temp_tsens_valid(struct tsens_priv *priv, int i, int *temp) if (ret) return ret; - mask = GENMASK(priv->fields[LAST_TEMP_0].msb, - priv->fields[LAST_TEMP_0].lsb); - /* Convert temperature from deciCelsius to milliCelsius */ - *temp = sign_extend32(last_temp, fls(mask) - 1) * 100; + if (priv->feat->adc) { + /* Convert temperature from ADC code to milliCelsius */ + *temp = code_to_degc(last_temp, s) * 1000; + } else { + mask = GENMASK(priv->fields[LAST_TEMP_0].msb, + priv->fields[LAST_TEMP_0].lsb); + /* Convert temperature from deciCelsius to milliCelsius */ + *temp = sign_extend32(last_temp, fls(mask) - 1) * 100; + } return 0; }