aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-at91/gpio.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/arm/mach-at91/gpio.c')
-rw-r--r--arch/arm/mach-at91/gpio.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/arch/arm/mach-at91/gpio.c b/arch/arm/mach-at91/gpio.c
index f629c2b5f0c5..ee4964abcaf5 100644
--- a/arch/arm/mach-at91/gpio.c
+++ b/arch/arm/mach-at91/gpio.c
@@ -490,6 +490,11 @@ postcore_initcall(at91_gpio_debugfs_init);
490 490
491/*--------------------------------------------------------------------------*/ 491/*--------------------------------------------------------------------------*/
492 492
493/* This lock class tells lockdep that GPIO irqs are in a different
494 * category than their parents, so it won't report false recursion.
495 */
496static struct lock_class_key gpio_lock_class;
497
493/* 498/*
494 * Called from the processor-specific init to enable GPIO interrupt support. 499 * Called from the processor-specific init to enable GPIO interrupt support.
495 */ 500 */
@@ -510,6 +515,8 @@ void __init at91_gpio_irq_setup(void)
510 __raw_writel(~0, this->regbase + PIO_IDR); 515 __raw_writel(~0, this->regbase + PIO_IDR);
511 516
512 for (i = 0, pin = this->chipbase; i < 32; i++, pin++) { 517 for (i = 0, pin = this->chipbase; i < 32; i++, pin++) {
518 lockdep_set_class(&irq_desc[pin].lock, &gpio_lock_class);
519
513 /* 520 /*
514 * Can use the "simple" and not "edge" handler since it's 521 * Can use the "simple" and not "edge" handler since it's
515 * shorter, and the AIC handles interrupts sanely. 522 * shorter, and the AIC handles interrupts sanely.