summaryrefslogtreecommitdiff
path: root/drivers/gpu/msm
diff options
context:
space:
mode:
authorArchana Obannagari <aobann@codeaurora.org>2018-02-08 16:42:24 +0530
committerArchana Obannagari <aobann@codeaurora.org>2018-02-15 17:23:33 +0530
commitbb5ab9b3374969f1fb10387f0f13ada895cf5f11 (patch)
tree48d9a8d576516d60fabbffee8f29f110b4f620bc /drivers/gpu/msm
parent6b83a15ee11921e51663980cdd8bfb714366d5cb (diff)
msm: kgsl: Add a check for valid frequency of RBBM timer clock
rbbmtimer_clk hardwired fixed XO frequency 19.2Mhz. clock_round_rate() for RBBM timer clock fails with -EPERM as it is fixed. So added a check to make sure that rbbmtimer_clk clk_set_rate() has valid frequency. This avoids warning message in the driver log. Change-Id: I8f8bcec88e6a39e1550bb67590e6b66dba8e7a27 Signed-off-by: Archana Obannagari <aobann@codeaurora.org>
Diffstat (limited to 'drivers/gpu/msm')
-rw-r--r--drivers/gpu/msm/kgsl_pwrctrl.c13
1 files changed, 6 insertions, 7 deletions
diff --git a/drivers/gpu/msm/kgsl_pwrctrl.c b/drivers/gpu/msm/kgsl_pwrctrl.c
index c3b3ccf48a7b..ff6fae7c739b 100644
--- a/drivers/gpu/msm/kgsl_pwrctrl.c
+++ b/drivers/gpu/msm/kgsl_pwrctrl.c
@@ -1,4 +1,4 @@
-/* Copyright (c) 2010-2017, The Linux Foundation. All rights reserved.
+/* Copyright (c) 2010-2018, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
@@ -2124,7 +2124,7 @@ static inline void _close_clks(struct kgsl_device *device)
int kgsl_pwrctrl_init(struct kgsl_device *device)
{
- int i, k, m, n = 0, result;
+ int i, k, m, n = 0, result, freq;
struct platform_device *pdev = device->pdev;
struct kgsl_pwrctrl *pwr = &device->pwrctrl;
struct device_node *ocmem_bus_node;
@@ -2170,7 +2170,7 @@ int kgsl_pwrctrl_init(struct kgsl_device *device)
pwr->wakeup_maxpwrlevel = 0;
for (i = 0; i < pwr->num_pwrlevels; i++) {
- unsigned int freq = pwr->pwrlevels[i].gpu_freq;
+ freq = pwr->pwrlevels[i].gpu_freq;
if (freq > 0)
freq = clk_round_rate(pwr->grp_clks[0], freq);
@@ -2181,11 +2181,10 @@ int kgsl_pwrctrl_init(struct kgsl_device *device)
kgsl_pwrctrl_clk_set_rate(pwr->grp_clks[0],
pwr->pwrlevels[pwr->num_pwrlevels - 1].gpu_freq, clocks[0]);
- if (pwr->grp_clks[6] != NULL)
+ freq = clk_round_rate(pwr->grp_clks[6], KGSL_RBBMTIMER_CLK_FREQ);
+ if (freq > 0)
kgsl_pwrctrl_clk_set_rate(pwr->grp_clks[6],
- clk_round_rate(pwr->grp_clks[6],
- KGSL_RBBMTIMER_CLK_FREQ),
- clocks[6]);
+ freq, clocks[6]);
_isense_clk_set_rate(pwr, pwr->num_pwrlevels - 1);