diff options
Diffstat (limited to 'arch/x86/kernel/apic_64.c')
-rw-r--r-- | arch/x86/kernel/apic_64.c | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/arch/x86/kernel/apic_64.c b/arch/x86/kernel/apic_64.c index d74abf7e92f7..fe57db9f3fbb 100644 --- a/arch/x86/kernel/apic_64.c +++ b/arch/x86/kernel/apic_64.c | |||
@@ -259,8 +259,12 @@ int lapic_get_maxlvt(void) | |||
259 | * Local APIC timer | 259 | * Local APIC timer |
260 | */ | 260 | */ |
261 | 261 | ||
262 | /* Clock divisor is set to 1 */ | 262 | /* Clock divisor */ |
263 | #ifdef CONFG_X86_64 | ||
263 | #define APIC_DIVISOR 1 | 264 | #define APIC_DIVISOR 1 |
265 | #else | ||
266 | #define APIC_DIVISOR 16 | ||
267 | #endif | ||
264 | 268 | ||
265 | /* | 269 | /* |
266 | * This function sets up the local APIC timer, with a timeout of | 270 | * This function sets up the local APIC timer, with a timeout of |
@@ -291,9 +295,9 @@ static void __setup_APIC_LVTT(unsigned int clocks, int oneshot, int irqen) | |||
291 | * Divide PICLK by 16 | 295 | * Divide PICLK by 16 |
292 | */ | 296 | */ |
293 | tmp_value = apic_read(APIC_TDCR); | 297 | tmp_value = apic_read(APIC_TDCR); |
294 | apic_write(APIC_TDCR, (tmp_value | 298 | apic_write(APIC_TDCR, |
295 | & ~(APIC_TDR_DIV_1 | APIC_TDR_DIV_TMBASE)) | 299 | (tmp_value & ~(APIC_TDR_DIV_1 | APIC_TDR_DIV_TMBASE)) | |
296 | | APIC_TDR_DIV_16); | 300 | APIC_TDR_DIV_16); |
297 | 301 | ||
298 | if (!oneshot) | 302 | if (!oneshot) |
299 | apic_write(APIC_TMICT, clocks / APIC_DIVISOR); | 303 | apic_write(APIC_TMICT, clocks / APIC_DIVISOR); |