diff options
| -rw-r--r-- | arch/arm/mach-tegra/gpio.c | 8 | ||||
| -rw-r--r-- | arch/arm/mach-tegra/legacy_irq.c | 1 |
2 files changed, 6 insertions, 3 deletions
diff --git a/arch/arm/mach-tegra/gpio.c b/arch/arm/mach-tegra/gpio.c index 9066f8102103..3ba21ca8e7e0 100644 --- a/arch/arm/mach-tegra/gpio.c +++ b/arch/arm/mach-tegra/gpio.c @@ -416,6 +416,7 @@ static int __init tegra_gpio_init(void) for (j = 0; j < 4; j++) { int gpio = tegra_gpio_compose(i, j, 0); __raw_writel(0x00, GPIO_INT_ENB(gpio)); + __raw_writel(0x00, GPIO_INT_STA(gpio)); } } @@ -434,11 +435,12 @@ static int __init tegra_gpio_init(void) for (i = 0; i < ARRAY_SIZE(tegra_gpio_banks); i++) { bank = &tegra_gpio_banks[i]; - set_irq_chained_handler(bank->irq, tegra_gpio_irq_handler); - set_irq_data(bank->irq, bank); - for (j = 0; j < 4; j++) spin_lock_init(&bank->lvl_lock[j]); + + set_irq_data(bank->irq, bank); + set_irq_chained_handler(bank->irq, tegra_gpio_irq_handler); + } return 0; diff --git a/arch/arm/mach-tegra/legacy_irq.c b/arch/arm/mach-tegra/legacy_irq.c index eba0073e4f02..41ed85401073 100644 --- a/arch/arm/mach-tegra/legacy_irq.c +++ b/arch/arm/mach-tegra/legacy_irq.c @@ -178,6 +178,7 @@ void tegra_init_legacy_irq(void) void __iomem *ictlr = ictlr_reg_base[i]; writel(~0, ictlr + ICTLR_CPU_IER_CLR); writel(0, ictlr + ICTLR_CPU_IEP_CLASS); + writel(~0, ictlr + ICTLR_CPU_IEP_FIR_CLR); } } |
