Skip to content

Commit

Permalink
m68k/irq: Rename irq_controller to irq_chip
Browse files Browse the repository at this point in the history
Make it more similar to the genirq version:
  - Remove lock (unused as we don't do SMP anyway),
  - Prepend methods with irq_,
  - Make irq_startup() return unsigned int.

Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
Acked-by: Thomas Gleixner <tglx@linutronix.de>
  • Loading branch information
Geert Uytterhoeven committed Nov 8, 2011
1 parent 3ec7215 commit c288bf2
Show file tree
Hide file tree
Showing 9 changed files with 91 additions and 102 deletions.
9 changes: 4 additions & 5 deletions arch/m68k/amiga/amiints.c
Original file line number Diff line number Diff line change
Expand Up @@ -52,11 +52,10 @@ static irqreturn_t ami_int3(int irq, void *dev_id);
static irqreturn_t ami_int4(int irq, void *dev_id);
static irqreturn_t ami_int5(int irq, void *dev_id);

static struct irq_controller amiga_irq_controller = {
static struct irq_chip amiga_irq_chip = {
.name = "amiga",
.lock = __SPIN_LOCK_UNLOCKED(amiga_irq_controller.lock),
.enable = amiga_enable_irq,
.disable = amiga_disable_irq,
.irq_enable = amiga_enable_irq,
.irq_disable = amiga_disable_irq,
};

/*
Expand All @@ -81,7 +80,7 @@ void __init amiga_init_IRQ(void)
if (request_irq(IRQ_AUTO_5, ami_int5, 0, "int5", NULL))
pr_err("Couldn't register int%d\n", 5);

m68k_setup_irq_controller(&amiga_irq_controller, IRQ_USER, AMI_STD_IRQS);
m68k_setup_irq_chip(&amiga_irq_chip, IRQ_USER, AMI_STD_IRQS);

/* turn off PCMCIA interrupts */
if (AMIGAHW_PRESENT(PCMCIA))
Expand Down
18 changes: 8 additions & 10 deletions arch/m68k/amiga/cia.c
Original file line number Diff line number Diff line change
Expand Up @@ -121,11 +121,10 @@ static void cia_disable_irq(unsigned int irq)
cia_able_irq(&ciaa_base, 1 << (irq - IRQ_AMIGA_CIAA));
}

static struct irq_controller cia_irq_controller = {
static struct irq_chip cia_irq_chip = {
.name = "cia",
.lock = __SPIN_LOCK_UNLOCKED(cia_irq_controller.lock),
.enable = cia_enable_irq,
.disable = cia_disable_irq,
.irq_enable = cia_enable_irq,
.irq_disable = cia_disable_irq,
};

/*
Expand Down Expand Up @@ -158,23 +157,22 @@ static void auto_disable_irq(unsigned int irq)
}
}

static struct irq_controller auto_irq_controller = {
static struct irq_chip auto_irq_chip = {
.name = "auto",
.lock = __SPIN_LOCK_UNLOCKED(auto_irq_controller.lock),
.enable = auto_enable_irq,
.disable = auto_disable_irq,
.irq_enable = auto_enable_irq,
.irq_disable = auto_disable_irq,
};

void __init cia_init_IRQ(struct ciabase *base)
{
m68k_setup_irq_controller(&cia_irq_controller, base->cia_irq, CIA_IRQS);
m68k_setup_irq_chip(&cia_irq_chip, base->cia_irq, CIA_IRQS);

/* clear any pending interrupt and turn off all interrupts */
cia_set_irq(base, CIA_ICR_ALL);
cia_able_irq(base, CIA_ICR_ALL);

/* override auto int and install CIA handler */
m68k_setup_irq_controller(&auto_irq_controller, base->handler_irq, 1);
m68k_setup_irq_chip(&auto_irq_chip, base->handler_irq, 1);
m68k_irq_startup(base->handler_irq);
if (request_irq(base->handler_irq, cia_handler, IRQF_SHARED,
base->name, base))
Expand Down
11 changes: 5 additions & 6 deletions arch/m68k/apollo/dn_ints.c
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ void dn_process_int(unsigned int irq, struct pt_regs *fp)
*(volatile unsigned char *)(picb)=0x20;
}

int apollo_irq_startup(unsigned int irq)
unsigned int apollo_irq_startup(unsigned int irq)
{
if (irq < 8)
*(volatile unsigned char *)(pica+1) &= ~(1 << irq);
Expand All @@ -29,16 +29,15 @@ void apollo_irq_shutdown(unsigned int irq)
*(volatile unsigned char *)(picb+1) |= (1 << (irq - 8));
}

static struct irq_controller apollo_irq_controller = {
static struct irq_chip apollo_irq_chip = {
.name = "apollo",
.lock = __SPIN_LOCK_UNLOCKED(apollo_irq_controller.lock),
.startup = apollo_irq_startup,
.shutdown = apollo_irq_shutdown,
.irq_startup = apollo_irq_startup,
.irq_shutdown = apollo_irq_shutdown,
};


void __init dn_init_IRQ(void)
{
m68k_setup_user_interrupt(VEC_USER + 96, 16, dn_process_int);
m68k_setup_irq_controller(&apollo_irq_controller, IRQ_APOLLO, 16);
m68k_setup_irq_chip(&apollo_irq_chip, IRQ_APOLLO, 16);
}
15 changes: 7 additions & 8 deletions arch/m68k/atari/ataints.c
Original file line number Diff line number Diff line change
Expand Up @@ -320,7 +320,7 @@ extern void atari_microwire_cmd(int cmd);

extern int atari_SCC_reset_done;

static int atari_startup_irq(unsigned int irq)
static unsigned int atari_startup_irq(unsigned int irq)
{
m68k_irq_startup(irq);
atari_turnon_irq(irq);
Expand All @@ -338,13 +338,12 @@ static void atari_shutdown_irq(unsigned int irq)
vectors[VEC_INT4] = falcon_hblhandler;
}

static struct irq_controller atari_irq_controller = {
static struct irq_chip atari_irq_chip = {
.name = "atari",
.lock = __SPIN_LOCK_UNLOCKED(atari_irq_controller.lock),
.startup = atari_startup_irq,
.shutdown = atari_shutdown_irq,
.enable = atari_enable_irq,
.disable = atari_disable_irq,
.irq_startup = atari_startup_irq,
.irq_shutdown = atari_shutdown_irq,
.irq_enable = atari_enable_irq,
.irq_disable = atari_disable_irq,
};

/*
Expand All @@ -361,7 +360,7 @@ static struct irq_controller atari_irq_controller = {
void __init atari_init_IRQ(void)
{
m68k_setup_user_interrupt(VEC_USER, NUM_ATARI_SOURCES - IRQ_USER, NULL);
m68k_setup_irq_controller(&atari_irq_controller, 1, NUM_ATARI_SOURCES - 1);
m68k_setup_irq_chip(&atari_irq_chip, 1, NUM_ATARI_SOURCES - 1);

/* Initialize the MFP(s) */

Expand Down
15 changes: 7 additions & 8 deletions arch/m68k/include/asm/irq.h
Original file line number Diff line number Diff line change
Expand Up @@ -93,16 +93,15 @@ struct irq_handler {
const char *devname;
};

struct irq_controller {
struct irq_chip {
const char *name;
spinlock_t lock;
int (*startup)(unsigned int irq);
void (*shutdown)(unsigned int irq);
void (*enable)(unsigned int irq);
void (*disable)(unsigned int irq);
unsigned int (*irq_startup)(unsigned int irq);
void (*irq_shutdown)(unsigned int irq);
void (*irq_enable)(unsigned int irq);
void (*irq_disable)(unsigned int irq);
};

extern int m68k_irq_startup(unsigned int);
extern unsigned int m68k_irq_startup(unsigned int);
extern void m68k_irq_shutdown(unsigned int);

/*
Expand All @@ -113,7 +112,7 @@ extern irq_node_t *new_irq_node(void);
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_controller *, unsigned int, unsigned int);
extern void m68k_setup_irq_chip(struct irq_chip *, unsigned int, unsigned int);

asmlinkage void m68k_handle_int(unsigned int);
asmlinkage void __m68k_handle_int(unsigned int, struct pt_regs *);
Expand Down
Loading

0 comments on commit c288bf2

Please sign in to comment.