gpio: moxart: Actually set output state in moxart_gpio_direction_output()
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.
Signed-off-by Axel Lin <[email protected]>
--- drivers/gpio/gpio-moxart.c | 3 +++ 1 file changed, 3 insertions(+)
drivers/gpio/gpio-moxart.c +3 -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); +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
PATCH v2 2/2 gpio: moxart: Avoid forward declaration
Slightly adjust the code to avoid forward declaration.
Signed-off-by Axel Lin <[email protected]>
--- drivers/gpio/gpio-moxart.c | 43 ++++++++++++++++++++----------------------- 1 file changed, 20 insertions(+), 23 deletions(-)
drivers/gpio/gpio-moxart.c +20 -23
@@ -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
Quoted 12 lines · Axel Lin
moxart_gpio_direction_output()ignored the state passed into it. Fix it.Signed-off-by Axel Lin <[email protected]>--- drivers/gpio/gpio-moxart.c | 3 +++ 1 file changed, 3 insertions(+)drivers/gpio/gpio-moxart.c +0
-0
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.