Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1316467
| Path | csiph.com!eternal-september.org!feeder.eternal-september.org!feeds.phibee-telecom.net!news.panservice.it!bofh.it!news.nic.it!robomod |
|---|---|
| From | Wei Ni <wni@nvidia.com> |
| Newsgroups | linux.kernel |
| Subject | [PATCH V4 03/11] thermal: tegra: get rid of PDIV/HOTSPOT hack |
| Date | Mon, 25 Jan 2016 11:50:04 +0100 |
| Message-ID | <qUMSE-2CU-71@gated-at.bofh.it> (permalink) |
| X-Original-To | <thierry.reding@gmail.com>, <rui.zhang@intel.com> |
| X-PGP-Universal | processed; by hqnvupgp07.nvidia.com on Mon, 25 Jan 2016 02:43:55 -0800 |
| X-Mailer | git-send-email 1.9.1 |
| X-Nvconfidentiality | public |
| MIME-Version | 1.0 |
| X-Originating-IP | [10.19.224.146] |
| X-Clientproxiedby | DRBGMAIL101.nvidia.com (10.18.16.20) To HKMAIL101.nvidia.com (10.18.16.10) |
| Content-Type | text/plain |
| Sender | robomod@news.nic.it |
| List-ID | <linux-kernel.vger.kernel.org> |
| X-Mailing-List | linux-kernel@vger.kernel.org |
| Approved | robomod@news.nic.it |
| Lines | 63 |
| Organization | linux.* mail to news gateway |
| X-Original-Cc | <MLongnecker@nvidia.com>, <swarren@wwwdotorg.org>, <mikko.perttunen@kapsi.fi>, <linux-tegra@vger.kernel.org>, <linux-kernel@vger.kernel.org>, Wei Ni <wni@nvidia.com> |
| X-Original-Date | Mon, 25 Jan 2016 18:43:58 +0800 |
| X-Original-Message-ID | <1453718638-4170-1-git-send-email-wni@nvidia.com> |
| X-Original-Sender | linux-kernel-owner@vger.kernel.org |
| Xref | csiph.com linux.kernel:1316467 |
Show key headers only | View raw
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 6ef3a7dec1d8..0b9e6871a7d8 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)
@@ -438,6 +436,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;
@@ -495,8 +494,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);
/* Initialize thermctl sensors */
--
1.9.1
Back to linux.kernel | Previous | Next | Find similar | Unroll thread
[PATCH V4 03/11] thermal: tegra: get rid of PDIV/HOTSPOT hack Wei Ni <wni@nvidia.com> - 2016-01-25 11:50 +0100
csiph-web