aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/plat-s3c24xx/s3c2443-clock.c
diff options
context:
space:
mode:
authorHeiko Stuebner <heiko@sntech.de>2011-10-14 02:08:57 -0400
committerKukjin Kim <kgene.kim@samsung.com>2011-10-14 02:15:52 -0400
commit866a1c8c354e613c2bf378a1cd562756d4a32e75 (patch)
tree2b3e9e37630ee93357b39e6aec8d1d62380996c9 /arch/arm/plat-s3c24xx/s3c2443-clock.c
parentf9f7c7503f7002deffe4cb8409ccada075a52522 (diff)
ARM: S3C2443: Accommodate cpufreq frequency scheme in armdiv
Cpufreq uses frequencies in kHz and not Hz, so set_rate and round_rate would be called with a frequency of 266666000 instead of 266666666 but the clock functions check for rates smaller or equal to the targetrate. As the armdiv does not support steps this small we can accommodate this by simply also setting the last 3 digits of the calculated rate to zero. Signed-off-by: Heiko Stuebner <heiko@sntech.de> Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
Diffstat (limited to 'arch/arm/plat-s3c24xx/s3c2443-clock.c')
-rw-r--r--arch/arm/plat-s3c24xx/s3c2443-clock.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/arch/arm/plat-s3c24xx/s3c2443-clock.c b/arch/arm/plat-s3c24xx/s3c2443-clock.c
index 31f97f1bb363..40a87206400f 100644
--- a/arch/arm/plat-s3c24xx/s3c2443-clock.c
+++ b/arch/arm/plat-s3c24xx/s3c2443-clock.c
@@ -185,7 +185,8 @@ static unsigned long s3c2443_armclk_roundrate(struct clk *clk,
185 for (ptr = 0; ptr < nr_armdiv; ptr++) { 185 for (ptr = 0; ptr < nr_armdiv; ptr++) {
186 div = armdiv[ptr]; 186 div = armdiv[ptr];
187 if (div) { 187 if (div) {
188 calc = parent / div; 188 /* cpufreq provides 266mhz as 266666000 not 266666666 */
189 calc = (parent / div / 1000) * 1000;
189 if (calc <= rate && div < best) 190 if (calc <= rate && div < best)
190 best = div; 191 best = div;
191 } 192 }
@@ -225,7 +226,8 @@ static int s3c2443_armclk_setrate(struct clk *clk, unsigned long rate)
225 for (ptr = 0; ptr < nr_armdiv; ptr++) { 226 for (ptr = 0; ptr < nr_armdiv; ptr++) {
226 div = armdiv[ptr]; 227 div = armdiv[ptr];
227 if (div) { 228 if (div) {
228 calc = parent / div; 229 /* cpufreq provides 266mhz as 266666000 not 266666666 */
230 calc = (parent / div / 1000) * 1000;
229 if (calc <= rate && div < best) { 231 if (calc <= rate && div < best) {
230 best = div; 232 best = div;
231 val = ptr; 233 val = ptr;