m68k/irq: Add genirq support
Disabled on all platforms for now Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org> [v1] Acked-by: Thomas Gleixner <tglx@linutronix.de>
This commit is contained in:
@@ -27,11 +27,6 @@
|
||||
|
||||
#ifdef CONFIG_MMU
|
||||
|
||||
#include <linux/linkage.h>
|
||||
#include <linux/hardirq.h>
|
||||
#include <linux/irqreturn.h>
|
||||
#include <linux/spinlock_types.h>
|
||||
|
||||
/*
|
||||
* Interrupt source definitions
|
||||
* General interrupt sources are the level 1-7.
|
||||
@@ -54,10 +49,6 @@
|
||||
|
||||
#define IRQ_USER 8
|
||||
|
||||
extern unsigned int irq_canonicalize(unsigned int irq);
|
||||
|
||||
struct pt_regs;
|
||||
|
||||
/*
|
||||
* various flags for request_irq() - the Amiga now uses the standard
|
||||
* mechanism like all other architectures - IRQF_DISABLED and
|
||||
@@ -71,6 +62,15 @@ struct pt_regs;
|
||||
#define IRQ_FLG_STD (0x8000) /* internally used */
|
||||
#endif
|
||||
|
||||
#ifndef CONFIG_GENERIC_HARDIRQS
|
||||
|
||||
#include <linux/linkage.h>
|
||||
#include <linux/hardirq.h>
|
||||
#include <linux/irqreturn.h>
|
||||
#include <linux/spinlock_types.h>
|
||||
|
||||
struct pt_regs;
|
||||
|
||||
/*
|
||||
* This structure is used to chain together the ISRs for a particular
|
||||
* interrupt source (if it supports chaining).
|
||||
@@ -121,10 +121,33 @@ extern void m68k_setup_irq_chip(struct irq_chip *, unsigned int, unsigned int);
|
||||
extern void generic_handle_irq(unsigned int);
|
||||
asmlinkage void do_IRQ(int irq, struct pt_regs *regs);
|
||||
|
||||
#else /* CONFIG_GENERIC_HARDIRQS */
|
||||
|
||||
struct irq_data;
|
||||
struct irq_chip;
|
||||
struct irq_desc;
|
||||
extern unsigned int m68k_irq_startup(struct irq_data *data);
|
||||
extern unsigned int m68k_irq_startup_irq(unsigned int irq);
|
||||
extern void m68k_irq_shutdown(struct irq_data *data);
|
||||
extern void m68k_setup_auto_interrupt(void (*handler)(unsigned int,
|
||||
struct pt_regs *));
|
||||
extern void m68k_setup_user_interrupt(unsigned int vec, unsigned int cnt,
|
||||
void (*handler)(unsigned int,
|
||||
struct pt_regs *));
|
||||
extern void m68k_setup_irq_controller(struct irq_chip *,
|
||||
void (*handle)(unsigned int irq,
|
||||
struct irq_desc *desc),
|
||||
unsigned int irq, unsigned int cnt);
|
||||
|
||||
#endif /* CONFIG_GENERIC_HARDIRQS */
|
||||
|
||||
extern unsigned int irq_canonicalize(unsigned int irq);
|
||||
|
||||
#else
|
||||
#define irq_canonicalize(irq) (irq)
|
||||
#endif /* CONFIG_MMU */
|
||||
|
||||
asmlinkage void do_IRQ(int irq, struct pt_regs *regs);
|
||||
extern atomic_t irq_err_count;
|
||||
|
||||
#endif /* _M68K_IRQ_H_ */
|
||||
|
Reference in New Issue
Block a user