From: Wei Ni <wni@nvidia.com> To: edubezval@gmail.com, rui.zhang@intel.com, thierry.reding@gmail.com Cc: 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, Wei Ni <wni@nvidia.com> Subject: [PATCH V9 RESEND 03/14] thermal: tegra: get rid of PDIV/HOTSPOT hack Date: Tue, 29 Mar 2016 18:29:13 +0800 [thread overview] Message-ID: <1459247364-1139-4-git-send-email-wni@nvidia.com> (raw) In-Reply-To: <1459247364-1139-1-git-send-email-wni@nvidia.com> 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 | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/drivers/thermal/tegra/tegra-soctherm.c b/drivers/thermal/tegra/tegra-soctherm.c index 7c1f41c0733a..e486d034adb4 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,20 @@ 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); + /* hotspot offset from PLLX, doesn't need to configure PLLX */ + 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); /* Initialize thermctl sensors */ -- 1.9.1
WARNING: multiple messages have this Message-ID (diff)
From: Wei Ni <wni@nvidia.com> To: <edubezval@gmail.com>, <rui.zhang@intel.com>, <thierry.reding@gmail.com> Cc: <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>, Wei Ni <wni@nvidia.com> Subject: [PATCH V9 RESEND 03/14] thermal: tegra: get rid of PDIV/HOTSPOT hack Date: Tue, 29 Mar 2016 18:29:13 +0800 [thread overview] Message-ID: <1459247364-1139-4-git-send-email-wni@nvidia.com> (raw) In-Reply-To: <1459247364-1139-1-git-send-email-wni@nvidia.com> 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 | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/drivers/thermal/tegra/tegra-soctherm.c b/drivers/thermal/tegra/tegra-soctherm.c index 7c1f41c0733a..e486d034adb4 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,20 @@ 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); + /* hotspot offset from PLLX, doesn't need to configure PLLX */ + 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); /* Initialize thermctl sensors */ -- 1.9.1
next prev parent reply other threads:[~2016-03-29 10:29 UTC|newest] Thread overview: 56+ messages / expand[flat|nested] mbox.gz Atom feed top 2016-03-29 10:29 [PATCH V9 RESEND 00/14] Add T210 support in Tegra soctherm Wei Ni 2016-03-29 10:29 ` Wei Ni 2016-03-29 10:29 ` [PATCH V9 RESEND 02/14] thermal: tegra: combine sensor group-related data Wei Ni 2016-03-29 10:29 ` Wei Ni 2016-03-29 10:29 ` Wei Ni [this message] 2016-03-29 10:29 ` [PATCH V9 RESEND 03/14] thermal: tegra: get rid of PDIV/HOTSPOT hack Wei Ni 2016-03-29 10:29 ` [PATCH V9 RESEND 04/14] thermal: tegra: split tegra_soctherm driver Wei Ni 2016-03-29 10:29 ` Wei Ni 2016-03-29 10:29 ` [PATCH V9 RESEND 05/14] thermal: tegra: add Tegra210 specific SOC_THERM driver Wei Ni 2016-03-29 10:29 ` Wei Ni 2016-03-29 10:29 ` [PATCH V9 RESEND 08/14] of: add notes of critical trips for soctherm Wei Ni 2016-03-29 10:29 ` Wei Ni 2016-03-29 10:29 ` [PATCH V9 RESEND 09/14] thermal: tegra: add thermtrip function Wei Ni 2016-03-29 10:29 ` Wei Ni 2016-03-29 10:29 ` [PATCH V9 RESEND 10/14] thermal: tegra: handle clocks in one function Wei Ni 2016-03-29 10:29 ` Wei Ni 2016-03-29 10:29 ` [PATCH V9 RESEND 12/14] thermal: tegra: add PM support Wei Ni 2016-03-29 10:29 ` Wei Ni 2016-03-29 10:29 ` [PATCH V9 RESEND 14/14] arm: tegra: set critical trips for Tegra124 Wei Ni 2016-03-29 10:29 ` Wei Ni 2016-03-29 15:17 ` Eduardo Valentin [not found] ` <20160329151705.GC1855-bi+AKbBUZKY6gyzm1THtWbp2dZbC/Bob@public.gmane.org> 2016-04-01 7:04 ` Wei Ni 2016-04-01 7:04 ` Wei Ni 2016-04-12 8:53 ` Wei Ni 2016-04-12 8:53 ` Wei Ni 2016-03-30 10:30 ` Wei Ni 2016-03-30 10:30 ` Wei Ni 2016-03-29 10:36 ` [PATCH V9 RESEND 00/14] Add T210 support in Tegra soctherm Wei Ni 2016-03-29 10:36 ` Wei Ni 2016-03-29 15:13 ` Eduardo Valentin [not found] ` <1459247364-1139-1-git-send-email-wni-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org> 2016-03-29 10:29 ` [PATCH V9 RESEND 01/14] thermal: tegra: move tegra thermal files into tegra directory Wei Ni 2016-03-29 10:29 ` Wei Ni 2016-03-29 10:29 ` [PATCH V9 RESEND 06/14] thermal: tegra: add a debugfs to show registers Wei Ni 2016-03-29 10:29 ` Wei Ni 2016-03-29 10:29 ` [PATCH V9 RESEND 07/14] thermal: of-thermal: allow setting trip_temp on hardware Wei Ni 2016-03-29 10:29 ` Wei Ni 2016-03-29 10:29 ` [PATCH V9 RESEND 11/14] thermal: tegra: handle HW initialization in one funcotion Wei Ni 2016-03-29 10:29 ` Wei Ni 2016-03-29 10:29 ` [PATCH V9 RESEND 13/14] arm64: tegra: add soctherm node for Tegra210 Wei Ni 2016-03-29 10:29 ` Wei Ni [not found] ` <1459247364-1139-14-git-send-email-wni-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org> 2016-03-29 15:16 ` Eduardo Valentin 2016-03-29 15:16 ` Eduardo Valentin 2016-03-30 3:24 ` Wei Ni 2016-03-30 3:24 ` Wei Ni [not found] ` <56FB4703.7020201-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org> 2016-03-30 10:28 ` Wei Ni 2016-03-30 10:28 ` Wei Ni 2016-04-01 7:01 ` Wei Ni 2016-04-01 7:01 ` Wei Ni 2016-04-12 8:53 ` Wei Ni 2016-04-12 8:53 ` Wei Ni [not found] ` <570CB781.8040208-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org> 2016-04-26 3:36 ` Wei Ni 2016-04-26 3:36 ` Wei Ni 2016-05-03 9:29 ` Wei Ni 2016-05-03 9:29 ` Wei Ni 2016-03-29 15:18 ` [PATCH V9 RESEND 00/14] Add T210 support in Tegra soctherm Eduardo Valentin 2016-03-29 15:18 ` Eduardo Valentin
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=1459247364-1139-4-git-send-email-wni@nvidia.com \ --to=wni@nvidia.com \ --cc=MLongnecker@nvidia.com \ --cc=edubezval@gmail.com \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-pm@vger.kernel.org \ --cc=linux-tegra@vger.kernel.org \ --cc=mikko.perttunen@kapsi.fi \ --cc=rui.zhang@intel.com \ --cc=swarren@wwwdotorg.org \ --cc=thierry.reding@gmail.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: linkBe 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.