The pch_gpio_direction_output() function was missing a write to set the
desired output value. The function would properly set the GPIO
direction, but not the output value. The value would have to manually
be set with a follow up call to pch_gpio_set().
Add the missing write so that pch_gpio_direction_output() sets both the
GPIO direction and value.
Reported-by: Peter Tyser <[email protected]>
Signed-off-by: Tomoya MORINAGA <[email protected]>
---
drivers/gpio/pch_gpio.c | 1 +
1 files changed, 1 insertions(+), 0 deletions(-)
diff --git a/drivers/gpio/pch_gpio.c b/drivers/gpio/pch_gpio.c
index 0eba0a7..b4e9915 100644
--- a/drivers/gpio/pch_gpio.c
+++ b/drivers/gpio/pch_gpio.c
@@ -105,6 +105,7 @@ static int pch_gpio_direction_output(struct gpio_chip *gpio, unsigned nr,
reg_val |= (1 << nr);
else
reg_val &= ~(1 << nr);
+ iowrite32(reg_val, &chip->reg->po);
mutex_unlock(&chip->lock);
--
1.7.4
On Wed, 2011-03-30 at 21:16 +0900, Tomoya MORINAGA wrote:
> The pch_gpio_direction_output() function was missing a write to set the
> desired output value. The function would properly set the GPIO
> direction, but not the output value. The value would have to manually
> be set with a follow up call to pch_gpio_set().
>
> Add the missing write so that pch_gpio_direction_output() sets both the
> GPIO direction and value.
>
> Reported-by: Peter Tyser <[email protected]>
> Signed-off-by: Tomoya MORINAGA <[email protected]>
Hi Tomoya,
I posted this same patch last week:
https://patchwork.kernel.org/patch/662621/
It looks like this driver and the ml_ioh_gpio driver are nearly
identical, hence the identical fixes. If you have some spare cycles
it'd be nice to combine them.
Best,
Peter
Hi Peter,
On Wednesday, March 30, 2011 11:47 PM, Peter Tyser wrote:
> I posted this same patch last week:
> https://patchwork.kernel.org/patch/662621/
Sorry, I missed seeing this mail.
Your patch looks OK.
Thanks,
-----------------------------------------
Tomoya MORINAGA
OKI SEMICONDUCTOR CO., LTD.