summaryrefslogtreecommitdiff
path: root/arch/mips/netlogic/common/time.c
diff options
context:
space:
mode:
authorJayachandran C <jchandra@broadcom.com>2013-01-14 15:12:00 (GMT)
committerJohn Crispin <blogic@openwrt.org>2013-02-16 23:15:21 (GMT)
commit37a7059bc4228613867645be50120aff17a162a1 (patch)
tree2079e8eeecc7947dd804fbe520326dfa72d4ce99 /arch/mips/netlogic/common/time.c
parent5a4cbe381122e41749cadf24d59cd63ed84f41c0 (diff)
downloadlinux-fsl-qoriq-37a7059bc4228613867645be50120aff17a162a1.tar.xz
MIPS: Netlogic: use preset loops per jiffy
Doing calibrate delay on a hardware thread will be inaccurate since it depends on the load on other threads in the core. It will also slow down the boot process when done for 128 hardware threads. Switch to a pre-computed loops per jiffy based on the core frequency. The value is computed based on the core frequency and roughly matches the value calculated by calibrate_delay(). Signed-off-by: Jayachandran C <jchandra@broadcom.com> Patchwork: http://patchwork.linux-mips.org/patch/4791/ Signed-off-by: John Crispin <blogic@openwrt.org>
Diffstat (limited to 'arch/mips/netlogic/common/time.c')
-rw-r--r--arch/mips/netlogic/common/time.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/arch/mips/netlogic/common/time.c b/arch/mips/netlogic/common/time.c
index 20f89bc..5c56555 100644
--- a/arch/mips/netlogic/common/time.c
+++ b/arch/mips/netlogic/common/time.c
@@ -98,6 +98,10 @@ void __init plat_time_init(void)
{
nlm_init_pic_timer();
mips_hpt_frequency = nlm_get_cpu_frequency();
+ if (current_cpu_type() == CPU_XLR)
+ preset_lpj = mips_hpt_frequency / (3 * HZ);
+ else
+ preset_lpj = mips_hpt_frequency / (2 * HZ);
pr_info("MIPS counter frequency [%ld]\n",
(unsigned long)mips_hpt_frequency);
}