aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/kernel
diff options
context:
space:
mode:
Diffstat (limited to 'arch/x86/kernel')
-rw-r--r--arch/x86/kernel/apic_32.c10
-rw-r--r--arch/x86/kernel/apic_64.c12
2 files changed, 15 insertions, 7 deletions
diff --git a/arch/x86/kernel/apic_32.c b/arch/x86/kernel/apic_32.c
index 3c1562afa274..65419c7d437f 100644
--- a/arch/x86/kernel/apic_32.c
+++ b/arch/x86/kernel/apic_32.c
@@ -248,8 +248,12 @@ int lapic_get_maxlvt(void)
248 * Local APIC timer 248 * Local APIC timer
249 */ 249 */
250 250
251/* Clock divisor is set to 16 */ 251/* Clock divisor */
252#ifdef CONFG_X86_64
253#define APIC_DIVISOR 1
254#else
252#define APIC_DIVISOR 16 255#define APIC_DIVISOR 16
256#endif
253 257
254/* 258/*
255 * This function sets up the local APIC timer, with a timeout of 259 * This function sets up the local APIC timer, with a timeout of
@@ -281,8 +285,8 @@ static void __setup_APIC_LVTT(unsigned int clocks, int oneshot, int irqen)
281 */ 285 */
282 tmp_value = apic_read(APIC_TDCR); 286 tmp_value = apic_read(APIC_TDCR);
283 apic_write(APIC_TDCR, 287 apic_write(APIC_TDCR,
284 (tmp_value & ~(APIC_TDR_DIV_1 | APIC_TDR_DIV_TMBASE)) | 288 (tmp_value & ~(APIC_TDR_DIV_1 | APIC_TDR_DIV_TMBASE)) |
285 APIC_TDR_DIV_16); 289 APIC_TDR_DIV_16);
286 290
287 if (!oneshot) 291 if (!oneshot)
288 apic_write(APIC_TMICT, clocks / APIC_DIVISOR); 292 apic_write(APIC_TMICT, clocks / APIC_DIVISOR);
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);