From: David Jander Date: Tue, 14 Jun 2011 09:00:54 +0000 (+0200) Subject: gpio/pca953x: Fix IRQ support. X-Git-Url: https://git.karo-electronics.de/?a=commitdiff_plain;h=c609c05db10dcb020f6869186e548a0596a78896;p=mv-sheeva.git gpio/pca953x: Fix IRQ support. It seems that in the normal case, IRQ_NOREQUEST needs to be explicitly cleared, otherwise claiming the interrupt fails. In the case of sparse interrupts, the descriptor needs to be allocated first. Signed-off-by: David Jander Signed-off-by: Grant Likely --- diff --git a/drivers/gpio/gpio-pca953x.c b/drivers/gpio/gpio-pca953x.c index 4b8446e98de..5e4d3f23156 100644 --- a/drivers/gpio/gpio-pca953x.c +++ b/drivers/gpio/gpio-pca953x.c @@ -517,8 +517,10 @@ out_failed: static void pca953x_irq_teardown(struct pca953x_chip *chip) { - if (chip->irq_base != -1) + if (chip->irq_base != -1) { + irq_free_descs(chip->irq_base, chip->gpio_chip.ngpio); free_irq(chip->client->irq, chip); + } } #else /* CONFIG_GPIO_PCA953X_IRQ */ static int pca953x_irq_setup(struct pca953x_chip *chip,