12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- /* SPDX-License-Identifier: GPL-2.0 */
- #ifndef _ASM_IA64_XTP_H
- #define _ASM_IA64_XTP_H
- #include <asm/io.h>
- #ifdef CONFIG_SMP
- #define XTP_OFFSET 0x1e0008
- #define SMP_IRQ_REDIRECTION (1 << 0)
- #define SMP_IPI_REDIRECTION (1 << 1)
- extern unsigned char smp_int_redirect;
- /*
- * XTP control functions:
- * min_xtp : route all interrupts to this CPU
- * normal_xtp: nominal XTP value
- * max_xtp : never deliver interrupts to this CPU.
- */
- static inline void
- min_xtp (void)
- {
- if (smp_int_redirect & SMP_IRQ_REDIRECTION)
- writeb(0x00, ipi_base_addr + XTP_OFFSET); /* XTP to min */
- }
- static inline void
- normal_xtp (void)
- {
- if (smp_int_redirect & SMP_IRQ_REDIRECTION)
- writeb(0x08, ipi_base_addr + XTP_OFFSET); /* XTP normal */
- }
- static inline void
- max_xtp (void)
- {
- if (smp_int_redirect & SMP_IRQ_REDIRECTION)
- writeb(0x0f, ipi_base_addr + XTP_OFFSET); /* Set XTP to max */
- }
- #endif /* CONFIG_SMP */
- #endif /* _ASM_IA64_XTP_Hy */
|