gpio: omap: fix omap_gpio_free to not clean up irq configuration
[deliverable/linux.git] / drivers / gpio / gpio-omap.c
index 6efee35f0ad44da69399161f6d35887a6de6a7e3..505266153b4c7036445517118acae3d02ffd36f4 100644 (file)
@@ -690,8 +690,11 @@ static void omap_gpio_free(struct gpio_chip *chip, unsigned offset)
 
        spin_lock_irqsave(&bank->lock, flags);
        bank->mod_usage &= ~(BIT(offset));
+       if (!LINE_USED(bank->irq_usage, offset)) {
+               omap_set_gpio_direction(bank, offset, 1);
+               omap_clear_gpio_debounce(bank, offset);
+       }
        omap_disable_gpio_module(bank, offset);
-       omap_reset_gpio(bank, offset);
        spin_unlock_irqrestore(&bank->lock, flags);
 
        /*
This page took 0.02389 seconds and 5 git commands to generate.