The gpio interrupts get mapped linearly and hence the mapping of irq need to be created by irq_create_mapping(). The function gpio_to_irq() returns the irq by irq_find_mapping() and so returns 0 as there is no mapping created. Fix the function to create mapping when gpio_to_irq() get called. Signed-off-by: Laxman Dewangan <ldewangan@xxxxxxxxxx> --- drivers/gpio/gpio-tegra.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/drivers/gpio/gpio-tegra.c b/drivers/gpio/gpio-tegra.c index c7c175a..6c08613 100644 --- a/drivers/gpio/gpio-tegra.c +++ b/drivers/gpio/gpio-tegra.c @@ -156,7 +156,7 @@ static int tegra_gpio_direction_output(struct gpio_chip *chip, unsigned offset, static int tegra_gpio_to_irq(struct gpio_chip *chip, unsigned offset) { - return irq_find_mapping(irq_domain, offset); + return irq_create_mapping(irq_domain, offset); } static struct gpio_chip tegra_gpio_chip = { -- 1.7.1.1 -- To unsubscribe from this list: send the line "unsubscribe linux-tegra" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html