Loading arch/m68k/amiga/amiints.c +8 −8 Original line number Diff line number Diff line Loading @@ -45,8 +45,8 @@ #include <asm/amigaints.h> #include <asm/amipcmcia.h> static void amiga_enable_irq(unsigned int irq); static void amiga_disable_irq(unsigned int irq); static void amiga_irq_enable(struct irq_data *data); static void amiga_irq_disable(struct irq_data *data); static irqreturn_t ami_int1(int irq, void *dev_id); static irqreturn_t ami_int3(int irq, void *dev_id); static irqreturn_t ami_int4(int irq, void *dev_id); Loading @@ -54,8 +54,8 @@ static irqreturn_t ami_int5(int irq, void *dev_id); static struct irq_chip amiga_irq_chip = { .name = "amiga", .irq_enable = amiga_enable_irq, .irq_disable = amiga_disable_irq, .irq_enable = amiga_irq_enable, .irq_disable = amiga_irq_disable, }; /* Loading Loading @@ -102,14 +102,14 @@ void __init amiga_init_IRQ(void) * internal data, that may not be changed by the interrupt at the same time. */ static void amiga_enable_irq(unsigned int irq) static void amiga_irq_enable(struct irq_data *data) { amiga_custom.intena = IF_SETCLR | (1 << (irq - IRQ_USER)); amiga_custom.intena = IF_SETCLR | (1 << (data->irq - IRQ_USER)); } static void amiga_disable_irq(unsigned int irq) static void amiga_irq_disable(struct irq_data *data) { amiga_custom.intena = 1 << (irq - IRQ_USER); amiga_custom.intena = 1 << (data->irq - IRQ_USER); } /* Loading arch/m68k/amiga/cia.c +14 −11 Original line number Diff line number Diff line Loading @@ -98,8 +98,9 @@ static irqreturn_t cia_handler(int irq, void *dev_id) return IRQ_HANDLED; } static void cia_enable_irq(unsigned int irq) static void cia_irq_enable(struct irq_data *data) { unsigned int irq = data->irq; unsigned char mask; if (irq >= IRQ_AMIGA_CIAB) { Loading @@ -113,8 +114,10 @@ static void cia_enable_irq(unsigned int irq) } } static void cia_disable_irq(unsigned int irq) static void cia_irq_disable(struct irq_data *data) { unsigned int irq = data->irq; if (irq >= IRQ_AMIGA_CIAB) cia_able_irq(&ciab_base, 1 << (irq - IRQ_AMIGA_CIAB)); else Loading @@ -123,8 +126,8 @@ static void cia_disable_irq(unsigned int irq) static struct irq_chip cia_irq_chip = { .name = "cia", .irq_enable = cia_enable_irq, .irq_disable = cia_disable_irq, .irq_enable = cia_irq_enable, .irq_disable = cia_irq_disable, }; /* Loading @@ -133,9 +136,9 @@ static struct irq_chip cia_irq_chip = { * into this chain. */ static void auto_enable_irq(unsigned int irq) static void auto_irq_enable(struct irq_data *data) { switch (irq) { switch (data->irq) { case IRQ_AUTO_2: amiga_custom.intena = IF_SETCLR | IF_PORTS; break; Loading @@ -145,9 +148,9 @@ static void auto_enable_irq(unsigned int irq) } } static void auto_disable_irq(unsigned int irq) static void auto_irq_disable(struct irq_data *data) { switch (irq) { switch (data->irq) { case IRQ_AUTO_2: amiga_custom.intena = IF_PORTS; break; Loading @@ -159,8 +162,8 @@ static void auto_disable_irq(unsigned int irq) static struct irq_chip auto_irq_chip = { .name = "auto", .irq_enable = auto_enable_irq, .irq_disable = auto_disable_irq, .irq_enable = auto_irq_enable, .irq_disable = auto_irq_disable, }; void __init cia_init_IRQ(struct ciabase *base) Loading @@ -173,7 +176,7 @@ void __init cia_init_IRQ(struct ciabase *base) /* override auto int and install CIA handler */ m68k_setup_irq_chip(&auto_irq_chip, base->handler_irq, 1); m68k_irq_startup(base->handler_irq); m68k_irq_startup_irq(base->handler_irq); if (request_irq(base->handler_irq, cia_handler, IRQF_SHARED, base->name, base)) pr_err("Couldn't register %s interrupt\n", base->name); Loading arch/m68k/apollo/dn_ints.c +6 −2 Original line number Diff line number Diff line Loading @@ -12,8 +12,10 @@ void dn_process_int(unsigned int irq, struct pt_regs *fp) *(volatile unsigned char *)(picb)=0x20; } unsigned int apollo_irq_startup(unsigned int irq) unsigned int apollo_irq_startup(struct irq_data *data) { unsigned int irq = data->irq; if (irq < 8) *(volatile unsigned char *)(pica+1) &= ~(1 << irq); else Loading @@ -21,8 +23,10 @@ unsigned int apollo_irq_startup(unsigned int irq) return 0; } void apollo_irq_shutdown(unsigned int irq) void apollo_irq_shutdown(struct irq_data *data) { unsigned int irq = data->irq; if (irq < 8) *(volatile unsigned char *)(pica+1) |= (1 << irq); else Loading arch/m68k/atari/ataints.c +22 −8 Original line number Diff line number Diff line Loading @@ -320,30 +320,44 @@ extern void atari_microwire_cmd(int cmd); extern int atari_SCC_reset_done; static unsigned int atari_startup_irq(unsigned int irq) static unsigned int atari_irq_startup(struct irq_data *data) { m68k_irq_startup(irq); unsigned int irq = data->irq; m68k_irq_startup(data); atari_turnon_irq(irq); atari_enable_irq(irq); return 0; } static void atari_shutdown_irq(unsigned int irq) static void atari_irq_shutdown(struct irq_data *data) { unsigned int irq = data->irq; atari_disable_irq(irq); atari_turnoff_irq(irq); m68k_irq_shutdown(irq); m68k_irq_shutdown(data); if (irq == IRQ_AUTO_4) vectors[VEC_INT4] = falcon_hblhandler; } static void atari_irq_enable(struct irq_data *data) { atari_enable_irq(data->irq); } static void atari_irq_disable(struct irq_data *data) { atari_disable_irq(data->irq); } static struct irq_chip atari_irq_chip = { .name = "atari", .irq_startup = atari_startup_irq, .irq_shutdown = atari_shutdown_irq, .irq_enable = atari_enable_irq, .irq_disable = atari_disable_irq, .irq_startup = atari_irq_startup, .irq_shutdown = atari_irq_shutdown, .irq_enable = atari_irq_enable, .irq_disable = atari_irq_disable, }; /* Loading arch/m68k/include/asm/irq.h +7 −6 Original line number Diff line number Diff line Loading @@ -96,14 +96,15 @@ struct irq_handler { struct irq_chip { const char *name; 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); unsigned int (*irq_startup)(struct irq_data *data); void (*irq_shutdown)(struct irq_data *data); void (*irq_enable)(struct irq_data *data); void (*irq_disable)(struct irq_data *data); }; extern unsigned int m68k_irq_startup(unsigned int); extern void m68k_irq_shutdown(unsigned int); 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); /* * This function returns a new struct irq_data Loading Loading
arch/m68k/amiga/amiints.c +8 −8 Original line number Diff line number Diff line Loading @@ -45,8 +45,8 @@ #include <asm/amigaints.h> #include <asm/amipcmcia.h> static void amiga_enable_irq(unsigned int irq); static void amiga_disable_irq(unsigned int irq); static void amiga_irq_enable(struct irq_data *data); static void amiga_irq_disable(struct irq_data *data); static irqreturn_t ami_int1(int irq, void *dev_id); static irqreturn_t ami_int3(int irq, void *dev_id); static irqreturn_t ami_int4(int irq, void *dev_id); Loading @@ -54,8 +54,8 @@ static irqreturn_t ami_int5(int irq, void *dev_id); static struct irq_chip amiga_irq_chip = { .name = "amiga", .irq_enable = amiga_enable_irq, .irq_disable = amiga_disable_irq, .irq_enable = amiga_irq_enable, .irq_disable = amiga_irq_disable, }; /* Loading Loading @@ -102,14 +102,14 @@ void __init amiga_init_IRQ(void) * internal data, that may not be changed by the interrupt at the same time. */ static void amiga_enable_irq(unsigned int irq) static void amiga_irq_enable(struct irq_data *data) { amiga_custom.intena = IF_SETCLR | (1 << (irq - IRQ_USER)); amiga_custom.intena = IF_SETCLR | (1 << (data->irq - IRQ_USER)); } static void amiga_disable_irq(unsigned int irq) static void amiga_irq_disable(struct irq_data *data) { amiga_custom.intena = 1 << (irq - IRQ_USER); amiga_custom.intena = 1 << (data->irq - IRQ_USER); } /* Loading
arch/m68k/amiga/cia.c +14 −11 Original line number Diff line number Diff line Loading @@ -98,8 +98,9 @@ static irqreturn_t cia_handler(int irq, void *dev_id) return IRQ_HANDLED; } static void cia_enable_irq(unsigned int irq) static void cia_irq_enable(struct irq_data *data) { unsigned int irq = data->irq; unsigned char mask; if (irq >= IRQ_AMIGA_CIAB) { Loading @@ -113,8 +114,10 @@ static void cia_enable_irq(unsigned int irq) } } static void cia_disable_irq(unsigned int irq) static void cia_irq_disable(struct irq_data *data) { unsigned int irq = data->irq; if (irq >= IRQ_AMIGA_CIAB) cia_able_irq(&ciab_base, 1 << (irq - IRQ_AMIGA_CIAB)); else Loading @@ -123,8 +126,8 @@ static void cia_disable_irq(unsigned int irq) static struct irq_chip cia_irq_chip = { .name = "cia", .irq_enable = cia_enable_irq, .irq_disable = cia_disable_irq, .irq_enable = cia_irq_enable, .irq_disable = cia_irq_disable, }; /* Loading @@ -133,9 +136,9 @@ static struct irq_chip cia_irq_chip = { * into this chain. */ static void auto_enable_irq(unsigned int irq) static void auto_irq_enable(struct irq_data *data) { switch (irq) { switch (data->irq) { case IRQ_AUTO_2: amiga_custom.intena = IF_SETCLR | IF_PORTS; break; Loading @@ -145,9 +148,9 @@ static void auto_enable_irq(unsigned int irq) } } static void auto_disable_irq(unsigned int irq) static void auto_irq_disable(struct irq_data *data) { switch (irq) { switch (data->irq) { case IRQ_AUTO_2: amiga_custom.intena = IF_PORTS; break; Loading @@ -159,8 +162,8 @@ static void auto_disable_irq(unsigned int irq) static struct irq_chip auto_irq_chip = { .name = "auto", .irq_enable = auto_enable_irq, .irq_disable = auto_disable_irq, .irq_enable = auto_irq_enable, .irq_disable = auto_irq_disable, }; void __init cia_init_IRQ(struct ciabase *base) Loading @@ -173,7 +176,7 @@ void __init cia_init_IRQ(struct ciabase *base) /* override auto int and install CIA handler */ m68k_setup_irq_chip(&auto_irq_chip, base->handler_irq, 1); m68k_irq_startup(base->handler_irq); m68k_irq_startup_irq(base->handler_irq); if (request_irq(base->handler_irq, cia_handler, IRQF_SHARED, base->name, base)) pr_err("Couldn't register %s interrupt\n", base->name); Loading
arch/m68k/apollo/dn_ints.c +6 −2 Original line number Diff line number Diff line Loading @@ -12,8 +12,10 @@ void dn_process_int(unsigned int irq, struct pt_regs *fp) *(volatile unsigned char *)(picb)=0x20; } unsigned int apollo_irq_startup(unsigned int irq) unsigned int apollo_irq_startup(struct irq_data *data) { unsigned int irq = data->irq; if (irq < 8) *(volatile unsigned char *)(pica+1) &= ~(1 << irq); else Loading @@ -21,8 +23,10 @@ unsigned int apollo_irq_startup(unsigned int irq) return 0; } void apollo_irq_shutdown(unsigned int irq) void apollo_irq_shutdown(struct irq_data *data) { unsigned int irq = data->irq; if (irq < 8) *(volatile unsigned char *)(pica+1) |= (1 << irq); else Loading
arch/m68k/atari/ataints.c +22 −8 Original line number Diff line number Diff line Loading @@ -320,30 +320,44 @@ extern void atari_microwire_cmd(int cmd); extern int atari_SCC_reset_done; static unsigned int atari_startup_irq(unsigned int irq) static unsigned int atari_irq_startup(struct irq_data *data) { m68k_irq_startup(irq); unsigned int irq = data->irq; m68k_irq_startup(data); atari_turnon_irq(irq); atari_enable_irq(irq); return 0; } static void atari_shutdown_irq(unsigned int irq) static void atari_irq_shutdown(struct irq_data *data) { unsigned int irq = data->irq; atari_disable_irq(irq); atari_turnoff_irq(irq); m68k_irq_shutdown(irq); m68k_irq_shutdown(data); if (irq == IRQ_AUTO_4) vectors[VEC_INT4] = falcon_hblhandler; } static void atari_irq_enable(struct irq_data *data) { atari_enable_irq(data->irq); } static void atari_irq_disable(struct irq_data *data) { atari_disable_irq(data->irq); } static struct irq_chip atari_irq_chip = { .name = "atari", .irq_startup = atari_startup_irq, .irq_shutdown = atari_shutdown_irq, .irq_enable = atari_enable_irq, .irq_disable = atari_disable_irq, .irq_startup = atari_irq_startup, .irq_shutdown = atari_irq_shutdown, .irq_enable = atari_irq_enable, .irq_disable = atari_irq_disable, }; /* Loading
arch/m68k/include/asm/irq.h +7 −6 Original line number Diff line number Diff line Loading @@ -96,14 +96,15 @@ struct irq_handler { struct irq_chip { const char *name; 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); unsigned int (*irq_startup)(struct irq_data *data); void (*irq_shutdown)(struct irq_data *data); void (*irq_enable)(struct irq_data *data); void (*irq_disable)(struct irq_data *data); }; extern unsigned int m68k_irq_startup(unsigned int); extern void m68k_irq_shutdown(unsigned int); 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); /* * This function returns a new struct irq_data Loading