diff options
author | James Hogan <jhogan@kernel.org> | 2017-10-24 13:07:54 +0100 |
---|---|---|
committer | James Hogan <jhogan@kernel.org> | 2018-02-22 11:07:21 +0000 |
commit | bb6fb6dfcc17cddac11ac295861f7608194447a7 (patch) | |
tree | 47ee071a415546dd01adbf628f61acb80473d476 /arch/metag/include/asm/irqflags.h | |
parent | 91ab883eb21325ad80f3473633f794c78ac87f51 (diff) |
metag: Remove arch/metag/
The earliest Meta architecture port of Linux I have a record of was an
import of a Meta port of Linux v2.4.1 in February 2004, which was worked
on significantly over the next few years by Graham Whaley, Will Newton,
Matt Fleming, myself and others.
Eventually the port was merged into mainline in v3.9 in March 2013, not
long after Imagination Technologies bought MIPS Technologies and shifted
its CPU focus over to the MIPS architecture.
As a result, though the port was maintained for a while, kept on life
support for a while longer, and useful for testing a few specific
drivers for which I don't have ready access to the equivalent MIPS
hardware, it is now essentially dead with no users.
It is also stuck using an out-of-tree toolchain based on GCC 4.2.4 which
is no longer maintained, now struggles to build modern kernels due to
toolchain bugs, and doesn't itself build with a modern GCC. The latest
buildroot port is still using an old uClibc snapshot which is no longer
served, and the latest uClibc doesn't build with GCC 4.2.4.
So lets call it a day and drop the Meta architecture port from the
kernel. RIP Meta.
Signed-off-by: James Hogan <jhogan@kernel.org>
Link: https://lkml.kernel.org/r/95906b76-6ce1-3f84-eaba-c29b4ae952eb@roeck-us.net
Reviewed-by: Guenter Roeck <linux@roeck-us.net>
Acked-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Acked-by: Graham Whaley <graham.whaley@gmail.com>
Cc: linux-metag@vger.kernel.org
Diffstat (limited to 'arch/metag/include/asm/irqflags.h')
-rw-r--r-- | arch/metag/include/asm/irqflags.h | 94 |
1 files changed, 0 insertions, 94 deletions
diff --git a/arch/metag/include/asm/irqflags.h b/arch/metag/include/asm/irqflags.h deleted file mode 100644 index e2fe34acb93b..000000000000 --- a/arch/metag/include/asm/irqflags.h +++ /dev/null @@ -1,94 +0,0 @@ -/* SPDX-License-Identifier: GPL-2.0 */ -/* - * IRQ flags handling - * - * This file gets included from lowlevel asm headers too, to provide - * wrapped versions of the local_irq_*() APIs, based on the - * raw_local_irq_*() functions from the lowlevel headers. - */ -#ifndef _ASM_IRQFLAGS_H -#define _ASM_IRQFLAGS_H - -#ifndef __ASSEMBLY__ - -#include <asm/core_reg.h> -#include <asm/metag_regs.h> - -#define INTS_OFF_MASK TXSTATI_BGNDHALT_BIT - -#ifdef CONFIG_SMP -extern unsigned int get_trigger_mask(void); -#else - -extern unsigned int global_trigger_mask; - -static inline unsigned int get_trigger_mask(void) -{ - return global_trigger_mask; -} -#endif - -static inline unsigned long arch_local_save_flags(void) -{ - return __core_reg_get(TXMASKI); -} - -static inline int arch_irqs_disabled_flags(unsigned long flags) -{ - return (flags & ~INTS_OFF_MASK) == 0; -} - -static inline int arch_irqs_disabled(void) -{ - unsigned long flags = arch_local_save_flags(); - - return arch_irqs_disabled_flags(flags); -} - -static inline unsigned long __irqs_disabled(void) -{ - /* - * We shouldn't enable exceptions if they are not already - * enabled. This is required for chancalls to work correctly. - */ - return arch_local_save_flags() & INTS_OFF_MASK; -} - -/* - * For spinlocks, etc: - */ -static inline unsigned long arch_local_irq_save(void) -{ - unsigned long flags = __irqs_disabled(); - - asm volatile("SWAP %0,TXMASKI\n" : "=r" (flags) : "0" (flags) - : "memory"); - - return flags; -} - -static inline void arch_local_irq_restore(unsigned long flags) -{ - asm volatile("MOV TXMASKI,%0\n" : : "r" (flags) : "memory"); -} - -static inline void arch_local_irq_disable(void) -{ - unsigned long flags = __irqs_disabled(); - - asm volatile("MOV TXMASKI,%0\n" : : "r" (flags) : "memory"); -} - -#ifdef CONFIG_SMP -/* Avoid circular include dependencies through <linux/preempt.h> */ -void arch_local_irq_enable(void); -#else -static inline void arch_local_irq_enable(void) -{ - arch_local_irq_restore(get_trigger_mask()); -} -#endif - -#endif /* (__ASSEMBLY__) */ - -#endif /* !(_ASM_IRQFLAGS_H) */ |