diff options
| -rw-r--r-- | drivers/gpio/gpio-tegra.c | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/drivers/gpio/gpio-tegra.c b/drivers/gpio/gpio-tegra.c index 747eb40e8afe..ecade29d79e8 100644 --- a/drivers/gpio/gpio-tegra.c +++ b/drivers/gpio/gpio-tegra.c | |||
| @@ -331,6 +331,7 @@ static struct lock_class_key gpio_lock_class; | |||
| 331 | static int __init tegra_gpio_init(void) | 331 | static int __init tegra_gpio_init(void) |
| 332 | { | 332 | { |
| 333 | struct tegra_gpio_bank *bank; | 333 | struct tegra_gpio_bank *bank; |
| 334 | int gpio; | ||
| 334 | int i; | 335 | int i; |
| 335 | int j; | 336 | int j; |
| 336 | 337 | ||
| @@ -352,14 +353,17 @@ static int __init tegra_gpio_init(void) | |||
| 352 | 353 | ||
| 353 | gpiochip_add(&tegra_gpio_chip); | 354 | gpiochip_add(&tegra_gpio_chip); |
| 354 | 355 | ||
| 355 | for (i = INT_GPIO_BASE; i < (INT_GPIO_BASE + TEGRA_NR_GPIOS); i++) { | 356 | for (gpio = 0; gpio < TEGRA_NR_GPIOS; gpio++) { |
| 356 | bank = &tegra_gpio_banks[GPIO_BANK(irq_to_gpio(i))]; | 357 | int irq = TEGRA_GPIO_TO_IRQ(gpio); |
| 358 | /* No validity check; all Tegra GPIOs are valid IRQs */ | ||
| 357 | 359 | ||
| 358 | irq_set_lockdep_class(i, &gpio_lock_class); | 360 | bank = &tegra_gpio_banks[GPIO_BANK(gpio)]; |
| 359 | irq_set_chip_data(i, bank); | 361 | |
| 360 | irq_set_chip_and_handler(i, &tegra_gpio_irq_chip, | 362 | irq_set_lockdep_class(irq, &gpio_lock_class); |
| 363 | irq_set_chip_data(irq, bank); | ||
| 364 | irq_set_chip_and_handler(irq, &tegra_gpio_irq_chip, | ||
| 361 | handle_simple_irq); | 365 | handle_simple_irq); |
| 362 | set_irq_flags(i, IRQF_VALID); | 366 | set_irq_flags(irq, IRQF_VALID); |
| 363 | } | 367 | } |
| 364 | 368 | ||
| 365 | for (i = 0; i < ARRAY_SIZE(tegra_gpio_banks); i++) { | 369 | for (i = 0; i < ARRAY_SIZE(tegra_gpio_banks); i++) { |
