mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-29 11:11:45 -04:00
Merge git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-2.6-irqflags
* git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-2.6-irqflags: Fix IRQ flag handling naming MIPS: Add missing #inclusions of <linux/irq.h> smc91x: Add missing #inclusion of <linux/irq.h> Drop a couple of unnecessary asm/system.h inclusions SH: Add missing consts to sys_execve() declaration Blackfin: Rename IRQ flags handling functions Blackfin: Add missing dep to asm/irqflags.h Blackfin: Rename DES PC2() symbol to avoid collision Blackfin: Split the BF532 BFIN_*_FIO_FLAG() functions to their own header Blackfin: Split PLL code from mach-specific cdef headers
This commit is contained in:
commit
e36f561a2c
141 changed files with 2335 additions and 1847 deletions
46
arch/parisc/include/asm/irqflags.h
Normal file
46
arch/parisc/include/asm/irqflags.h
Normal file
|
|
@ -0,0 +1,46 @@
|
|||
#ifndef __PARISC_IRQFLAGS_H
|
||||
#define __PARISC_IRQFLAGS_H
|
||||
|
||||
#include <linux/types.h>
|
||||
#include <asm/psw.h>
|
||||
|
||||
static inline unsigned long arch_local_save_flags(void)
|
||||
{
|
||||
unsigned long flags;
|
||||
asm volatile("ssm 0, %0" : "=r" (flags) : : "memory");
|
||||
return flags;
|
||||
}
|
||||
|
||||
static inline void arch_local_irq_disable(void)
|
||||
{
|
||||
asm volatile("rsm %0,%%r0\n" : : "i" (PSW_I) : "memory");
|
||||
}
|
||||
|
||||
static inline void arch_local_irq_enable(void)
|
||||
{
|
||||
asm volatile("ssm %0,%%r0\n" : : "i" (PSW_I) : "memory");
|
||||
}
|
||||
|
||||
static inline unsigned long arch_local_irq_save(void)
|
||||
{
|
||||
unsigned long flags;
|
||||
asm volatile("rsm %1,%0" : "=r" (flags) : "i" (PSW_I) : "memory");
|
||||
return flags;
|
||||
}
|
||||
|
||||
static inline void arch_local_irq_restore(unsigned long flags)
|
||||
{
|
||||
asm volatile("mtsm %0" : : "r" (flags) : "memory");
|
||||
}
|
||||
|
||||
static inline bool arch_irqs_disabled_flags(unsigned long flags)
|
||||
{
|
||||
return (flags & PSW_I) == 0;
|
||||
}
|
||||
|
||||
static inline bool arch_irqs_disabled(void)
|
||||
{
|
||||
return arch_irqs_disabled_flags(arch_local_save_flags());
|
||||
}
|
||||
|
||||
#endif /* __PARISC_IRQFLAGS_H */
|
||||
|
|
@ -1,7 +1,7 @@
|
|||
#ifndef __PARISC_SYSTEM_H
|
||||
#define __PARISC_SYSTEM_H
|
||||
|
||||
#include <asm/psw.h>
|
||||
#include <linux/irqflags.h>
|
||||
|
||||
/* The program status word as bitfields. */
|
||||
struct pa_psw {
|
||||
|
|
@ -48,23 +48,6 @@ extern struct task_struct *_switch_to(struct task_struct *, struct task_struct *
|
|||
(last) = _switch_to(prev, next); \
|
||||
} while(0)
|
||||
|
||||
/* interrupt control */
|
||||
#define local_save_flags(x) __asm__ __volatile__("ssm 0, %0" : "=r" (x) : : "memory")
|
||||
#define local_irq_disable() __asm__ __volatile__("rsm %0,%%r0\n" : : "i" (PSW_I) : "memory" )
|
||||
#define local_irq_enable() __asm__ __volatile__("ssm %0,%%r0\n" : : "i" (PSW_I) : "memory" )
|
||||
|
||||
#define local_irq_save(x) \
|
||||
__asm__ __volatile__("rsm %1,%0" : "=r" (x) :"i" (PSW_I) : "memory" )
|
||||
#define local_irq_restore(x) \
|
||||
__asm__ __volatile__("mtsm %0" : : "r" (x) : "memory" )
|
||||
|
||||
#define irqs_disabled() \
|
||||
({ \
|
||||
unsigned long flags; \
|
||||
local_save_flags(flags); \
|
||||
(flags & PSW_I) == 0; \
|
||||
})
|
||||
|
||||
#define mfctl(reg) ({ \
|
||||
unsigned long cr; \
|
||||
__asm__ __volatile__( \
|
||||
|
|
|
|||
Loading…
Reference in a new issue