linux-gpio.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH RFT] gpio: moxart: Actually set output state in moxart_gpio_direction_output()
@ 2014-03-24 13:25 Axel Lin
  2014-03-25  2:15 ` Alexandre Courbot
  0 siblings, 1 reply; 2+ messages in thread
From: Axel Lin @ 2014-03-24 13:25 UTC (permalink / raw)
  To: Linus Walleij, Alexandre Courbot; +Cc: Jonas Jensen, linux-gpio

moxart_gpio_direction_output() ignored the state passed into it. Fix it.
Also slightly adjust the code to avoid forward declaration.

Signed-off-by: Axel Lin <axel.lin@ingics.com>
---
Hi Jonas,
I don't have this h/w. Can you test if this patch works.
Thanks,
Axel
 drivers/gpio/gpio-moxart.c | 40 ++++++++++++++++++++--------------------
 1 file changed, 20 insertions(+), 20 deletions(-)

diff --git a/drivers/gpio/gpio-moxart.c b/drivers/gpio/gpio-moxart.c
index 2af9900..ccd4570 100644
--- a/drivers/gpio/gpio-moxart.c
+++ b/drivers/gpio/gpio-moxart.c
@@ -48,25 +48,6 @@ static void moxart_gpio_free(struct gpio_chip *chip, unsigned offset)
 	pinctrl_free_gpio(offset);
 }
 
-static int moxart_gpio_direction_input(struct gpio_chip *chip, unsigned offset)
-{
-	struct moxart_gpio_chip *gc = to_moxart_gpio(chip);
-	void __iomem *ioaddr = gc->base + GPIO_PIN_DIRECTION;
-
-	writel(readl(ioaddr) & ~BIT(offset), ioaddr);
-	return 0;
-}
-
-static int moxart_gpio_direction_output(struct gpio_chip *chip,
-					unsigned offset, int value)
-{
-	struct moxart_gpio_chip *gc = to_moxart_gpio(chip);
-	void __iomem *ioaddr = gc->base + GPIO_PIN_DIRECTION;
-
-	writel(readl(ioaddr) | BIT(offset), ioaddr);
-	return 0;
-}
-
 static void moxart_gpio_set(struct gpio_chip *chip, unsigned offset, int value)
 {
 	struct moxart_gpio_chip *gc = to_moxart_gpio(chip);
@@ -78,7 +59,6 @@ static void moxart_gpio_set(struct gpio_chip *chip, unsigned offset, int value)
 	else
 		reg = reg & ~BIT(offset);
 
-
 	writel(reg, ioaddr);
 }
 
@@ -93,6 +73,26 @@ static int moxart_gpio_get(struct gpio_chip *chip, unsigned offset)
 		return !!(readl(gc->base + GPIO_DATA_IN) & BIT(offset));
 }
 
+static int moxart_gpio_direction_input(struct gpio_chip *chip, unsigned offset)
+{
+	struct moxart_gpio_chip *gc = to_moxart_gpio(chip);
+	void __iomem *ioaddr = gc->base + GPIO_PIN_DIRECTION;
+
+	writel(readl(ioaddr) & ~BIT(offset), ioaddr);
+	return 0;
+}
+
+static int moxart_gpio_direction_output(struct gpio_chip *chip,
+					unsigned offset, int value)
+{
+	struct moxart_gpio_chip *gc = to_moxart_gpio(chip);
+	void __iomem *ioaddr = gc->base + GPIO_PIN_DIRECTION;
+
+	moxart_gpio_set(chip, offset, value);
+	writel(readl(ioaddr) | BIT(offset), ioaddr);
+	return 0;
+}
+
 static struct gpio_chip moxart_template_chip = {
 	.label			= "moxart-gpio",
 	.request		= moxart_gpio_request,
-- 
1.8.3.2




^ permalink raw reply related	[flat|nested] 2+ messages in thread

* Re: [PATCH RFT] gpio: moxart: Actually set output state in moxart_gpio_direction_output()
  2014-03-24 13:25 [PATCH RFT] gpio: moxart: Actually set output state in moxart_gpio_direction_output() Axel Lin
@ 2014-03-25  2:15 ` Alexandre Courbot
  0 siblings, 0 replies; 2+ messages in thread
From: Alexandre Courbot @ 2014-03-25  2:15 UTC (permalink / raw)
  To: Axel Lin; +Cc: Linus Walleij, Jonas Jensen, linux-gpio@vger.kernel.org

On Mon, Mar 24, 2014 at 10:25 PM, Axel Lin <axel.lin@ingics.com> wrote:
> moxart_gpio_direction_output() ignored the state passed into it. Fix it.
> Also slightly adjust the code to avoid forward declaration.

Considering that the code adjustment actually takes most of the volume
of this patch, could you maybe separate these two changes into their
own patches so the actual fix gets easier to spot?

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2014-03-25  2:15 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-03-24 13:25 [PATCH RFT] gpio: moxart: Actually set output state in moxart_gpio_direction_output() Axel Lin
2014-03-25  2:15 ` Alexandre Courbot

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).