aboutsummaryrefslogtreecommitdiffstats
path: root/init
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2012-01-11 22:13:40 -0500
committerLinus Torvalds <torvalds@linux-foundation.org>2012-01-11 22:13:40 -0500
commit9fc5c3e3237e02a94f41cd1d2b4291593d29791d (patch)
treec8823725b10bd4d36e9311ea392dfdecb4db7974 /init
parent541048a1d31399ccdda27346a37eae4a2ad55186 (diff)
parent7c9c3a1e5fc8728e948b8fa3cbcfcfb86db3afda (diff)
Merge branch 'x86-platform-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
* 'x86-platform-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: x86/intel config: Fix the APB_TIMER selection x86/mrst: Add additional debug prints for pb_keys x86/intel config: Revamp configuration to allow for Moorestown and Medfield x86/intel/scu/ipc: Match the changes in the x86 configuration x86/apb: Fix configuration constraints x86: Fix INTEL_MID silly x86/Kconfig: Cyclone-timer depends on x86-summit x86: Reduce clock calibration time during slave cpu startup x86/config: Revamp configuration for MID devices x86/sfi: Kill the IRQ as id hack
Diffstat (limited to 'init')
-rw-r--r--init/calibrate.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/init/calibrate.c b/init/calibrate.c
index 24df7976816c..5f117ca9e069 100644
--- a/init/calibrate.c
+++ b/init/calibrate.c
@@ -246,6 +246,19 @@ recalibrate:
246 246
247static DEFINE_PER_CPU(unsigned long, cpu_loops_per_jiffy) = { 0 }; 247static DEFINE_PER_CPU(unsigned long, cpu_loops_per_jiffy) = { 0 };
248 248
249/*
250 * Check if cpu calibration delay is already known. For example,
251 * some processors with multi-core sockets may have all cores
252 * with the same calibration delay.
253 *
254 * Architectures should override this function if a faster calibration
255 * method is available.
256 */
257unsigned long __attribute__((weak)) __cpuinit calibrate_delay_is_known(void)
258{
259 return 0;
260}
261
249void __cpuinit calibrate_delay(void) 262void __cpuinit calibrate_delay(void)
250{ 263{
251 unsigned long lpj; 264 unsigned long lpj;
@@ -265,6 +278,8 @@ void __cpuinit calibrate_delay(void)
265 lpj = lpj_fine; 278 lpj = lpj_fine;
266 pr_info("Calibrating delay loop (skipped), " 279 pr_info("Calibrating delay loop (skipped), "
267 "value calculated using timer frequency.. "); 280 "value calculated using timer frequency.. ");
281 } else if ((lpj = calibrate_delay_is_known())) {
282 ;
268 } else if ((lpj = calibrate_delay_direct()) != 0) { 283 } else if ((lpj = calibrate_delay_direct()) != 0) {
269 if (!printed) 284 if (!printed)
270 pr_info("Calibrating delay using timer " 285 pr_info("Calibrating delay using timer "