aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86
diff options
context:
space:
mode:
authorCyrill Gorcunov <gorcunov@gmail.com>2008-08-18 12:45:55 -0400
committerIngo Molnar <mingo@elte.hu>2008-08-18 20:07:15 -0400
commitc40aaec6868401671a0ca14ed77e9b2da2d1f223 (patch)
tree18ea19449da6423e71df9306d23caee9cadaea16 /arch/x86
parentc43da2f5e92fe3bcc256f0c0d6cb858368da5bd9 (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.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);