diff options
| author | Steve French <sfrench@us.ibm.com> | 2006-03-20 16:58:09 +0000 | 
|---|---|---|
| committer | Steve French <sfrench@us.ibm.com> | 2006-03-20 16:58:09 +0000 | 
| commit | fd4a0b92db6a57cba8d03efbe1cebf91f9124ce0 (patch) | |
| tree | 5886a08bfa1132058b06074f4666a36dc5ddd2a1 /arch/i386/kernel/io_apic.c | |
| parent | 88274815f7477dc7550439413ab87c5ce4c5a623 (diff) | |
| parent | 7705a8792b0fc82fd7d4dd923724606bbfd9fb20 (diff) | |
Merge with /pub/scm/linux/kernel/git/torvalds/linux-2.6.git
Signed-off-by: Steve French <sfrench@us.ibm.com>
Diffstat (limited to 'arch/i386/kernel/io_apic.c')
| -rw-r--r-- | arch/i386/kernel/io_apic.c | 19 | 
1 files changed, 18 insertions, 1 deletions
| diff --git a/arch/i386/kernel/io_apic.c b/arch/i386/kernel/io_apic.c index 235822b3f41..39d9a5fa907 100644 --- a/arch/i386/kernel/io_apic.c +++ b/arch/i386/kernel/io_apic.c @@ -51,6 +51,8 @@ static struct { int pin, apic; } ioapic_i8259 = { -1, -1 };  static DEFINE_SPINLOCK(ioapic_lock); +int timer_over_8254 __initdata = 1; +  /*   *	Is the SiS APIC rmw bug present ?   *	-1 = don't know, 0 = no, 1 = yes @@ -2267,7 +2269,8 @@ static inline void check_timer(void)  	apic_write_around(APIC_LVT0, APIC_LVT_MASKED | APIC_DM_EXTINT);  	init_8259A(1);  	timer_ack = 1; -	enable_8259A_irq(0); +	if (timer_over_8254 > 0) +		enable_8259A_irq(0);  	pin1  = find_isa_irq_pin(0, mp_INT);  	apic1 = find_isa_irq_apic(0, mp_INT); @@ -2392,6 +2395,20 @@ void __init setup_IO_APIC(void)  		print_IO_APIC();  } +static int __init setup_disable_8254_timer(char *s) +{ +	timer_over_8254 = -1; +	return 1; +} +static int __init setup_enable_8254_timer(char *s) +{ +	timer_over_8254 = 2; +	return 1; +} + +__setup("disable_8254_timer", setup_disable_8254_timer); +__setup("enable_8254_timer", setup_enable_8254_timer); +  /*   *	Called after all the initialization is done. If we didnt find any   *	APIC bugs then we can allow the modify fast path | 
