[SPARC32]: Take enable_irq/disable_irq out of line.
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
@@ -270,7 +270,7 @@ void free_irq(unsigned int irq, void *dev_id)
|
|||||||
kfree(action);
|
kfree(action);
|
||||||
|
|
||||||
if (!sparc_irq[cpu_irq].action)
|
if (!sparc_irq[cpu_irq].action)
|
||||||
disable_irq(irq);
|
__disable_irq(irq);
|
||||||
|
|
||||||
out_unlock:
|
out_unlock:
|
||||||
spin_unlock_irqrestore(&irq_action_lock, flags);
|
spin_unlock_irqrestore(&irq_action_lock, flags);
|
||||||
@@ -466,7 +466,7 @@ int request_fast_irq(unsigned int irq,
|
|||||||
|
|
||||||
sparc_irq[cpu_irq].action = action;
|
sparc_irq[cpu_irq].action = action;
|
||||||
|
|
||||||
enable_irq(irq);
|
__enable_irq(irq);
|
||||||
|
|
||||||
ret = 0;
|
ret = 0;
|
||||||
out_unlock:
|
out_unlock:
|
||||||
@@ -546,7 +546,7 @@ int request_irq(unsigned int irq,
|
|||||||
|
|
||||||
*actionp = action;
|
*actionp = action;
|
||||||
|
|
||||||
enable_irq(irq);
|
__enable_irq(irq);
|
||||||
|
|
||||||
ret = 0;
|
ret = 0;
|
||||||
out_unlock:
|
out_unlock:
|
||||||
@@ -557,6 +557,25 @@ out:
|
|||||||
|
|
||||||
EXPORT_SYMBOL(request_irq);
|
EXPORT_SYMBOL(request_irq);
|
||||||
|
|
||||||
|
void disable_irq_nosync(unsigned int irq)
|
||||||
|
{
|
||||||
|
return __disable_irq(irq);
|
||||||
|
}
|
||||||
|
EXPORT_SYMBOL(disable_irq_nosync);
|
||||||
|
|
||||||
|
void disable_irq(unsigned int irq)
|
||||||
|
{
|
||||||
|
return __disable_irq(irq);
|
||||||
|
}
|
||||||
|
EXPORT_SYMBOL(disable_irq);
|
||||||
|
|
||||||
|
void enable_irq(unsigned int irq)
|
||||||
|
{
|
||||||
|
return __enable_irq(irq);
|
||||||
|
}
|
||||||
|
|
||||||
|
EXPORT_SYMBOL(enable_irq);
|
||||||
|
|
||||||
/* We really don't need these at all on the Sparc. We only have
|
/* We really don't need these at all on the Sparc. We only have
|
||||||
* stubs here because they are exported to modules.
|
* stubs here because they are exported to modules.
|
||||||
*/
|
*/
|
||||||
|
@@ -1,11 +1,31 @@
|
|||||||
#include <asm/btfixup.h>
|
#include <asm/btfixup.h>
|
||||||
|
|
||||||
|
/* Dave Redman (djhr@tadpole.co.uk)
|
||||||
|
* changed these to function pointers.. it saves cycles and will allow
|
||||||
|
* the irq dependencies to be split into different files at a later date
|
||||||
|
* sun4c_irq.c, sun4m_irq.c etc so we could reduce the kernel size.
|
||||||
|
* Jakub Jelinek (jj@sunsite.mff.cuni.cz)
|
||||||
|
* Changed these to btfixup entities... It saves cycles :)
|
||||||
|
*/
|
||||||
|
|
||||||
|
BTFIXUPDEF_CALL(void, disable_irq, unsigned int)
|
||||||
|
BTFIXUPDEF_CALL(void, enable_irq, unsigned int)
|
||||||
BTFIXUPDEF_CALL(void, disable_pil_irq, unsigned int)
|
BTFIXUPDEF_CALL(void, disable_pil_irq, unsigned int)
|
||||||
BTFIXUPDEF_CALL(void, enable_pil_irq, unsigned int)
|
BTFIXUPDEF_CALL(void, enable_pil_irq, unsigned int)
|
||||||
BTFIXUPDEF_CALL(void, clear_clock_irq, void)
|
BTFIXUPDEF_CALL(void, clear_clock_irq, void)
|
||||||
BTFIXUPDEF_CALL(void, clear_profile_irq, int)
|
BTFIXUPDEF_CALL(void, clear_profile_irq, int)
|
||||||
BTFIXUPDEF_CALL(void, load_profile_irq, int, unsigned int)
|
BTFIXUPDEF_CALL(void, load_profile_irq, int, unsigned int)
|
||||||
|
|
||||||
|
static inline void __disable_irq(unsigned int irq)
|
||||||
|
{
|
||||||
|
BTFIXUP_CALL(disable_irq)(irq);
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline void __enable_irq(unsigned int irq)
|
||||||
|
{
|
||||||
|
BTFIXUP_CALL(enable_irq)(irq);
|
||||||
|
}
|
||||||
|
|
||||||
static inline void disable_pil_irq(unsigned int irq)
|
static inline void disable_pil_irq(unsigned int irq)
|
||||||
{
|
{
|
||||||
BTFIXUP_CALL(disable_pil_irq)(irq);
|
BTFIXUP_CALL(disable_pil_irq)(irq);
|
||||||
|
@@ -154,8 +154,6 @@ EXPORT_SYMBOL(BTFIXUP_CALL(___xchg32));
|
|||||||
#else
|
#else
|
||||||
EXPORT_SYMBOL(BTFIXUP_CALL(__hard_smp_processor_id));
|
EXPORT_SYMBOL(BTFIXUP_CALL(__hard_smp_processor_id));
|
||||||
#endif
|
#endif
|
||||||
EXPORT_SYMBOL(BTFIXUP_CALL(enable_irq));
|
|
||||||
EXPORT_SYMBOL(BTFIXUP_CALL(disable_irq));
|
|
||||||
EXPORT_SYMBOL(BTFIXUP_CALL(mmu_unlockarea));
|
EXPORT_SYMBOL(BTFIXUP_CALL(mmu_unlockarea));
|
||||||
EXPORT_SYMBOL(BTFIXUP_CALL(mmu_lockarea));
|
EXPORT_SYMBOL(BTFIXUP_CALL(mmu_lockarea));
|
||||||
EXPORT_SYMBOL(BTFIXUP_CALL(mmu_get_scsi_sgl));
|
EXPORT_SYMBOL(BTFIXUP_CALL(mmu_get_scsi_sgl));
|
||||||
|
@@ -190,7 +190,7 @@ void sun4d_free_irq(unsigned int irq, void *dev_id)
|
|||||||
kfree(action);
|
kfree(action);
|
||||||
|
|
||||||
if (!(*actionp))
|
if (!(*actionp))
|
||||||
disable_irq(irq);
|
__disable_irq(irq);
|
||||||
|
|
||||||
out_unlock:
|
out_unlock:
|
||||||
spin_unlock_irqrestore(&irq_action_lock, flags);
|
spin_unlock_irqrestore(&irq_action_lock, flags);
|
||||||
@@ -348,7 +348,7 @@ int sun4d_request_irq(unsigned int irq,
|
|||||||
else
|
else
|
||||||
*actionp = action;
|
*actionp = action;
|
||||||
|
|
||||||
enable_irq(irq);
|
__enable_irq(irq);
|
||||||
|
|
||||||
ret = 0;
|
ret = 0;
|
||||||
out_unlock:
|
out_unlock:
|
||||||
|
@@ -64,7 +64,7 @@ void claim_ticker14(irq_handler_t handler,
|
|||||||
|
|
||||||
/* first we copy the obp handler instructions
|
/* first we copy the obp handler instructions
|
||||||
*/
|
*/
|
||||||
disable_irq(irq_nr);
|
__disable_irq(irq_nr);
|
||||||
if (!handler)
|
if (!handler)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
@@ -81,6 +81,6 @@ void claim_ticker14(irq_handler_t handler,
|
|||||||
NULL)) {
|
NULL)) {
|
||||||
install_linux_ticker();
|
install_linux_ticker();
|
||||||
load_profile_irq(cpu, timeout);
|
load_profile_irq(cpu, timeout);
|
||||||
enable_irq(irq_nr);
|
__enable_irq(irq_nr);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -7,41 +7,15 @@
|
|||||||
#ifndef _SPARC_IRQ_H
|
#ifndef _SPARC_IRQ_H
|
||||||
#define _SPARC_IRQ_H
|
#define _SPARC_IRQ_H
|
||||||
|
|
||||||
#include <linux/linkage.h>
|
|
||||||
#include <linux/threads.h> /* For NR_CPUS */
|
|
||||||
#include <linux/interrupt.h>
|
#include <linux/interrupt.h>
|
||||||
|
|
||||||
#include <asm/system.h> /* For SUN4M_NCPUS */
|
|
||||||
#include <asm/btfixup.h>
|
|
||||||
|
|
||||||
#define NR_IRQS 16
|
#define NR_IRQS 16
|
||||||
|
|
||||||
#define irq_canonicalize(irq) (irq)
|
#define irq_canonicalize(irq) (irq)
|
||||||
|
|
||||||
/* Dave Redman (djhr@tadpole.co.uk)
|
extern void disable_irq_nosync(unsigned int irq);
|
||||||
* changed these to function pointers.. it saves cycles and will allow
|
extern void disable_irq(unsigned int irq);
|
||||||
* the irq dependencies to be split into different files at a later date
|
extern void enable_irq(unsigned int irq);
|
||||||
* sun4c_irq.c, sun4m_irq.c etc so we could reduce the kernel size.
|
|
||||||
* Jakub Jelinek (jj@sunsite.mff.cuni.cz)
|
|
||||||
* Changed these to btfixup entities... It saves cycles :)
|
|
||||||
*/
|
|
||||||
BTFIXUPDEF_CALL(void, disable_irq, unsigned int)
|
|
||||||
BTFIXUPDEF_CALL(void, enable_irq, unsigned int)
|
|
||||||
|
|
||||||
static inline void disable_irq_nosync(unsigned int irq)
|
|
||||||
{
|
|
||||||
BTFIXUP_CALL(disable_irq)(irq);
|
|
||||||
}
|
|
||||||
|
|
||||||
static inline void disable_irq(unsigned int irq)
|
|
||||||
{
|
|
||||||
BTFIXUP_CALL(disable_irq)(irq);
|
|
||||||
}
|
|
||||||
|
|
||||||
static inline void enable_irq(unsigned int irq)
|
|
||||||
{
|
|
||||||
BTFIXUP_CALL(enable_irq)(irq);
|
|
||||||
}
|
|
||||||
|
|
||||||
extern int request_fast_irq(unsigned int irq, irq_handler_t handler, unsigned long flags, __const__ char *devname);
|
extern int request_fast_irq(unsigned int irq, irq_handler_t handler, unsigned long flags, __const__ char *devname);
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user