diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2011-03-25 20:24:05 -0700 | 
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2011-03-25 20:24:05 -0700 | 
| commit | 0dd61be7ec1be1b6820af978f901b9ae2c244dc6 (patch) | |
| tree | 1f49edaa21351034e7d1dff6511424e9a949cf6b /arch/avr32/mach-at32ap/pio.c | |
| parent | 8dd90265ac0754da0df47d9c597f25187bb1c947 (diff) | |
| parent | ab7798ffcf98b11a9525cf65bacdae3fd58d357f (diff) | |
Merge branch 'irq-cleanup-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip
* 'irq-cleanup-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (23 commits)
  genirq: Expand generic show_interrupts()
  gpio: Fold irq_set_chip/irq_set_handler to irq_set_chip_and_handler
  gpio: Cleanup genirq namespace
  arm: ep93xx: Add basic interrupt info
  arm/gpio: Remove three copies of broken and racy debug code
  xtensa: Use generic show_interrupts()
  xtensa: Convert genirq namespace
  xtensa: Use generic IRQ Kconfig and set GENERIC_HARDIRQS_NO_DEPRECATED
  xtensa: Convert s6000 gpio irq_chip to new functions
  xtensa: Convert main irq_chip to new functions
  um: Use generic show_interrupts()
  um: Convert genirq namespace
  m32r: Use generic show_interrupts()
  m32r: Convert genirq namespace
  h8300: Use generic show_interrupts()
  h8300: Convert genirq namespace
  avr32: Cleanup eic_set_irq_type()
  avr32: Use generic show_interrupts()
  avr: Cleanup genirq namespace
  avr32: Use generic IRQ config, enable GENERIC_HARDIRQS_NO_DEPRECATED
  ...
Fix up trivial conflict in drivers/gpio/timbgpio.c
Diffstat (limited to 'arch/avr32/mach-at32ap/pio.c')
| -rw-r--r-- | arch/avr32/mach-at32ap/pio.c | 37 | 
1 files changed, 17 insertions, 20 deletions
diff --git a/arch/avr32/mach-at32ap/pio.c b/arch/avr32/mach-at32ap/pio.c index 09a274c9d0b7..37534103574e 100644 --- a/arch/avr32/mach-at32ap/pio.c +++ b/arch/avr32/mach-at32ap/pio.c @@ -249,23 +249,23 @@ static void gpio_set(struct gpio_chip *chip, unsigned offset, int value)  /* GPIO IRQ support */ -static void gpio_irq_mask(unsigned irq) +static void gpio_irq_mask(struct irq_data *d)  { -	unsigned		gpio = irq_to_gpio(irq); +	unsigned		gpio = irq_to_gpio(d->irq);  	struct pio_device	*pio = &pio_dev[gpio >> 5];  	pio_writel(pio, IDR, 1 << (gpio & 0x1f));  } -static void gpio_irq_unmask(unsigned irq) +static void gpio_irq_unmask(struct irq_data *d))  { -	unsigned		gpio = irq_to_gpio(irq); +	unsigned		gpio = irq_to_gpio(d->irq);  	struct pio_device	*pio = &pio_dev[gpio >> 5];  	pio_writel(pio, IER, 1 << (gpio & 0x1f));  } -static int gpio_irq_type(unsigned irq, unsigned type) +static int gpio_irq_type(struct irq_data *d, unsigned type)  {  	if (type != IRQ_TYPE_EDGE_BOTH && type != IRQ_TYPE_NONE)  		return -EINVAL; @@ -275,20 +275,19 @@ static int gpio_irq_type(unsigned irq, unsigned type)  static struct irq_chip gpio_irqchip = {  	.name		= "gpio", -	.mask		= gpio_irq_mask, -	.unmask		= gpio_irq_unmask, -	.set_type	= gpio_irq_type, +	.irq_mask	= gpio_irq_mask, +	.irq_unmask	= gpio_irq_unmask, +	.irq_set_type	= gpio_irq_type,  };  static void gpio_irq_handler(unsigned irq, struct irq_desc *desc)  { -	struct pio_device	*pio = get_irq_chip_data(irq); +	struct pio_device	*pio = get_irq_desc_chip_data(desc);  	unsigned		gpio_irq; -	gpio_irq = (unsigned) get_irq_data(irq); +	gpio_irq = (unsigned) irq_get_handler_data(irq);  	for (;;) {  		u32		isr; -		struct irq_desc	*d;  		/* ack pending GPIO interrupts */  		isr = pio_readl(pio, ISR) & pio_readl(pio, IMR); @@ -301,9 +300,7 @@ static void gpio_irq_handler(unsigned irq, struct irq_desc *desc)  			isr &= ~(1 << i);  			i += gpio_irq; -			d = &irq_desc[i]; - -			d->handle_irq(i, d); +			generic_handle_irq(i);  		} while (isr);  	}  } @@ -313,16 +310,16 @@ gpio_irq_setup(struct pio_device *pio, int irq, int gpio_irq)  {  	unsigned	i; -	set_irq_chip_data(irq, pio); -	set_irq_data(irq, (void *) gpio_irq); +	irq_set_chip_data(irq, pio); +	irq_set_handler_data(irq, (void *)gpio_irq);  	for (i = 0; i < 32; i++, gpio_irq++) { -		set_irq_chip_data(gpio_irq, pio); -		set_irq_chip_and_handler(gpio_irq, &gpio_irqchip, -				handle_simple_irq); +		irq_set_chip_data(gpio_irq, pio); +		irq_set_chip_and_handler(gpio_irq, &gpio_irqchip, +					 handle_simple_irq);  	} -	set_irq_chained_handler(irq, gpio_irq_handler); +	irq_set_chained_handler(irq, gpio_irq_handler);  }  /*--------------------------------------------------------------------------*/  | 
