aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/kernel/apic.c
diff options
context:
space:
mode:
authorCyrill Gorcunov <gorcunov@gmail.com>2008-10-10 11:00:17 -0400
committerIngo Molnar <mingo@elte.hu>2008-10-16 10:53:14 -0400
commit81608f3c254512b906ab78082ec5966b376aacd5 (patch)
tree1236eb32cb94df701abbfa9b77d87ea4792bb3bc /arch/x86/kernel/apic.c
parent4c66a73f0796dacc2ff0d4af75794ec843ceb3d1 (diff)
x86: apic - unify APIC_DIVISOR
Use APIC_DIVISOR being set to 16 for both 32/64bit mode. To escape APIC timer underflow during calibration set it to the maximum possible value. Also typo error (CONFG instead of proper CONFIG) fixed. The error was caught by Venkatesh Pallipadi, thanks a lot Venkatesh! See details on http://lkml.org/lkml/2008/10/9/425 Reported-by: Venkatesh Pallipad <venkatesh.pallipadi@intel.com> Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com> Acked-by: "Maciej W. Rozycki" <macro@linux-mips.org> Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'arch/x86/kernel/apic.c')
-rw-r--r--arch/x86/kernel/apic.c8
1 files changed, 2 insertions, 6 deletions
diff --git a/arch/x86/kernel/apic.c b/arch/x86/kernel/apic.c
index 1f48bd1c9f2d..04a7f960bbc0 100644
--- a/arch/x86/kernel/apic.c
+++ b/arch/x86/kernel/apic.c
@@ -332,11 +332,7 @@ int lapic_get_maxlvt(void)
332 */ 332 */
333 333
334/* Clock divisor */ 334/* Clock divisor */
335#ifdef CONFG_X86_64
336#define APIC_DIVISOR 1
337#else
338#define APIC_DIVISOR 16 335#define APIC_DIVISOR 16
339#endif
340 336
341/* 337/*
342 * This function sets up the local APIC timer, with a timeout of 338 * This function sets up the local APIC timer, with a timeout of
@@ -592,10 +588,10 @@ static int __init calibrate_APIC_clock(void)
592 global_clock_event->event_handler = lapic_cal_handler; 588 global_clock_event->event_handler = lapic_cal_handler;
593 589
594 /* 590 /*
595 * Setup the APIC counter to 1e9. There is no way the lapic 591 * Setup the APIC counter to maximum. There is no way the lapic
596 * can underflow in the 100ms detection time frame 592 * can underflow in the 100ms detection time frame
597 */ 593 */
598 __setup_APIC_LVTT(1000000000, 0, 0); 594 __setup_APIC_LVTT(0xffffffff, 0, 0);
599 595
600 /* Let the interrupts run */ 596 /* Let the interrupts run */
601 local_irq_enable(); 597 local_irq_enable();