diff options
Diffstat (limited to 'arch/arm/mach-gemini/gpio.c')
| -rw-r--r-- | arch/arm/mach-gemini/gpio.c | 14 |
1 files changed, 6 insertions, 8 deletions
diff --git a/arch/arm/mach-gemini/gpio.c b/arch/arm/mach-gemini/gpio.c index fa3d333f21e1..fdc7ef1391d3 100644 --- a/arch/arm/mach-gemini/gpio.c +++ b/arch/arm/mach-gemini/gpio.c | |||
| @@ -127,8 +127,8 @@ static int gpio_set_irq_type(struct irq_data *d, unsigned int type) | |||
| 127 | 127 | ||
| 128 | static void gpio_irq_handler(unsigned int irq, struct irq_desc *desc) | 128 | static void gpio_irq_handler(unsigned int irq, struct irq_desc *desc) |
| 129 | { | 129 | { |
| 130 | unsigned int port = (unsigned int)irq_desc_get_handler_data(desc); | ||
| 130 | unsigned int gpio_irq_no, irq_stat; | 131 | unsigned int gpio_irq_no, irq_stat; |
| 131 | unsigned int port = (unsigned int)get_irq_data(irq); | ||
| 132 | 132 | ||
| 133 | irq_stat = __raw_readl(GPIO_BASE(port) + GPIO_INT_STAT); | 133 | irq_stat = __raw_readl(GPIO_BASE(port) + GPIO_INT_STAT); |
| 134 | 134 | ||
| @@ -138,9 +138,7 @@ static void gpio_irq_handler(unsigned int irq, struct irq_desc *desc) | |||
| 138 | if ((irq_stat & 1) == 0) | 138 | if ((irq_stat & 1) == 0) |
| 139 | continue; | 139 | continue; |
| 140 | 140 | ||
| 141 | BUG_ON(!(irq_desc[gpio_irq_no].handle_irq)); | 141 | generic_handle_irq(gpio_irq_no); |
| 142 | irq_desc[gpio_irq_no].handle_irq(gpio_irq_no, | ||
| 143 | &irq_desc[gpio_irq_no]); | ||
| 144 | } | 142 | } |
| 145 | } | 143 | } |
| 146 | 144 | ||
| @@ -219,13 +217,13 @@ void __init gemini_gpio_init(void) | |||
| 219 | 217 | ||
| 220 | for (j = GPIO_IRQ_BASE + i * 32; | 218 | for (j = GPIO_IRQ_BASE + i * 32; |
| 221 | j < GPIO_IRQ_BASE + (i + 1) * 32; j++) { | 219 | j < GPIO_IRQ_BASE + (i + 1) * 32; j++) { |
| 222 | set_irq_chip(j, &gpio_irq_chip); | 220 | irq_set_chip_and_handler(j, &gpio_irq_chip, |
| 223 | set_irq_handler(j, handle_edge_irq); | 221 | handle_edge_irq); |
| 224 | set_irq_flags(j, IRQF_VALID); | 222 | set_irq_flags(j, IRQF_VALID); |
| 225 | } | 223 | } |
| 226 | 224 | ||
| 227 | set_irq_chained_handler(IRQ_GPIO(i), gpio_irq_handler); | 225 | irq_set_chained_handler(IRQ_GPIO(i), gpio_irq_handler); |
| 228 | set_irq_data(IRQ_GPIO(i), (void *)i); | 226 | irq_set_handler_data(IRQ_GPIO(i), (void *)i); |
| 229 | } | 227 | } |
| 230 | 228 | ||
| 231 | BUG_ON(gpiochip_add(&gemini_gpio_chip)); | 229 | BUG_ON(gpiochip_add(&gemini_gpio_chip)); |
