From 4c5276b55f213cc85b90cbcbb3e35f5e5f33f122 Mon Sep 17 00:00:00 2001 From: Laxman Dewangan Date: Fri, 9 Nov 2012 11:34:20 +0530 Subject: [PATCH] --- yaml --- r: 336829 b: refs/heads/master c: 195812e4b6a631e8eaad4046bf6890db4328ea1f h: refs/heads/master i: 336827: 4b05dd8ccc1f7b823ff92df845a18c315390432e v: v3 --- [refs] | 2 +- trunk/drivers/gpio/gpio-tegra.c | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/[refs] b/[refs] index 4170c2b17e0c..efc15a9cdae8 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: ed32620ea72889c8a9dda278a960bce01136d9a4 +refs/heads/master: 195812e4b6a631e8eaad4046bf6890db4328ea1f diff --git a/trunk/drivers/gpio/gpio-tegra.c b/trunk/drivers/gpio/gpio-tegra.c index cfd9b723002b..5389be8c2b51 100644 --- a/trunk/drivers/gpio/gpio-tegra.c +++ b/trunk/drivers/gpio/gpio-tegra.c @@ -134,6 +134,11 @@ static void tegra_gpio_set(struct gpio_chip *chip, unsigned offset, int value) static int tegra_gpio_get(struct gpio_chip *chip, unsigned offset) { + /* If gpio is in output mode then read from the out value */ + if ((tegra_gpio_readl(GPIO_OE(offset)) >> GPIO_BIT(offset)) & 1) + return (tegra_gpio_readl(GPIO_OUT(offset)) >> + GPIO_BIT(offset)) & 0x1; + return (tegra_gpio_readl(GPIO_IN(offset)) >> GPIO_BIT(offset)) & 0x1; }