summaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorThomas Gleixner <tglx@linutronix.de>2007-10-12 23:04:06 +0200
committerThomas Gleixner <tglx@inhelltoy.tec.linutronix.de>2007-10-12 23:04:06 +0200
commitb58eb00df7f7f80b7f456bf8fb740fddf14408ba (patch)
treeb13160a5f0bafe870abb74e7a927c18008993fe0 /arch
parentx86_64: Move apic calibration code around (diff)
downloadlinux-b58eb00df7f7f80b7f456bf8fb740fddf14408ba.tar.xz
linux-b58eb00df7f7f80b7f456bf8fb740fddf14408ba.zip
x86_64: Remove APIC_DIVISOR
APIC_DIVISOR is rather useless. It makes the calibration result more accurate in the first place, but we discard this later when we write the value to the APIC timer by dividing the calibration value by APIC_DIVISOR. Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Signed-off-by: Chris Wright <chrisw@sous-sol.org> Signed-off-by: Ingo Molnar <mingo@elte.hu> Signed-off-by: Arjan van de Ven <arjan@linux.intel.com>
Diffstat (limited to 'arch')
-rw-r--r--arch/x86/kernel/apic_64.c8
1 files changed, 3 insertions, 5 deletions
diff --git a/arch/x86/kernel/apic_64.c b/arch/x86/kernel/apic_64.c
index b08c08ed36a7..f746f9dc8ced 100644
--- a/arch/x86/kernel/apic_64.c
+++ b/arch/x86/kernel/apic_64.c
@@ -759,8 +759,6 @@ void __init init_apic_mappings(void)
* P5 APIC double write bug.
*/
-#define APIC_DIVISOR 16
-
static void __setup_APIC_LVTT(unsigned int clocks, int oneshot, int irqen)
{
unsigned int lvtt_value, tmp_value;
@@ -782,7 +780,7 @@ static void __setup_APIC_LVTT(unsigned int clocks, int oneshot, int irqen)
| APIC_TDR_DIV_16);
if (!oneshot)
- apic_write(APIC_TMICT, clocks/APIC_DIVISOR);
+ apic_write(APIC_TMICT, clocks);
}
static void setup_APIC_timer(unsigned int clocks)
@@ -835,7 +833,7 @@ static void __init calibrate_APIC_clock(void)
*
* No interrupt enable !
*/
- __setup_APIC_LVTT(4000000000, 0, 0);
+ __setup_APIC_LVTT(250000000, 0, 0);
apic_start = apic_read(APIC_TMCCT);
#ifdef CONFIG_X86_PM_TIMER
@@ -862,7 +860,7 @@ static void __init calibrate_APIC_clock(void)
printk(KERN_INFO "Detected %d.%03d MHz APIC timer.\n",
result / 1000 / 1000, result / 1000 % 1000);
- calibration_result = result * APIC_DIVISOR / HZ;
+ calibration_result = result / HZ;
}
void __init setup_boot_APIC_clock (void)