Skip to contentSkip to conversation

gpio: moxart: Actually set output state in moxart_gpio_direction_output()

PATCH In review Axel Lin 2 participants 3 messages Mar 25, 2014 GPIO

lore
Share & tools
lore

Axel Lin

author
#0 lore raw

PATCH v2 1/2 gpio: moxart: Actually set output state in moxart_gpio_direction_output()

moxart_gpio_direction_output() ignored the state passed into it. Fix it.

---
 drivers/gpio/gpio-moxart.c | 3 +++
 1 file changed, 3 insertions(+)
drivers/gpio/gpio-moxart.c +3 -0
index 2af9900..4bd81f9 100644
@@ -33,6 +33,8 @@ struct moxart_gpio_chip {
 	void __iomem *base;
 };
 
+static void moxart_gpio_set(struct gpio_chip *chip, unsigned offset, int value);
+
 static inline struct moxart_gpio_chip *to_moxart_gpio(struct gpio_chip *chip)
 {
 	return container_of(chip, struct moxart_gpio_chip, gpio);
@@ -63,6 +65,7 @@ static int moxart_gpio_direction_output(struct gpio_chip *chip,
 	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;
 }
Signature · 1 line
1.8.3.2
author
#1 lore raw

PATCH v2 2/2 gpio: moxart: Avoid forward declaration

Slightly adjust the code to avoid forward declaration.

---
 drivers/gpio/gpio-moxart.c | 43 ++++++++++++++++++++-----------------------
 1 file changed, 20 insertions(+), 23 deletions(-)
drivers/gpio/gpio-moxart.c +20 -23
index 4bd81f9..ccd4570 100644
@@ -33,8 +33,6 @@ struct moxart_gpio_chip {
 	void __iomem *base;
 };
 
-static void moxart_gpio_set(struct gpio_chip *chip, unsigned offset, int value);
-
 static inline struct moxart_gpio_chip *to_moxart_gpio(struct gpio_chip *chip)
 {
 	return container_of(chip, struct moxart_gpio_chip, gpio);
@@ -50,26 +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;
-
-	moxart_gpio_set(chip, offset, value);
-	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);
@@ -81,7 +59,6 @@ static void moxart_gpio_set(struct gpio_chip *chip, unsigned offset, int value)
 	else
 		reg = reg & ~BIT(offset);
 
-
 	writel(reg, ioaddr);
 }
 
@@ -96,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,
Signature · 1 line
1.8.3.2
#2 lore raw
In reply to Axel Lin
Quoted 12 lines · Axel Lin

moxart_gpio_direction_output() ignored the state passed into it. Fix it.

---
 drivers/gpio/gpio-moxart.c | 3 +++
 1 file changed, 3 insertions(+)
drivers/gpio/gpio-moxart.c +0 -0
index 2af9900..4bd81f9 100644

drivers/gpio/gpio-moxart.c struct moxart_gpio_chip { · line 36

Quoted 4 lines
drivers/gpio/gpio-moxart.c +1 -0
@@ -33,6 +33,8 @@ struct moxart_gpio_chip {
        void __iomem *base;
 };
 
+static void moxart_gpio_set(struct gpio_chip *chip, unsigned offset, int value);

Just reverse the order of your patches, and you don't have to make this declaration at all.

It makes little sense to introduce a forward-declaration in a patch and remove it in the very next.