x86: apic - unify __setup_APIC_LVTT
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com> Signed-off-by: Ingo Molnar <mingo@elte.hu>
This commit is contained in:
parent
c43da2f5e9
commit
c40aaec686
@ -248,8 +248,12 @@ int lapic_get_maxlvt(void)
|
|||||||
* Local APIC timer
|
* Local APIC timer
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* Clock divisor is set to 16 */
|
/* Clock divisor */
|
||||||
|
#ifdef CONFG_X86_64
|
||||||
|
#define APIC_DIVISOR 1
|
||||||
|
#else
|
||||||
#define APIC_DIVISOR 16
|
#define APIC_DIVISOR 16
|
||||||
|
#endif
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* This function sets up the local APIC timer, with a timeout of
|
* 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)
|
|||||||
*/
|
*/
|
||||||
tmp_value = apic_read(APIC_TDCR);
|
tmp_value = apic_read(APIC_TDCR);
|
||||||
apic_write(APIC_TDCR,
|
apic_write(APIC_TDCR,
|
||||||
(tmp_value & ~(APIC_TDR_DIV_1 | APIC_TDR_DIV_TMBASE)) |
|
(tmp_value & ~(APIC_TDR_DIV_1 | APIC_TDR_DIV_TMBASE)) |
|
||||||
APIC_TDR_DIV_16);
|
APIC_TDR_DIV_16);
|
||||||
|
|
||||||
if (!oneshot)
|
if (!oneshot)
|
||||||
apic_write(APIC_TMICT, clocks / APIC_DIVISOR);
|
apic_write(APIC_TMICT, clocks / APIC_DIVISOR);
|
||||||
|
@ -259,8 +259,12 @@ int lapic_get_maxlvt(void)
|
|||||||
* Local APIC timer
|
* Local APIC timer
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* Clock divisor is set to 1 */
|
/* Clock divisor */
|
||||||
|
#ifdef CONFG_X86_64
|
||||||
#define APIC_DIVISOR 1
|
#define APIC_DIVISOR 1
|
||||||
|
#else
|
||||||
|
#define APIC_DIVISOR 16
|
||||||
|
#endif
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* This function sets up the local APIC timer, with a timeout of
|
* 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)
|
|||||||
* Divide PICLK by 16
|
* Divide PICLK by 16
|
||||||
*/
|
*/
|
||||||
tmp_value = apic_read(APIC_TDCR);
|
tmp_value = apic_read(APIC_TDCR);
|
||||||
apic_write(APIC_TDCR, (tmp_value
|
apic_write(APIC_TDCR,
|
||||||
& ~(APIC_TDR_DIV_1 | APIC_TDR_DIV_TMBASE))
|
(tmp_value & ~(APIC_TDR_DIV_1 | APIC_TDR_DIV_TMBASE)) |
|
||||||
| APIC_TDR_DIV_16);
|
APIC_TDR_DIV_16);
|
||||||
|
|
||||||
if (!oneshot)
|
if (!oneshot)
|
||||||
apic_write(APIC_TMICT, clocks / APIC_DIVISOR);
|
apic_write(APIC_TMICT, clocks / APIC_DIVISOR);
|
||||||
|
Loading…
Reference in New Issue
Block a user