diff options
Diffstat (limited to 'drivers/gpio/gpio-tegra.c')
-rw-r--r-- | drivers/gpio/gpio-tegra.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/drivers/gpio/gpio-tegra.c b/drivers/gpio/gpio-tegra.c index ec891a27952f..661b0e34e067 100644 --- a/drivers/gpio/gpio-tegra.c +++ b/drivers/gpio/gpio-tegra.c | |||
@@ -98,7 +98,6 @@ struct tegra_gpio_info { | |||
98 | const struct tegra_gpio_soc_config *soc; | 98 | const struct tegra_gpio_soc_config *soc; |
99 | struct gpio_chip gc; | 99 | struct gpio_chip gc; |
100 | struct irq_chip ic; | 100 | struct irq_chip ic; |
101 | struct lock_class_key lock_class; | ||
102 | u32 bank_count; | 101 | u32 bank_count; |
103 | }; | 102 | }; |
104 | 103 | ||
@@ -547,6 +546,12 @@ static const struct dev_pm_ops tegra_gpio_pm_ops = { | |||
547 | SET_SYSTEM_SLEEP_PM_OPS(tegra_gpio_suspend, tegra_gpio_resume) | 546 | SET_SYSTEM_SLEEP_PM_OPS(tegra_gpio_suspend, tegra_gpio_resume) |
548 | }; | 547 | }; |
549 | 548 | ||
549 | /* | ||
550 | * This lock class tells lockdep that GPIO irqs are in a different category | ||
551 | * than their parents, so it won't report false recursion. | ||
552 | */ | ||
553 | static struct lock_class_key gpio_lock_class; | ||
554 | |||
550 | static int tegra_gpio_probe(struct platform_device *pdev) | 555 | static int tegra_gpio_probe(struct platform_device *pdev) |
551 | { | 556 | { |
552 | const struct tegra_gpio_soc_config *config; | 557 | const struct tegra_gpio_soc_config *config; |
@@ -660,7 +665,7 @@ static int tegra_gpio_probe(struct platform_device *pdev) | |||
660 | 665 | ||
661 | bank = &tgi->bank_info[GPIO_BANK(gpio)]; | 666 | bank = &tgi->bank_info[GPIO_BANK(gpio)]; |
662 | 667 | ||
663 | irq_set_lockdep_class(irq, &tgi->lock_class); | 668 | irq_set_lockdep_class(irq, &gpio_lock_class); |
664 | irq_set_chip_data(irq, bank); | 669 | irq_set_chip_data(irq, bank); |
665 | irq_set_chip_and_handler(irq, &tgi->ic, handle_simple_irq); | 670 | irq_set_chip_and_handler(irq, &tgi->ic, handle_simple_irq); |
666 | } | 671 | } |