58,6 → 58,8 |
unsigned char save_CMOS_regA; |
unsigned char save_CMOS_regB; |
|
unsigned long msr_original_low, msr_original_high; |
|
unsigned char X86_tsc = 0; |
unsigned char X86_apic = 0; |
unsigned char use_tsc = 0; |
424,7 → 426,6 |
|
void ll_init_advtimer() |
{ |
unsigned long msr_low_orig, tmp; |
|
#ifdef __TSC__ |
use_tsc = X86_tsc; |
450,8 → 451,8 |
init_time.tv_nsec = 0; |
|
if (use_apic) { |
rdmsr(APIC_BASE_MSR, msr_low_orig, tmp); |
wrmsr(APIC_BASE_MSR, msr_low_orig|(1<<11), 0); |
rdmsr(APIC_BASE_MSR, msr_original_low, msr_original_high); |
wrmsr(APIC_BASE_MSR, msr_original_low|(1<<11), 0); |
|
clear_local_APIC(); |
|
470,14 → 471,12 |
|
/* Disable APIC */ |
if (use_apic) { |
unsigned int msr_low_orig, tmp; |
|
f = ll_fsave(); |
|
disable_APIC_timer(); |
|
rdmsr(APIC_BASE_MSR, msr_low_orig, tmp); |
wrmsr(APIC_BASE_MSR, msr_low_orig&~(1<<11), 0); |
wrmsr(APIC_BASE_MSR, msr_original_low, msr_original_high); |
|
ll_frestore(f); |
} |