diff options
| author | Russell King <rmk+kernel@arm.linux.org.uk> | 2011-11-21 21:56:56 +0000 | 
|---|---|---|
| committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2011-11-21 21:56:56 +0000 | 
| commit | 2d13ccaa8797d7e599f3792aed4b1e44b47f94a5 (patch) | |
| tree | 7079c1610373fc6709c3a285a53099beaf21295a /arch/m68k/amiga/cia.c | |
| parent | 59136ef3c596606d3eef920dc3e0fdfa2ce52c6f (diff) | |
| parent | 11f1c5de7be06bbb51363002ebc4d00edc2677df (diff) | |
| download | olio-linux-3.10-2d13ccaa8797d7e599f3792aed4b1e44b47f94a5.tar.xz olio-linux-3.10-2d13ccaa8797d7e599f3792aed4b1e44b47f94a5.zip  | |
Merge branch 'irqchip-consolidation' of git://git.kernel.org/pub/scm/linux/kernel/git/maz/arm-platforms into devel-stable
Conflicts:
	arch/arm/mach-omap2/board-4430sdp.c
	arch/arm/mach-omap2/board-omap4panda.c
	arch/arm/mach-omap2/include/mach/omap4-common.h
	arch/arm/plat-omap/include/plat/irqs.h
The changes to omap4-common.h were moved to arch/arm/mach-omap2/common.h
and the other trivial conflicts resolved.  The now empty ifdef in irqs.h
was also eliminated.
Diffstat (limited to 'arch/m68k/amiga/cia.c')
| -rw-r--r-- | arch/m68k/amiga/cia.c | 39 | 
1 files changed, 21 insertions, 18 deletions
diff --git a/arch/m68k/amiga/cia.c b/arch/m68k/amiga/cia.c index ecd0f7ca6f0..18c0e29976e 100644 --- a/arch/m68k/amiga/cia.c +++ b/arch/m68k/amiga/cia.c @@ -93,13 +93,14 @@ static irqreturn_t cia_handler(int irq, void *dev_id)  	amiga_custom.intreq = base->int_mask;  	for (; ints; mach_irq++, ints >>= 1) {  		if (ints & 1) -			m68k_handle_int(mach_irq); +			generic_handle_irq(mach_irq);  	}  	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) { @@ -113,19 +114,20 @@ 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  		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_irq_enable, +	.irq_disable	= cia_irq_disable,  };  /* @@ -134,9 +136,9 @@ static struct irq_controller cia_irq_controller = {   * 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; @@ -146,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; @@ -158,24 +160,25 @@ 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_irq_enable, +	.irq_disable	= auto_irq_disable,  };  void __init cia_init_IRQ(struct ciabase *base)  { -	m68k_setup_irq_controller(&cia_irq_controller, base->cia_irq, CIA_IRQS); +	m68k_setup_irq_controller(&cia_irq_chip, handle_simple_irq, +				  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_irq_startup(base->handler_irq); +	m68k_setup_irq_controller(&auto_irq_chip, handle_simple_irq, +				  base->handler_irq, 1); +	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);  |