mirror of https://gitee.com/openkylin/linux.git
Blackfin arch: move out irq related functions
move irq related functions into asm/irq.h and out of the mondo asm/system.h Signed-off-by: Mike Frysinger <vapier.adi@gmail.com> Signed-off-by: Bryan Wu <cooloney@kernel.org>
This commit is contained in:
parent
b1271d31a5
commit
b60705765a
|
@ -19,11 +19,101 @@
|
|||
|
||||
/* SYS_IRQS and NR_IRQS are defined in <mach-bf5xx/irq.h>*/
|
||||
#include <mach/irq.h>
|
||||
#include <asm/ptrace.h>
|
||||
#include <asm/pda.h>
|
||||
#include <asm/processor.h>
|
||||
|
||||
static __inline__ int irq_canonicalize(int irq)
|
||||
{
|
||||
return irq;
|
||||
}
|
||||
|
||||
/*
|
||||
* Interrupt configuring macros.
|
||||
*/
|
||||
#define local_irq_disable() \
|
||||
do { \
|
||||
int __tmp_dummy; \
|
||||
__asm__ __volatile__( \
|
||||
"cli %0;" \
|
||||
: "=d" (__tmp_dummy) \
|
||||
); \
|
||||
} while (0)
|
||||
|
||||
#if ANOMALY_05000244 && defined(CONFIG_BFIN_ICACHE)
|
||||
# define NOP_PAD_ANOMALY_05000244 "nop; nop;"
|
||||
#else
|
||||
# define NOP_PAD_ANOMALY_05000244
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_SMP
|
||||
/* Forward decl needed due to cdef inter dependencies */
|
||||
static inline uint32_t __pure bfin_dspid(void);
|
||||
# define blackfin_core_id() (bfin_dspid() & 0xff)
|
||||
# define irq_flags cpu_pda[blackfin_core_id()].imask
|
||||
#else
|
||||
extern unsigned long irq_flags;
|
||||
#endif
|
||||
|
||||
#define local_irq_enable() \
|
||||
__asm__ __volatile__( \
|
||||
"sti %0;" \
|
||||
: \
|
||||
: "d" (irq_flags) \
|
||||
)
|
||||
|
||||
#define idle_with_irq_disabled() \
|
||||
__asm__ __volatile__( \
|
||||
NOP_PAD_ANOMALY_05000244 \
|
||||
".align 8;" \
|
||||
"sti %0;" \
|
||||
"idle;" \
|
||||
: \
|
||||
: "d" (irq_flags) \
|
||||
)
|
||||
|
||||
#ifdef CONFIG_DEBUG_HWERR
|
||||
# define __save_and_cli(x) \
|
||||
__asm__ __volatile__( \
|
||||
"cli %0;" \
|
||||
"sti %1;" \
|
||||
: "=&d" (x) \
|
||||
: "d" (0x3F) \
|
||||
)
|
||||
#else
|
||||
# define __save_and_cli(x) \
|
||||
__asm__ __volatile__( \
|
||||
"cli %0;" \
|
||||
: "=&d" (x) \
|
||||
)
|
||||
#endif
|
||||
|
||||
#define local_save_flags(x) \
|
||||
__asm__ __volatile__( \
|
||||
"cli %0;" \
|
||||
"sti %0;" \
|
||||
: "=d" (x) \
|
||||
)
|
||||
|
||||
#ifdef CONFIG_DEBUG_HWERR
|
||||
#define irqs_enabled_from_flags(x) (((x) & ~0x3f) != 0)
|
||||
#else
|
||||
#define irqs_enabled_from_flags(x) ((x) != 0x1f)
|
||||
#endif
|
||||
|
||||
#define local_irq_restore(x) \
|
||||
do { \
|
||||
if (irqs_enabled_from_flags(x)) \
|
||||
local_irq_enable(); \
|
||||
} while (0)
|
||||
|
||||
/* For spinlocks etc */
|
||||
#define local_irq_save(x) __save_and_cli(x)
|
||||
|
||||
#define irqs_disabled() \
|
||||
({ \
|
||||
unsigned long flags; \
|
||||
local_save_flags(flags); \
|
||||
!irqs_enabled_from_flags(flags); \
|
||||
})
|
||||
|
||||
#endif /* _BFIN_IRQ_H_ */
|
||||
|
|
|
@ -23,7 +23,7 @@
|
|||
#ifndef _ASM_BLACKFIN_PDA_H
|
||||
#define _ASM_BLACKFIN_PDA_H
|
||||
|
||||
#include <asm/mem_map.h>
|
||||
#include <mach/anomaly.h>
|
||||
|
||||
#ifndef __ASSEMBLY__
|
||||
|
||||
|
|
|
@ -39,95 +39,7 @@
|
|||
#include <mach/anomaly.h>
|
||||
#include <asm/pda.h>
|
||||
#include <asm/processor.h>
|
||||
|
||||
/* Forward decl needed due to cdef inter dependencies */
|
||||
static inline uint32_t __pure bfin_dspid(void);
|
||||
#define blackfin_core_id() (bfin_dspid() & 0xff)
|
||||
|
||||
/*
|
||||
* Interrupt configuring macros.
|
||||
*/
|
||||
#define local_irq_disable() \
|
||||
do { \
|
||||
int __tmp_dummy; \
|
||||
__asm__ __volatile__( \
|
||||
"cli %0;" \
|
||||
: "=d" (__tmp_dummy) \
|
||||
); \
|
||||
} while (0)
|
||||
|
||||
#if ANOMALY_05000244 && defined(CONFIG_BFIN_ICACHE)
|
||||
# define NOP_PAD_ANOMALY_05000244 "nop; nop;"
|
||||
#else
|
||||
# define NOP_PAD_ANOMALY_05000244
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_SMP
|
||||
# define irq_flags cpu_pda[blackfin_core_id()].imask
|
||||
#else
|
||||
extern unsigned long irq_flags;
|
||||
#endif
|
||||
|
||||
#define local_irq_enable() \
|
||||
__asm__ __volatile__( \
|
||||
"sti %0;" \
|
||||
: \
|
||||
: "d" (irq_flags) \
|
||||
)
|
||||
#define idle_with_irq_disabled() \
|
||||
__asm__ __volatile__( \
|
||||
NOP_PAD_ANOMALY_05000244 \
|
||||
".align 8;" \
|
||||
"sti %0;" \
|
||||
"idle;" \
|
||||
: \
|
||||
: "d" (irq_flags) \
|
||||
)
|
||||
|
||||
#ifdef CONFIG_DEBUG_HWERR
|
||||
# define __save_and_cli(x) \
|
||||
__asm__ __volatile__( \
|
||||
"cli %0;" \
|
||||
"sti %1;" \
|
||||
: "=&d" (x) \
|
||||
: "d" (0x3F) \
|
||||
)
|
||||
#else
|
||||
# define __save_and_cli(x) \
|
||||
__asm__ __volatile__( \
|
||||
"cli %0;" \
|
||||
: "=&d" (x) \
|
||||
)
|
||||
#endif
|
||||
|
||||
#define local_save_flags(x) \
|
||||
__asm__ __volatile__( \
|
||||
"cli %0;" \
|
||||
"sti %0;" \
|
||||
: "=d" (x) \
|
||||
)
|
||||
|
||||
#ifdef CONFIG_DEBUG_HWERR
|
||||
#define irqs_enabled_from_flags(x) (((x) & ~0x3f) != 0)
|
||||
#else
|
||||
#define irqs_enabled_from_flags(x) ((x) != 0x1f)
|
||||
#endif
|
||||
|
||||
#define local_irq_restore(x) \
|
||||
do { \
|
||||
if (irqs_enabled_from_flags(x)) \
|
||||
local_irq_enable(); \
|
||||
} while (0)
|
||||
|
||||
/* For spinlocks etc */
|
||||
#define local_irq_save(x) __save_and_cli(x)
|
||||
|
||||
#define irqs_disabled() \
|
||||
({ \
|
||||
unsigned long flags; \
|
||||
local_save_flags(flags); \
|
||||
!irqs_enabled_from_flags(flags); \
|
||||
})
|
||||
#include <asm/irq.h>
|
||||
|
||||
/*
|
||||
* Force strict CPU ordering.
|
||||
|
@ -279,7 +191,7 @@ static inline unsigned long __xchg(unsigned long x, volatile void *ptr,
|
|||
* ptr isn't the current task, in which case it does nothing.
|
||||
*/
|
||||
|
||||
#include <asm/blackfin.h>
|
||||
#include <asm/l1layout.h>
|
||||
|
||||
asmlinkage struct task_struct *resume(struct task_struct *prev, struct task_struct *next);
|
||||
|
||||
|
|
|
@ -109,7 +109,6 @@ SECTIONS
|
|||
#endif
|
||||
|
||||
DATA_DATA
|
||||
*(.data)
|
||||
CONSTRUCTORS
|
||||
|
||||
/* make sure the init_task is aligned to the
|
||||
|
|
|
@ -1153,7 +1153,7 @@
|
|||
#define bfin_write_NFC_DATA_RD(val) bfin_write16(NFC_DATA_RD, val)
|
||||
|
||||
/* These need to be last due to the cdef/linux inter-dependencies */
|
||||
#include <asm/system.h>
|
||||
#include <asm/irq.h>
|
||||
|
||||
/* Writing to PLL_CTL initiates a PLL relock sequence. */
|
||||
static __inline__ void bfin_write_PLL_CTL(unsigned int val)
|
||||
|
|
|
@ -1153,7 +1153,7 @@
|
|||
#define bfin_write_NFC_DATA_RD(val) bfin_write16(NFC_DATA_RD, val)
|
||||
|
||||
/* These need to be last due to the cdef/linux inter-dependencies */
|
||||
#include <asm/system.h>
|
||||
#include <asm/irq.h>
|
||||
|
||||
/* Writing to PLL_CTL initiates a PLL relock sequence. */
|
||||
static __inline__ void bfin_write_PLL_CTL(unsigned int val)
|
||||
|
|
|
@ -677,7 +677,7 @@
|
|||
#define bfin_write_PPI_FRAME(val) bfin_write16(PPI_FRAME,val)
|
||||
|
||||
/* These need to be last due to the cdef/linux inter-dependencies */
|
||||
#include <asm/system.h>
|
||||
#include <asm/irq.h>
|
||||
|
||||
#if ANOMALY_05000311
|
||||
#define BFIN_WRITE_FIO_FLAG(name) \
|
||||
|
|
|
@ -1773,7 +1773,7 @@
|
|||
#define bfin_write_HMDMA1_BCOUNT(val) bfin_write16(HMDMA1_BCOUNT,val)
|
||||
|
||||
/* These need to be last due to the cdef/linux inter-dependencies */
|
||||
#include <asm/system.h>
|
||||
#include <asm/irq.h>
|
||||
|
||||
/* Writing to PLL_CTL initiates a PLL relock sequence. */
|
||||
static __inline__ void bfin_write_PLL_CTL(unsigned int val)
|
||||
|
|
|
@ -2053,7 +2053,7 @@
|
|||
#define bfin_write_CAN_MB31_ID1(val) bfin_write16(CAN_MB31_ID1, val)
|
||||
|
||||
/* These need to be last due to the cdef/linux inter-dependencies */
|
||||
#include <asm/system.h>
|
||||
#include <asm/irq.h>
|
||||
|
||||
/* Writing to PLL_CTL initiates a PLL relock sequence. */
|
||||
static __inline__ void bfin_write_PLL_CTL(unsigned int val)
|
||||
|
|
|
@ -2692,7 +2692,7 @@
|
|||
#define bfin_write_PINT3_IRQ bfin_write_PINT3_REQUEST
|
||||
|
||||
/* These need to be last due to the cdef/linux inter-dependencies */
|
||||
#include <asm/system.h>
|
||||
#include <asm/irq.h>
|
||||
|
||||
/* Writing to PLL_CTL initiates a PLL relock sequence. */
|
||||
static __inline__ void bfin_write_PLL_CTL(unsigned int val)
|
||||
|
|
|
@ -1527,7 +1527,7 @@
|
|||
#define bfin_write_MDMA_D0_START_ADDR(val) bfin_write_MDMA1_D0_START_ADDR(val)
|
||||
|
||||
/* These need to be last due to the cdef/linux inter-dependencies */
|
||||
#include <asm/system.h>
|
||||
#include <asm/irq.h>
|
||||
|
||||
/* Writing to PLL_CTL initiates a PLL relock sequence. */
|
||||
static __inline__ void bfin_write_PLL_CTL(unsigned int val)
|
||||
|
|
Loading…
Reference in New Issue