diff options
author | Cyrill Gorcunov <gorcunov@gmail.com> | 2008-08-18 12:45:55 -0400 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2008-08-18 20:07:15 -0400 |
commit | c40aaec6868401671a0ca14ed77e9b2da2d1f223 (patch) | |
tree | 18ea19449da6423e71df9306d23caee9cadaea16 /arch/x86 | |
parent | c43da2f5e92fe3bcc256f0c0d6cb858368da5bd9 (diff) |
x86: apic - unify __setup_APIC_LVTT
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'arch/x86')
-rw-r--r-- | arch/x86/kernel/apic_32.c | 10 | ||||
-rw-r--r-- | arch/x86/kernel/apic_64.c | 12 |
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); |