Message ID | 20250408-gpiochip-set-rv-powerpc-v1-5-73dc1ebc6ef1@linaro.org |
---|---|
State | Superseded |
Headers | show |
Series | powerpc: convert board-file GPIO chips to using new value setters | expand |
Le 08/04/2025 à 09:21, Bartosz Golaszewski a écrit : > From: Bartosz Golaszewski <bartosz.golaszewski@linaro.org> > > struct gpio_chip now has callbacks for setting line values that return > an integer, allowing to indicate failures. Convert the driver to using > them. > > Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org> Reviewed-by: Christophe Leroy <christophe.leroy@csgroup.eu> Acked-by: Christophe Leroy <christophe.leroy@csgroup.eu> # powerpc 8xx > --- > arch/powerpc/platforms/8xx/cpm1.c | 12 ++++++++---- > 1 file changed, 8 insertions(+), 4 deletions(-) > > diff --git a/arch/powerpc/platforms/8xx/cpm1.c b/arch/powerpc/platforms/8xx/cpm1.c > index 1dc095ad48fc..7462c221115c 100644 > --- a/arch/powerpc/platforms/8xx/cpm1.c > +++ b/arch/powerpc/platforms/8xx/cpm1.c > @@ -417,7 +417,7 @@ static void __cpm1_gpio16_set(struct cpm1_gpio16_chip *cpm1_gc, u16 pin_mask, in > out_be16(&iop->dat, cpm1_gc->cpdata); > } > > -static void cpm1_gpio16_set(struct gpio_chip *gc, unsigned int gpio, int value) > +static int cpm1_gpio16_set(struct gpio_chip *gc, unsigned int gpio, int value) > { > struct cpm1_gpio16_chip *cpm1_gc = gpiochip_get_data(gc); > unsigned long flags; > @@ -428,6 +428,8 @@ static void cpm1_gpio16_set(struct gpio_chip *gc, unsigned int gpio, int value) > __cpm1_gpio16_set(cpm1_gc, pin_mask, value); > > spin_unlock_irqrestore(&cpm1_gc->lock, flags); > + > + return 0; > } > > static int cpm1_gpio16_to_irq(struct gpio_chip *gc, unsigned int gpio) > @@ -497,7 +499,7 @@ int cpm1_gpiochip_add16(struct device *dev) > gc->direction_input = cpm1_gpio16_dir_in; > gc->direction_output = cpm1_gpio16_dir_out; > gc->get = cpm1_gpio16_get; > - gc->set = cpm1_gpio16_set; > + gc->set_rv = cpm1_gpio16_set; > gc->to_irq = cpm1_gpio16_to_irq; > gc->parent = dev; > gc->owner = THIS_MODULE; > @@ -554,7 +556,7 @@ static void __cpm1_gpio32_set(struct cpm1_gpio32_chip *cpm1_gc, u32 pin_mask, in > out_be32(&iop->dat, cpm1_gc->cpdata); > } > > -static void cpm1_gpio32_set(struct gpio_chip *gc, unsigned int gpio, int value) > +static int cpm1_gpio32_set(struct gpio_chip *gc, unsigned int gpio, int value) > { > struct cpm1_gpio32_chip *cpm1_gc = gpiochip_get_data(gc); > unsigned long flags; > @@ -565,6 +567,8 @@ static void cpm1_gpio32_set(struct gpio_chip *gc, unsigned int gpio, int value) > __cpm1_gpio32_set(cpm1_gc, pin_mask, value); > > spin_unlock_irqrestore(&cpm1_gc->lock, flags); > + > + return 0; > } > > static int cpm1_gpio32_dir_out(struct gpio_chip *gc, unsigned int gpio, int val) > @@ -618,7 +622,7 @@ int cpm1_gpiochip_add32(struct device *dev) > gc->direction_input = cpm1_gpio32_dir_in; > gc->direction_output = cpm1_gpio32_dir_out; > gc->get = cpm1_gpio32_get; > - gc->set = cpm1_gpio32_set; > + gc->set_rv = cpm1_gpio32_set; > gc->parent = dev; > gc->owner = THIS_MODULE; > >
diff --git a/arch/powerpc/platforms/8xx/cpm1.c b/arch/powerpc/platforms/8xx/cpm1.c index 1dc095ad48fc..7462c221115c 100644 --- a/arch/powerpc/platforms/8xx/cpm1.c +++ b/arch/powerpc/platforms/8xx/cpm1.c @@ -417,7 +417,7 @@ static void __cpm1_gpio16_set(struct cpm1_gpio16_chip *cpm1_gc, u16 pin_mask, in out_be16(&iop->dat, cpm1_gc->cpdata); } -static void cpm1_gpio16_set(struct gpio_chip *gc, unsigned int gpio, int value) +static int cpm1_gpio16_set(struct gpio_chip *gc, unsigned int gpio, int value) { struct cpm1_gpio16_chip *cpm1_gc = gpiochip_get_data(gc); unsigned long flags; @@ -428,6 +428,8 @@ static void cpm1_gpio16_set(struct gpio_chip *gc, unsigned int gpio, int value) __cpm1_gpio16_set(cpm1_gc, pin_mask, value); spin_unlock_irqrestore(&cpm1_gc->lock, flags); + + return 0; } static int cpm1_gpio16_to_irq(struct gpio_chip *gc, unsigned int gpio) @@ -497,7 +499,7 @@ int cpm1_gpiochip_add16(struct device *dev) gc->direction_input = cpm1_gpio16_dir_in; gc->direction_output = cpm1_gpio16_dir_out; gc->get = cpm1_gpio16_get; - gc->set = cpm1_gpio16_set; + gc->set_rv = cpm1_gpio16_set; gc->to_irq = cpm1_gpio16_to_irq; gc->parent = dev; gc->owner = THIS_MODULE; @@ -554,7 +556,7 @@ static void __cpm1_gpio32_set(struct cpm1_gpio32_chip *cpm1_gc, u32 pin_mask, in out_be32(&iop->dat, cpm1_gc->cpdata); } -static void cpm1_gpio32_set(struct gpio_chip *gc, unsigned int gpio, int value) +static int cpm1_gpio32_set(struct gpio_chip *gc, unsigned int gpio, int value) { struct cpm1_gpio32_chip *cpm1_gc = gpiochip_get_data(gc); unsigned long flags; @@ -565,6 +567,8 @@ static void cpm1_gpio32_set(struct gpio_chip *gc, unsigned int gpio, int value) __cpm1_gpio32_set(cpm1_gc, pin_mask, value); spin_unlock_irqrestore(&cpm1_gc->lock, flags); + + return 0; } static int cpm1_gpio32_dir_out(struct gpio_chip *gc, unsigned int gpio, int val) @@ -618,7 +622,7 @@ int cpm1_gpiochip_add32(struct device *dev) gc->direction_input = cpm1_gpio32_dir_in; gc->direction_output = cpm1_gpio32_dir_out; gc->get = cpm1_gpio32_get; - gc->set = cpm1_gpio32_set; + gc->set_rv = cpm1_gpio32_set; gc->parent = dev; gc->owner = THIS_MODULE;