linux-pm.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
To: Daniel Lezcano <daniel.lezcano@linaro.org>
Cc: Eduardo Valentin <edubezval@gmail.com>,
	Zhang Rui <rui.zhang@intel.com>,
	Krzysztof Kozlowski <krzk@kernel.org>,
	Kukjin Kim <kgene@kernel.org>,
	linux-samsung-soc@vger.kernel.org, linux-pm@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	Marek Szyprowski <m.szyprowski@samsung.com>
Subject: Re: [PATCH 02/14] thermal: exynos: Propagate error value from tmu_read()
Date: Mon, 16 Apr 2018 14:35:01 +0200	[thread overview]
Message-ID: <6993557.YT37RIp4lG@amdc3058> (raw)
In-Reply-To: <39e461aa-2a60-f3cf-d116-fc7e97f9da2e@linaro.org>

On Monday, April 16, 2018 02:16:56 PM Daniel Lezcano wrote:
> On 16/04/2018 12:11, Bartlomiej Zolnierkiewicz wrote:
> > From: Marek Szyprowski <m.szyprowski@samsung.com>
> > 
> > tmu_read() in case of Exynos4210 might return error for out of bound
> > values. Current code ignores such value, what leads to reporting critical
> > temperature value. Add proper error code propagation to exynos_get_temp()
> > function.
> 
> For me the comment in the function exynos4210_tmu_read
> 
> /* "temp_code" should range between 75 and 175 */
> 
> ... is strange. I would double check this assertion before dealing with
> the error value.

static int exynos4210_tmu_read(struct exynos_tmu_data *data)
{
	int ret = readb(data->base + EXYNOS_TMU_REG_CURRENT_TEMP);

	/* "temp_code" should range between 75 and 175 */
	return (ret < 75 || ret > 175) ? -ENODATA : ret;
}

The value returned by Exynos4210 hardware should be > 75 && < 175 and
it is later used as the "temp_code" parameter for code_to_temp():

static int code_to_temp(struct exynos_tmu_data *data, u16 temp_code)
{
	if (data->cal_type == TYPE_ONE_POINT_TRIMMING)
		return temp_code - data->temp_error1 + EXYNOS_FIRST_POINT_TRIM;

	return (temp_code - data->temp_error1) *
		(EXYNOS_SECOND_POINT_TRIM - EXYNOS_FIRST_POINT_TRIM) /
		(data->temp_error2 - data->temp_error1) +
		EXYNOS_FIRST_POINT_TRIM;
}

so after the current fix the code finally matches the comment.

> > Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
> > CC: stable@vger.kernel.org # v4.6+
> > Signed-off-by: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
> > ---
> >  drivers/thermal/samsung/exynos_tmu.c | 9 +++++++--
> >  1 file changed, 7 insertions(+), 2 deletions(-)
> > 
> > diff --git a/drivers/thermal/samsung/exynos_tmu.c b/drivers/thermal/samsung/exynos_tmu.c
> > index 986cbd0..ac83f72 100644
> > --- a/drivers/thermal/samsung/exynos_tmu.c
> > +++ b/drivers/thermal/samsung/exynos_tmu.c
> > @@ -892,6 +892,7 @@ static void exynos7_tmu_control(struct platform_device *pdev, bool on)
> >  static int exynos_get_temp(void *p, int *temp)
> >  {
> >  	struct exynos_tmu_data *data = p;
> > +	int value, ret = 0;
> >  
> >  	if (!data || !data->tmu_read || !data->enabled)
> >  		return -EINVAL;
> > @@ -899,12 +900,16 @@ static int exynos_get_temp(void *p, int *temp)
> >  	mutex_lock(&data->lock);
> >  	clk_enable(data->clk);
> >  
> > -	*temp = code_to_temp(data, data->tmu_read(data)) * MCELSIUS;
> > +	value = data->tmu_read(data);
> > +	if (value < 0)
> > +		ret = value;
> > +	else
> > +		*temp = code_to_temp(data, value) * MCELSIUS;
> >  
> >  	clk_disable(data->clk);
> >  	mutex_unlock(&data->lock);
> >  
> > -	return 0;
> > +	return ret;
> >  }
> >  
> >  #ifdef CONFIG_THERMAL_EMULATION

Best regards,
--
Bartlomiej Zolnierkiewicz
Samsung R&D Institute Poland
Samsung Electronics

  parent reply	other threads:[~2018-04-16 12:35 UTC|newest]

Thread overview: 43+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <CGME20180416101225epcas2p42e345645d822cd869dbdb449becf1c7a@epcas2p4.samsung.com>
2018-04-16 10:11 ` [PATCH 00/14] thermal: exynos: pending fixes and cleanups Bartlomiej Zolnierkiewicz
     [not found]   ` <CGME20180416101339epcas2p171d462b70a85a6fff3bb939fca6d469d@epcas2p1.samsung.com>
2018-04-16 10:11     ` [PATCH 01/14] thermal: exynos: Reading temperature makes sense only when TMU is turned on Bartlomiej Zolnierkiewicz
2018-04-16 12:06       ` Daniel Lezcano
     [not found]         ` <CGME20180416121746eucas1p1de1cf16bcf7d8fdccd87ac41db735ef6@eucas1p1.samsung.com>
2018-04-16 12:17           ` Bartlomiej Zolnierkiewicz
2018-04-16 12:39             ` Daniel Lezcano
     [not found]   ` <CGME20180416101350epcas1p46d9415458ec463afb2a071a9f765f0ed@epcas1p4.samsung.com>
2018-04-16 10:11     ` [PATCH 02/14] thermal: exynos: Propagate error value from tmu_read() Bartlomiej Zolnierkiewicz
2018-04-16 12:16       ` Daniel Lezcano
     [not found]         ` <CGME20180416123502eucas1p1113fb99938a09a6f425e0ed6bfa6be60@eucas1p1.samsung.com>
2018-04-16 12:35           ` Bartlomiej Zolnierkiewicz [this message]
2018-04-16 12:41             ` Daniel Lezcano
     [not found]               ` <CGME20180416124956eucas1p17636602f59e7ad83088253ed369e7894@eucas1p1.samsung.com>
2018-04-16 12:49                 ` Bartlomiej Zolnierkiewicz
2018-04-16 12:54                   ` Daniel Lezcano
     [not found]                     ` <CGME20180416130254eucas1p24732958e5b202cacaddc69cde747a478@eucas1p2.samsung.com>
2018-04-16 13:02                       ` Bartlomiej Zolnierkiewicz
     [not found]   ` <CGME20180416101353epcas2p1793d6079b1a1fbb8b4841ee562b22155@epcas2p1.samsung.com>
2018-04-16 10:11     ` [PATCH 03/14] thermal: exynos: Read soc_type from match data Bartlomiej Zolnierkiewicz
2018-04-16 12:19       ` Daniel Lezcano
     [not found]         ` <CGME20180416124129eucas1p1545c737e0feb0f9f2c327b8597c46bce@eucas1p1.samsung.com>
2018-04-16 12:41           ` Bartlomiej Zolnierkiewicz
2018-04-16 12:47             ` Daniel Lezcano
     [not found]   ` <CGME20180416101357epcas2p16992f345f7dcebd90e3d4e50afbeeb88@epcas2p1.samsung.com>
2018-04-16 10:11     ` [PATCH 04/14] thermal: exynos: remove unused "type" field from struct exynos_tmu_platform_data Bartlomiej Zolnierkiewicz
2018-04-16 12:50       ` Daniel Lezcano
     [not found]   ` <CGME20180416101400epcas1p45e65b37b922a5d0265de7879eeb1df87@epcas1p4.samsung.com>
2018-04-16 10:11     ` [PATCH 05/14] thermal: exynos: remove parsing of samsung,tmu_default_temp_offset property Bartlomiej Zolnierkiewicz
2018-04-16 12:55       ` Daniel Lezcano
     [not found]   ` <CGME20180416101403epcas2p23c050a54c2cc8af9c8be76061d560937@epcas2p2.samsung.com>
2018-04-16 10:11     ` [PATCH 06/14] thermal: exynos: remove parsing of samsung,tmu_[first,second]_point_trim properties Bartlomiej Zolnierkiewicz
2018-04-16 12:57       ` Daniel Lezcano
     [not found]   ` <CGME20180416101406epcas2p267a664bb26a00bdca6c4c176f9ce08ed@epcas2p2.samsung.com>
2018-04-16 10:11     ` [PATCH 07/14] thermal: exynos: remove parsing of samsung,tmu_noise_cancel_mode property Bartlomiej Zolnierkiewicz
2018-04-16 13:03       ` Daniel Lezcano
     [not found]   ` <CGME20180416101409epcas1p4f8e0279a94322d1cc423ced6dfce3362@epcas1p4.samsung.com>
2018-04-16 10:11     ` [PATCH 08/14] thermal: exynos: remove parsing of samsung,tmu[_min,_max]_efuse_value properties Bartlomiej Zolnierkiewicz
2018-04-16 13:15       ` Daniel Lezcano
     [not found]   ` <CGME20180416101412epcas2p241ac78d221c7c288e79fc410dd90d6ab@epcas2p2.samsung.com>
2018-04-16 10:12     ` [PATCH 09/14] thermal: exynos: remove parsing of samsung,tmu_reference_voltage property Bartlomiej Zolnierkiewicz
2018-04-16 13:16       ` Daniel Lezcano
     [not found]   ` <CGME20180416101415epcas1p1b1108c9d654a7b2832179b5c1f49ff4a@epcas1p1.samsung.com>
2018-04-16 10:12     ` [PATCH 10/14] thermal: exynos: remove parsing of samsung,tmu_gain property Bartlomiej Zolnierkiewicz
2018-04-16 13:18       ` Daniel Lezcano
     [not found]   ` <CGME20180416101419epcas2p17dfedf3e376603baa8a4e52ffc82f0cb@epcas2p1.samsung.com>
2018-04-16 10:12     ` [PATCH 11/14] thermal: exynos: remove parsing of samsung,tmu_cal_type property Bartlomiej Zolnierkiewicz
2018-04-16 13:19       ` Daniel Lezcano
     [not found]   ` <CGME20180416101422epcas2p34c80b64c6c762b98ae4fecfe6a4db4f8@epcas2p3.samsung.com>
2018-04-16 10:12     ` [PATCH 12/14] thermal: exynos: remove separate exynos_tmu.h header file Bartlomiej Zolnierkiewicz
2018-04-16 13:24       ` Daniel Lezcano
     [not found]         ` <CGME20180416142452eucas1p2feb091d3ba51e78f42e93e184eb01291@eucas1p2.samsung.com>
2018-04-16 14:24           ` Bartlomiej Zolnierkiewicz
     [not found]   ` <CGME20180416101425epcas1p46ab4d827e3a64c5c16b32a17f63dd9d0@epcas1p4.samsung.com>
2018-04-16 10:12     ` [PATCH 13/14] ARM: dts: exynos: remove no longer needed samsung thermal properties Bartlomiej Zolnierkiewicz
2018-04-16 12:16       ` Krzysztof Kozlowski
2018-06-20 19:17       ` Krzysztof Kozlowski
     [not found]   ` <CGME20180416101428epcas1p1d9646bf1b56f0512a3fa3a6301b793c6@epcas1p1.samsung.com>
2018-04-16 10:12     ` [PATCH 14/14] arm64: " Bartlomiej Zolnierkiewicz
2018-04-16 13:02       ` Daniel Lezcano
     [not found]         ` <CGME20180416130917eucas1p10012e5d79bf59adc677e7e2364bae589@eucas1p1.samsung.com>
2018-04-16 13:09           ` Bartlomiej Zolnierkiewicz
2018-04-16 13:10             ` Daniel Lezcano
2018-06-20 19:19       ` Krzysztof Kozlowski

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=6993557.YT37RIp4lG@amdc3058 \
    --to=b.zolnierkie@samsung.com \
    --cc=daniel.lezcano@linaro.org \
    --cc=edubezval@gmail.com \
    --cc=kgene@kernel.org \
    --cc=krzk@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pm@vger.kernel.org \
    --cc=linux-samsung-soc@vger.kernel.org \
    --cc=m.szyprowski@samsung.com \
    --cc=rui.zhang@intel.com \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).