aboutsummaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorThomas Gleixner <tglx@linutronix.de>2007-10-12 17:04:06 -0400
committerThomas Gleixner <tglx@inhelltoy.tec.linutronix.de>2007-10-12 17:04:06 -0400
commit500ff08b76878a45391fffc7a4c972883503050e (patch)
tree7f597708789a036c29930ac04ff638a861d39b61 /arch
parent801740971af7c6256b7ad2472706d43ed008fd3d (diff)
x86_64: remove pit synchronization
The APIC timer setup code synchronizes the local APIC timer to the PIT/HPET. This is pointless as the PIT and the local APIC timer frequency are not correlated and the APIC timer calibration can never be accurate enough to avoid that the local APIC timer and the PIT/HPET drift apart. Simply remove it. 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.c18
1 files changed, 0 insertions, 18 deletions
diff --git a/arch/x86/kernel/apic_64.c b/arch/x86/kernel/apic_64.c
index ce2f8015d5ce..a73b443a1236 100644
--- a/arch/x86/kernel/apic_64.c
+++ b/arch/x86/kernel/apic_64.c
@@ -790,24 +790,6 @@ static void setup_APIC_timer(unsigned int clocks)
790 790
791 local_irq_save(flags); 791 local_irq_save(flags);
792 792
793 /* wait for irq slice */
794 if (hpet_address && hpet_use_timer) {
795 u32 trigger = hpet_readl(HPET_T0_CMP);
796 while (hpet_readl(HPET_T0_CMP) == trigger)
797 /* do nothing */ ;
798 } else {
799 int c1, c2;
800 outb_p(0x00, 0x43);
801 c2 = inb_p(0x40);
802 c2 |= inb_p(0x40) << 8;
803 do {
804 c1 = c2;
805 outb_p(0x00, 0x43);
806 c2 = inb_p(0x40);
807 c2 |= inb_p(0x40) << 8;
808 } while (c2 - c1 < 300);
809 }
810
811 irqen = ! cpu_isset(smp_processor_id(), 793 irqen = ! cpu_isset(smp_processor_id(),
812 timer_interrupt_broadcast_ipi_mask); 794 timer_interrupt_broadcast_ipi_mask);
813 __setup_APIC_LVTT(clocks, 0, irqen); 795 __setup_APIC_LVTT(clocks, 0, irqen);