diff options
author | Archana Obannagari <aobann@codeaurora.org> | 2018-02-08 16:42:24 +0530 |
---|---|---|
committer | Archana Obannagari <aobann@codeaurora.org> | 2018-02-15 17:23:33 +0530 |
commit | bb5ab9b3374969f1fb10387f0f13ada895cf5f11 (patch) | |
tree | 48d9a8d576516d60fabbffee8f29f110b4f620bc /drivers/gpu/msm | |
parent | 6b83a15ee11921e51663980cdd8bfb714366d5cb (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.c | 13 |
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); |