X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=drivers%2Fgpio%2Fgpio-omap.c;h=505266153b4c7036445517118acae3d02ffd36f4;hb=5f982c70a7c3382d3532ac6d13fdea48ab38b934;hp=6efee35f0ad44da69399161f6d35887a6de6a7e3;hpb=8becdc18c3e1f855cae5af266f6a1f5ce5af24fb;p=deliverable%2Flinux.git diff --git a/drivers/gpio/gpio-omap.c b/drivers/gpio/gpio-omap.c index 6efee35f0ad4..505266153b4c 100644 --- a/drivers/gpio/gpio-omap.c +++ b/drivers/gpio/gpio-omap.c @@ -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); /*