forked from Minki/linux
gpio: Propagate errors from gpiod_set_array_value_complex()
Internal helper function gpiod_set_array_value_complex() was changed to
return an error value, but not all gpiolib callers were updated to
propagate the new error up.
Fixes: 3027743f83
("gpio: Remove VLA from gpiolib")
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
This commit is contained in:
parent
c2937668d1
commit
cf9af0d578
@ -340,18 +340,18 @@ The following functions get or set the values of an array of GPIOs::
|
|||||||
struct gpio_array *array_info,
|
struct gpio_array *array_info,
|
||||||
unsigned long *value_bitmap);
|
unsigned long *value_bitmap);
|
||||||
|
|
||||||
void gpiod_set_array_value(unsigned int array_size,
|
int gpiod_set_array_value(unsigned int array_size,
|
||||||
struct gpio_desc **desc_array,
|
struct gpio_desc **desc_array,
|
||||||
struct gpio_array *array_info,
|
struct gpio_array *array_info,
|
||||||
unsigned long *value_bitmap)
|
unsigned long *value_bitmap)
|
||||||
int gpiod_set_raw_array_value(unsigned int array_size,
|
int gpiod_set_raw_array_value(unsigned int array_size,
|
||||||
struct gpio_desc **desc_array,
|
struct gpio_desc **desc_array,
|
||||||
struct gpio_array *array_info,
|
struct gpio_array *array_info,
|
||||||
unsigned long *value_bitmap)
|
unsigned long *value_bitmap)
|
||||||
void gpiod_set_array_value_cansleep(unsigned int array_size,
|
int gpiod_set_array_value_cansleep(unsigned int array_size,
|
||||||
struct gpio_desc **desc_array,
|
struct gpio_desc **desc_array,
|
||||||
struct gpio_array *array_info,
|
struct gpio_array *array_info,
|
||||||
unsigned long *value_bitmap)
|
unsigned long *value_bitmap)
|
||||||
int gpiod_set_raw_array_value_cansleep(unsigned int array_size,
|
int gpiod_set_raw_array_value_cansleep(unsigned int array_size,
|
||||||
struct gpio_desc **desc_array,
|
struct gpio_desc **desc_array,
|
||||||
struct gpio_array *array_info,
|
struct gpio_array *array_info,
|
||||||
|
@ -3346,15 +3346,16 @@ EXPORT_SYMBOL_GPL(gpiod_set_raw_array_value);
|
|||||||
* This function should be called from contexts where we cannot sleep, and will
|
* This function should be called from contexts where we cannot sleep, and will
|
||||||
* complain if the GPIO chip functions potentially sleep.
|
* complain if the GPIO chip functions potentially sleep.
|
||||||
*/
|
*/
|
||||||
void gpiod_set_array_value(unsigned int array_size,
|
int gpiod_set_array_value(unsigned int array_size,
|
||||||
struct gpio_desc **desc_array,
|
struct gpio_desc **desc_array,
|
||||||
struct gpio_array *array_info,
|
struct gpio_array *array_info,
|
||||||
unsigned long *value_bitmap)
|
unsigned long *value_bitmap)
|
||||||
{
|
{
|
||||||
if (!desc_array)
|
if (!desc_array)
|
||||||
return;
|
return -EINVAL;
|
||||||
gpiod_set_array_value_complex(false, false, array_size, desc_array,
|
return gpiod_set_array_value_complex(false, false, array_size,
|
||||||
array_info, value_bitmap);
|
desc_array, array_info,
|
||||||
|
value_bitmap);
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL_GPL(gpiod_set_array_value);
|
EXPORT_SYMBOL_GPL(gpiod_set_array_value);
|
||||||
|
|
||||||
@ -3763,16 +3764,17 @@ void gpiod_add_lookup_tables(struct gpiod_lookup_table **tables, size_t n)
|
|||||||
*
|
*
|
||||||
* This function is to be called from contexts that can sleep.
|
* This function is to be called from contexts that can sleep.
|
||||||
*/
|
*/
|
||||||
void gpiod_set_array_value_cansleep(unsigned int array_size,
|
int gpiod_set_array_value_cansleep(unsigned int array_size,
|
||||||
struct gpio_desc **desc_array,
|
struct gpio_desc **desc_array,
|
||||||
struct gpio_array *array_info,
|
struct gpio_array *array_info,
|
||||||
unsigned long *value_bitmap)
|
unsigned long *value_bitmap)
|
||||||
{
|
{
|
||||||
might_sleep_if(extra_checks);
|
might_sleep_if(extra_checks);
|
||||||
if (!desc_array)
|
if (!desc_array)
|
||||||
return;
|
return -EINVAL;
|
||||||
gpiod_set_array_value_complex(false, true, array_size, desc_array,
|
return gpiod_set_array_value_complex(false, true, array_size,
|
||||||
array_info, value_bitmap);
|
desc_array, array_info,
|
||||||
|
value_bitmap);
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL_GPL(gpiod_set_array_value_cansleep);
|
EXPORT_SYMBOL_GPL(gpiod_set_array_value_cansleep);
|
||||||
|
|
||||||
|
@ -117,10 +117,10 @@ int gpiod_get_array_value(unsigned int array_size,
|
|||||||
struct gpio_array *array_info,
|
struct gpio_array *array_info,
|
||||||
unsigned long *value_bitmap);
|
unsigned long *value_bitmap);
|
||||||
void gpiod_set_value(struct gpio_desc *desc, int value);
|
void gpiod_set_value(struct gpio_desc *desc, int value);
|
||||||
void gpiod_set_array_value(unsigned int array_size,
|
int gpiod_set_array_value(unsigned int array_size,
|
||||||
struct gpio_desc **desc_array,
|
struct gpio_desc **desc_array,
|
||||||
struct gpio_array *array_info,
|
struct gpio_array *array_info,
|
||||||
unsigned long *value_bitmap);
|
unsigned long *value_bitmap);
|
||||||
int gpiod_get_raw_value(const struct gpio_desc *desc);
|
int gpiod_get_raw_value(const struct gpio_desc *desc);
|
||||||
int gpiod_get_raw_array_value(unsigned int array_size,
|
int gpiod_get_raw_array_value(unsigned int array_size,
|
||||||
struct gpio_desc **desc_array,
|
struct gpio_desc **desc_array,
|
||||||
@ -139,10 +139,10 @@ int gpiod_get_array_value_cansleep(unsigned int array_size,
|
|||||||
struct gpio_array *array_info,
|
struct gpio_array *array_info,
|
||||||
unsigned long *value_bitmap);
|
unsigned long *value_bitmap);
|
||||||
void gpiod_set_value_cansleep(struct gpio_desc *desc, int value);
|
void gpiod_set_value_cansleep(struct gpio_desc *desc, int value);
|
||||||
void gpiod_set_array_value_cansleep(unsigned int array_size,
|
int gpiod_set_array_value_cansleep(unsigned int array_size,
|
||||||
struct gpio_desc **desc_array,
|
struct gpio_desc **desc_array,
|
||||||
struct gpio_array *array_info,
|
struct gpio_array *array_info,
|
||||||
unsigned long *value_bitmap);
|
unsigned long *value_bitmap);
|
||||||
int gpiod_get_raw_value_cansleep(const struct gpio_desc *desc);
|
int gpiod_get_raw_value_cansleep(const struct gpio_desc *desc);
|
||||||
int gpiod_get_raw_array_value_cansleep(unsigned int array_size,
|
int gpiod_get_raw_array_value_cansleep(unsigned int array_size,
|
||||||
struct gpio_desc **desc_array,
|
struct gpio_desc **desc_array,
|
||||||
@ -361,13 +361,14 @@ static inline void gpiod_set_value(struct gpio_desc *desc, int value)
|
|||||||
/* GPIO can never have been requested */
|
/* GPIO can never have been requested */
|
||||||
WARN_ON(1);
|
WARN_ON(1);
|
||||||
}
|
}
|
||||||
static inline void gpiod_set_array_value(unsigned int array_size,
|
static inline int gpiod_set_array_value(unsigned int array_size,
|
||||||
struct gpio_desc **desc_array,
|
struct gpio_desc **desc_array,
|
||||||
struct gpio_array *array_info,
|
struct gpio_array *array_info,
|
||||||
unsigned long *value_bitmap)
|
unsigned long *value_bitmap)
|
||||||
{
|
{
|
||||||
/* GPIO can never have been requested */
|
/* GPIO can never have been requested */
|
||||||
WARN_ON(1);
|
WARN_ON(1);
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
static inline int gpiod_get_raw_value(const struct gpio_desc *desc)
|
static inline int gpiod_get_raw_value(const struct gpio_desc *desc)
|
||||||
{
|
{
|
||||||
@ -419,13 +420,14 @@ static inline void gpiod_set_value_cansleep(struct gpio_desc *desc, int value)
|
|||||||
/* GPIO can never have been requested */
|
/* GPIO can never have been requested */
|
||||||
WARN_ON(1);
|
WARN_ON(1);
|
||||||
}
|
}
|
||||||
static inline void gpiod_set_array_value_cansleep(unsigned int array_size,
|
static inline int gpiod_set_array_value_cansleep(unsigned int array_size,
|
||||||
struct gpio_desc **desc_array,
|
struct gpio_desc **desc_array,
|
||||||
struct gpio_array *array_info,
|
struct gpio_array *array_info,
|
||||||
unsigned long *value_bitmap)
|
unsigned long *value_bitmap)
|
||||||
{
|
{
|
||||||
/* GPIO can never have been requested */
|
/* GPIO can never have been requested */
|
||||||
WARN_ON(1);
|
WARN_ON(1);
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
static inline int gpiod_get_raw_value_cansleep(const struct gpio_desc *desc)
|
static inline int gpiod_get_raw_value_cansleep(const struct gpio_desc *desc)
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user