All of lore.kernel.org
 help / color / mirror / Atom feed
From: Wei Ni <wni-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
To: Eduardo Valentin <edubezval-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
Cc: rui.zhang-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org,
	thierry.reding-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org,
	MLongnecker-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org,
	swarren-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org,
	mikko.perttunen-/1wQRMveznE@public.gmane.org,
	linux-tegra-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	linux-pm-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Subject: Re: [PATCH V7 03/12] thermal: tegra: get rid of PDIV/HOTSPOT hack
Date: Tue, 15 Mar 2016 14:21:53 +0800	[thread overview]
Message-ID: <56E7AA01.4000305@nvidia.com> (raw)
In-Reply-To: <20160314200539.GH1872-bi+AKbBUZKY6gyzm1THtWbp2dZbC/Bob@public.gmane.org>



On 2016年03月15日 04:05, Eduardo Valentin wrote:
> * PGP Signed by an unknown key
> 
> On Fri, Mar 11, 2016 at 11:09:14AM +0800, Wei Ni wrote:
>> Get rid of T124-specific PDIV/HOTSPOT hack.
>> tegra-soctherm.c contained a hack to set the SENSOR_PDIV and
>> SENSOR_HOTSPOT_OFFSET registers - it just did two writes of
>> T124-specific opaque values.  Convert these into a form that can be
>> substituted on a per-chip basis, and into structure fields that have
>> at least some independent meaning.
>>
>> Signed-off-by: Wei Ni <wni-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
>> ---
>>  drivers/thermal/tegra/tegra-soctherm.c | 18 ++++++++++++++----
>>  1 file changed, 14 insertions(+), 4 deletions(-)
>>
>> diff --git a/drivers/thermal/tegra/tegra-soctherm.c b/drivers/thermal/tegra/tegra-soctherm.c
>> index b3ec0faa2bee..b4b791ebfbb6 100644
>> --- a/drivers/thermal/tegra/tegra-soctherm.c
>> +++ b/drivers/thermal/tegra/tegra-soctherm.c
>> @@ -48,14 +48,12 @@
>>  #define SENSOR_CONFIG2_THERMB_SHIFT		0
>>  
>>  #define SENSOR_PDIV				0x1c0
>> -#define SENSOR_PDIV_T124			0x8888
>>  #define SENSOR_PDIV_CPU_MASK			(0xf << 12)
>>  #define SENSOR_PDIV_GPU_MASK			(0xf << 8)
>>  #define SENSOR_PDIV_MEM_MASK			(0xf << 4)
>>  #define SENSOR_PDIV_PLLX_MASK			(0xf << 0)
>>  
>>  #define SENSOR_HOTSPOT_OFF			0x1c4
>> -#define SENSOR_HOTSPOT_OFF_T124			0x00060600
>>  #define SENSOR_HOTSPOT_CPU_MASK			(0xff << 16)
>>  #define SENSOR_HOTSPOT_GPU_MASK			(0xff << 8)
>>  #define SENSOR_HOTSPOT_MEM_MASK			(0xff << 0)
>> @@ -436,6 +434,7 @@ static int tegra_soctherm_probe(struct platform_device *pdev)
>>  	struct resource *res;
>>  	unsigned int i;
>>  	int err;
>> +	u32 pdiv, hotspot;
>>  
>>  	const struct tegra_tsensor *tsensors = t124_tsensors;
>>  	const struct tegra_tsensor_group **ttgs = tegra124_tsensor_groups;
>> @@ -493,8 +492,19 @@ static int tegra_soctherm_probe(struct platform_device *pdev)
>>  			goto disable_clocks;
>>  	}
>>  
>> -	writel(SENSOR_PDIV_T124, tegra->regs + SENSOR_PDIV);
>> -	writel(SENSOR_HOTSPOT_OFF_T124, tegra->regs + SENSOR_HOTSPOT_OFF);
>> +	/* Program pdiv and hotspot offsets per THERM */
>> +	pdiv = readl(tegra->regs + SENSOR_PDIV);
>> +	hotspot = readl(tegra->regs + SENSOR_HOTSPOT_OFF);
>> +	for (i = 0; i < TEGRA124_SOCTHERM_SENSOR_NUM; ++i) {
>> +		pdiv = REG_SET_MASK(pdiv, ttgs[i]->pdiv_mask,
>> +				    ttgs[i]->pdiv);
>> +		if (ttgs[i]->id != TEGRA124_SOCTHERM_SENSOR_PLLX)
>> +			hotspot =  REG_SET_MASK(hotspot,
>> +						ttgs[i]->pllx_hotspot_mask,
>> +						ttgs[i]->pllx_hotspot_diff);
>> +	}
>> +	writel(pdiv, tegra->regs + SENSOR_PDIV);
>> +	writel(hotspot, tegra->regs + SENSOR_HOTSPOT_OFF);
> 
> Is the above logic the same for all supported chips? e.g. do we always
> skip pllx for hotspot configuration?

Yes, this logic support Tegra124, Tegra210, and Tegra132 which I will send out
in next series.

> 
> 
>>  
>>  	/* Initialize thermctl sensors */
>>  
>> -- 
>> 1.9.1
>>
> 
> * Unknown Key
> * 0x7DA4E256
> 

WARNING: multiple messages have this Message-ID (diff)
From: Wei Ni <wni@nvidia.com>
To: Eduardo Valentin <edubezval@gmail.com>
Cc: <rui.zhang@intel.com>, <thierry.reding@gmail.com>,
	<MLongnecker@nvidia.com>, <swarren@wwwdotorg.org>,
	<mikko.perttunen@kapsi.fi>, <linux-tegra@vger.kernel.org>,
	<linux-pm@vger.kernel.org>, <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH V7 03/12] thermal: tegra: get rid of PDIV/HOTSPOT hack
Date: Tue, 15 Mar 2016 14:21:53 +0800	[thread overview]
Message-ID: <56E7AA01.4000305@nvidia.com> (raw)
In-Reply-To: <20160314200539.GH1872@localhost.localdomain>



On 2016年03月15日 04:05, Eduardo Valentin wrote:
> * PGP Signed by an unknown key
> 
> On Fri, Mar 11, 2016 at 11:09:14AM +0800, Wei Ni wrote:
>> Get rid of T124-specific PDIV/HOTSPOT hack.
>> tegra-soctherm.c contained a hack to set the SENSOR_PDIV and
>> SENSOR_HOTSPOT_OFFSET registers - it just did two writes of
>> T124-specific opaque values.  Convert these into a form that can be
>> substituted on a per-chip basis, and into structure fields that have
>> at least some independent meaning.
>>
>> Signed-off-by: Wei Ni <wni@nvidia.com>
>> ---
>>  drivers/thermal/tegra/tegra-soctherm.c | 18 ++++++++++++++----
>>  1 file changed, 14 insertions(+), 4 deletions(-)
>>
>> diff --git a/drivers/thermal/tegra/tegra-soctherm.c b/drivers/thermal/tegra/tegra-soctherm.c
>> index b3ec0faa2bee..b4b791ebfbb6 100644
>> --- a/drivers/thermal/tegra/tegra-soctherm.c
>> +++ b/drivers/thermal/tegra/tegra-soctherm.c
>> @@ -48,14 +48,12 @@
>>  #define SENSOR_CONFIG2_THERMB_SHIFT		0
>>  
>>  #define SENSOR_PDIV				0x1c0
>> -#define SENSOR_PDIV_T124			0x8888
>>  #define SENSOR_PDIV_CPU_MASK			(0xf << 12)
>>  #define SENSOR_PDIV_GPU_MASK			(0xf << 8)
>>  #define SENSOR_PDIV_MEM_MASK			(0xf << 4)
>>  #define SENSOR_PDIV_PLLX_MASK			(0xf << 0)
>>  
>>  #define SENSOR_HOTSPOT_OFF			0x1c4
>> -#define SENSOR_HOTSPOT_OFF_T124			0x00060600
>>  #define SENSOR_HOTSPOT_CPU_MASK			(0xff << 16)
>>  #define SENSOR_HOTSPOT_GPU_MASK			(0xff << 8)
>>  #define SENSOR_HOTSPOT_MEM_MASK			(0xff << 0)
>> @@ -436,6 +434,7 @@ static int tegra_soctherm_probe(struct platform_device *pdev)
>>  	struct resource *res;
>>  	unsigned int i;
>>  	int err;
>> +	u32 pdiv, hotspot;
>>  
>>  	const struct tegra_tsensor *tsensors = t124_tsensors;
>>  	const struct tegra_tsensor_group **ttgs = tegra124_tsensor_groups;
>> @@ -493,8 +492,19 @@ static int tegra_soctherm_probe(struct platform_device *pdev)
>>  			goto disable_clocks;
>>  	}
>>  
>> -	writel(SENSOR_PDIV_T124, tegra->regs + SENSOR_PDIV);
>> -	writel(SENSOR_HOTSPOT_OFF_T124, tegra->regs + SENSOR_HOTSPOT_OFF);
>> +	/* Program pdiv and hotspot offsets per THERM */
>> +	pdiv = readl(tegra->regs + SENSOR_PDIV);
>> +	hotspot = readl(tegra->regs + SENSOR_HOTSPOT_OFF);
>> +	for (i = 0; i < TEGRA124_SOCTHERM_SENSOR_NUM; ++i) {
>> +		pdiv = REG_SET_MASK(pdiv, ttgs[i]->pdiv_mask,
>> +				    ttgs[i]->pdiv);
>> +		if (ttgs[i]->id != TEGRA124_SOCTHERM_SENSOR_PLLX)
>> +			hotspot =  REG_SET_MASK(hotspot,
>> +						ttgs[i]->pllx_hotspot_mask,
>> +						ttgs[i]->pllx_hotspot_diff);
>> +	}
>> +	writel(pdiv, tegra->regs + SENSOR_PDIV);
>> +	writel(hotspot, tegra->regs + SENSOR_HOTSPOT_OFF);
> 
> Is the above logic the same for all supported chips? e.g. do we always
> skip pllx for hotspot configuration?

Yes, this logic support Tegra124, Tegra210, and Tegra132 which I will send out
in next series.

> 
> 
>>  
>>  	/* Initialize thermctl sensors */
>>  
>> -- 
>> 1.9.1
>>
> 
> * Unknown Key
> * 0x7DA4E256
> 

  parent reply	other threads:[~2016-03-15  6:21 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-03-11  3:09 [PATCH V7 00/12] Add T210 support in Tegra soctherm Wei Ni
2016-03-11  3:09 ` Wei Ni
2016-03-11  3:09 ` [PATCH V7 01/12] thermal: tegra: move tegra thermal files into tegra directory Wei Ni
2016-03-11  3:09   ` Wei Ni
     [not found]   ` <1457665763-29781-2-git-send-email-wni-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2016-03-14 18:37     ` Eduardo Valentin
2016-03-14 18:37       ` Eduardo Valentin
     [not found]       ` <20160314183736.GA5378-bi+AKbBUZKY6gyzm1THtWbp2dZbC/Bob@public.gmane.org>
2016-03-15  6:17         ` Wei Ni
2016-03-15  6:17           ` Wei Ni
2016-03-11  3:09 ` [PATCH V7 02/12] thermal: tegra: combine sensor group-related data Wei Ni
2016-03-11  3:09   ` Wei Ni
2016-03-11  3:09 ` [PATCH V7 03/12] thermal: tegra: get rid of PDIV/HOTSPOT hack Wei Ni
2016-03-11  3:09   ` Wei Ni
2016-03-14 20:05   ` Eduardo Valentin
     [not found]     ` <20160314200539.GH1872-bi+AKbBUZKY6gyzm1THtWbp2dZbC/Bob@public.gmane.org>
2016-03-15  6:21       ` Wei Ni [this message]
2016-03-15  6:21         ` Wei Ni
     [not found]         ` <56E7AA01.4000305-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2016-03-15 19:56           ` Eduardo Valentin
2016-03-15 19:56             ` Eduardo Valentin
2016-03-16  3:48             ` Wei Ni
2016-03-16  3:48               ` Wei Ni
     [not found] ` <1457665763-29781-1-git-send-email-wni-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2016-03-11  3:09   ` [PATCH V7 04/12] thermal: tegra: split tegra_soctherm driver Wei Ni
2016-03-11  3:09     ` Wei Ni
2016-03-14 21:01   ` [PATCH V7 00/12] Add T210 support in Tegra soctherm Eduardo Valentin
2016-03-14 21:01     ` Eduardo Valentin
     [not found]     ` <20160314210152.GA4717-bi+AKbBUZKY6gyzm1THtWbp2dZbC/Bob@public.gmane.org>
2016-03-15  5:46       ` Wei Ni
2016-03-15  5:46         ` Wei Ni

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=56E7AA01.4000305@nvidia.com \
    --to=wni-ddmlm1+adcrqt0dzr+alfa@public.gmane.org \
    --cc=MLongnecker-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org \
    --cc=edubezval-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \
    --cc=linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=linux-pm-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=linux-tegra-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=mikko.perttunen-/1wQRMveznE@public.gmane.org \
    --cc=rui.zhang-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org \
    --cc=swarren-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org \
    --cc=thierry.reding-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.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.