* [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).