aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpio/gpio-tegra.c
diff options
context:
space:
mode:
authorLinus Walleij <linus.walleij@linaro.org>2015-07-17 08:45:31 -0400
committerLinus Walleij <linus.walleij@linaro.org>2015-07-17 08:45:31 -0400
commitbcae888039d5f0b522e1588c54f95a7612d1723c (patch)
treed8039698a3b74223dc94798046049e9bfcf23fe7 /drivers/gpio/gpio-tegra.c
parent3685bbce2ea6142e81c78e6f3d5b2a1cdc37660e (diff)
parentbdac2b6dc7392668a8530d67a5f762366f57f9b4 (diff)
Merge branch 'queue/irq/gpio' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip into devel
Diffstat (limited to 'drivers/gpio/gpio-tegra.c')
-rw-r--r--drivers/gpio/gpio-tegra.c8
1 files changed, 3 insertions, 5 deletions
diff --git a/drivers/gpio/gpio-tegra.c b/drivers/gpio/gpio-tegra.c
index 9b25c90f725c..530b27f9d66f 100644
--- a/drivers/gpio/gpio-tegra.c
+++ b/drivers/gpio/gpio-tegra.c
@@ -252,9 +252,9 @@ static int tegra_gpio_irq_set_type(struct irq_data *d, unsigned int type)
252 tegra_gpio_enable(gpio); 252 tegra_gpio_enable(gpio);
253 253
254 if (type & (IRQ_TYPE_LEVEL_LOW | IRQ_TYPE_LEVEL_HIGH)) 254 if (type & (IRQ_TYPE_LEVEL_LOW | IRQ_TYPE_LEVEL_HIGH))
255 __irq_set_handler_locked(d->irq, handle_level_irq); 255 irq_set_handler_locked(d, handle_level_irq);
256 else if (type & (IRQ_TYPE_EDGE_FALLING | IRQ_TYPE_EDGE_RISING)) 256 else if (type & (IRQ_TYPE_EDGE_FALLING | IRQ_TYPE_EDGE_RISING))
257 __irq_set_handler_locked(d->irq, handle_edge_irq); 257 irq_set_handler_locked(d, handle_edge_irq);
258 258
259 return 0; 259 return 0;
260} 260}
@@ -268,16 +268,14 @@ static void tegra_gpio_irq_shutdown(struct irq_data *d)
268 268
269static void tegra_gpio_irq_handler(unsigned int irq, struct irq_desc *desc) 269static void tegra_gpio_irq_handler(unsigned int irq, struct irq_desc *desc)
270{ 270{
271 struct tegra_gpio_bank *bank;
272 int port; 271 int port;
273 int pin; 272 int pin;
274 int unmasked = 0; 273 int unmasked = 0;
275 struct irq_chip *chip = irq_desc_get_chip(desc); 274 struct irq_chip *chip = irq_desc_get_chip(desc);
275 struct tegra_gpio_bank *bank = irq_desc_get_handler_data(desc);
276 276
277 chained_irq_enter(chip, desc); 277 chained_irq_enter(chip, desc);
278 278
279 bank = irq_get_handler_data(irq);
280
281 for (port = 0; port < 4; port++) { 279 for (port = 0; port < 4; port++) {
282 int gpio = tegra_gpio_compose(bank->bank, port, 0); 280 int gpio = tegra_gpio_compose(bank->bank, port, 0);
283 unsigned long sta = tegra_gpio_readl(GPIO_INT_STA(gpio)) & 281 unsigned long sta = tegra_gpio_readl(GPIO_INT_STA(gpio)) &