Commit b17d1bf1 authored by Uwe Kleine-König's avatar Uwe Kleine-König

gpio: make flags mandatory for gpiod_get functions

Now that all[1] users of the gpiod_get functions are converted to make
use of the up to now optional flags parameter, make it mandatory which
allows to remove some cpp magic.

[1] all but etraxfs-uart which is broken anyhow and I'm allowed to
    ignore it by Jesper Nilsson :-)
Acked-by: default avatarAlexandre Courbot <acourbot@nvidia.com>
Signed-off-by: default avatarUwe Kleine-König <u.kleine-koenig@pengutronix.de>
parent eac47780
...@@ -59,13 +59,13 @@ static int devm_gpiod_match_array(struct device *dev, void *res, void *data) ...@@ -59,13 +59,13 @@ static int devm_gpiod_match_array(struct device *dev, void *res, void *data)
* automatically disposed on driver detach. See gpiod_get() for detailed * automatically disposed on driver detach. See gpiod_get() for detailed
* information about behavior and return values. * information about behavior and return values.
*/ */
struct gpio_desc *__must_check __devm_gpiod_get(struct device *dev, struct gpio_desc *__must_check devm_gpiod_get(struct device *dev,
const char *con_id, const char *con_id,
enum gpiod_flags flags) enum gpiod_flags flags)
{ {
return devm_gpiod_get_index(dev, con_id, 0, flags); return devm_gpiod_get_index(dev, con_id, 0, flags);
} }
EXPORT_SYMBOL(__devm_gpiod_get); EXPORT_SYMBOL(devm_gpiod_get);
/** /**
* devm_gpiod_get_optional - Resource-managed gpiod_get_optional() * devm_gpiod_get_optional - Resource-managed gpiod_get_optional()
...@@ -77,13 +77,13 @@ EXPORT_SYMBOL(__devm_gpiod_get); ...@@ -77,13 +77,13 @@ EXPORT_SYMBOL(__devm_gpiod_get);
* are automatically disposed on driver detach. See gpiod_get_optional() for * are automatically disposed on driver detach. See gpiod_get_optional() for
* detailed information about behavior and return values. * detailed information about behavior and return values.
*/ */
struct gpio_desc *__must_check __devm_gpiod_get_optional(struct device *dev, struct gpio_desc *__must_check devm_gpiod_get_optional(struct device *dev,
const char *con_id, const char *con_id,
enum gpiod_flags flags) enum gpiod_flags flags)
{ {
return devm_gpiod_get_index_optional(dev, con_id, 0, flags); return devm_gpiod_get_index_optional(dev, con_id, 0, flags);
} }
EXPORT_SYMBOL(__devm_gpiod_get_optional); EXPORT_SYMBOL(devm_gpiod_get_optional);
/** /**
* devm_gpiod_get_index - Resource-managed gpiod_get_index() * devm_gpiod_get_index - Resource-managed gpiod_get_index()
...@@ -96,7 +96,7 @@ EXPORT_SYMBOL(__devm_gpiod_get_optional); ...@@ -96,7 +96,7 @@ EXPORT_SYMBOL(__devm_gpiod_get_optional);
* automatically disposed on driver detach. See gpiod_get_index() for detailed * automatically disposed on driver detach. See gpiod_get_index() for detailed
* information about behavior and return values. * information about behavior and return values.
*/ */
struct gpio_desc *__must_check __devm_gpiod_get_index(struct device *dev, struct gpio_desc *__must_check devm_gpiod_get_index(struct device *dev,
const char *con_id, const char *con_id,
unsigned int idx, unsigned int idx,
enum gpiod_flags flags) enum gpiod_flags flags)
...@@ -120,7 +120,7 @@ struct gpio_desc *__must_check __devm_gpiod_get_index(struct device *dev, ...@@ -120,7 +120,7 @@ struct gpio_desc *__must_check __devm_gpiod_get_index(struct device *dev,
return desc; return desc;
} }
EXPORT_SYMBOL(__devm_gpiod_get_index); EXPORT_SYMBOL(devm_gpiod_get_index);
/** /**
* devm_get_gpiod_from_child - get a GPIO descriptor from a device's child node * devm_get_gpiod_from_child - get a GPIO descriptor from a device's child node
...@@ -182,10 +182,10 @@ EXPORT_SYMBOL(devm_get_gpiod_from_child); ...@@ -182,10 +182,10 @@ EXPORT_SYMBOL(devm_get_gpiod_from_child);
* gpiod_get_index_optional() for detailed information about behavior and * gpiod_get_index_optional() for detailed information about behavior and
* return values. * return values.
*/ */
struct gpio_desc *__must_check __devm_gpiod_get_index_optional(struct device *dev, struct gpio_desc *__must_check devm_gpiod_get_index_optional(struct device *dev,
const char *con_id, const char *con_id,
unsigned int index, unsigned int index,
enum gpiod_flags flags) enum gpiod_flags flags)
{ {
struct gpio_desc *desc; struct gpio_desc *desc;
...@@ -197,7 +197,7 @@ struct gpio_desc *__must_check __devm_gpiod_get_index_optional(struct device *de ...@@ -197,7 +197,7 @@ struct gpio_desc *__must_check __devm_gpiod_get_index_optional(struct device *de
return desc; return desc;
} }
EXPORT_SYMBOL(__devm_gpiod_get_index_optional); EXPORT_SYMBOL(devm_gpiod_get_index_optional);
/** /**
* devm_gpiod_get_array - Resource-managed gpiod_get_array() * devm_gpiod_get_array - Resource-managed gpiod_get_array()
......
...@@ -1894,12 +1894,12 @@ EXPORT_SYMBOL_GPL(gpiod_count); ...@@ -1894,12 +1894,12 @@ EXPORT_SYMBOL_GPL(gpiod_count);
* dev, -ENOENT if no GPIO has been assigned to the requested function, or * dev, -ENOENT if no GPIO has been assigned to the requested function, or
* another IS_ERR() code if an error occurred while trying to acquire the GPIO. * another IS_ERR() code if an error occurred while trying to acquire the GPIO.
*/ */
struct gpio_desc *__must_check __gpiod_get(struct device *dev, const char *con_id, struct gpio_desc *__must_check gpiod_get(struct device *dev, const char *con_id,
enum gpiod_flags flags) enum gpiod_flags flags)
{ {
return gpiod_get_index(dev, con_id, 0, flags); return gpiod_get_index(dev, con_id, 0, flags);
} }
EXPORT_SYMBOL_GPL(__gpiod_get); EXPORT_SYMBOL_GPL(gpiod_get);
/** /**
* gpiod_get_optional - obtain an optional GPIO for a given GPIO function * gpiod_get_optional - obtain an optional GPIO for a given GPIO function
...@@ -1911,13 +1911,13 @@ EXPORT_SYMBOL_GPL(__gpiod_get); ...@@ -1911,13 +1911,13 @@ EXPORT_SYMBOL_GPL(__gpiod_get);
* the requested function it will return NULL. This is convenient for drivers * the requested function it will return NULL. This is convenient for drivers
* that need to handle optional GPIOs. * that need to handle optional GPIOs.
*/ */
struct gpio_desc *__must_check __gpiod_get_optional(struct device *dev, struct gpio_desc *__must_check gpiod_get_optional(struct device *dev,
const char *con_id, const char *con_id,
enum gpiod_flags flags) enum gpiod_flags flags)
{ {
return gpiod_get_index_optional(dev, con_id, 0, flags); return gpiod_get_index_optional(dev, con_id, 0, flags);
} }
EXPORT_SYMBOL_GPL(__gpiod_get_optional); EXPORT_SYMBOL_GPL(gpiod_get_optional);
/** /**
...@@ -1974,7 +1974,7 @@ static int gpiod_configure_flags(struct gpio_desc *desc, const char *con_id, ...@@ -1974,7 +1974,7 @@ static int gpiod_configure_flags(struct gpio_desc *desc, const char *con_id,
* requested function and/or index, or another IS_ERR() code if an error * requested function and/or index, or another IS_ERR() code if an error
* occurred while trying to acquire the GPIO. * occurred while trying to acquire the GPIO.
*/ */
struct gpio_desc *__must_check __gpiod_get_index(struct device *dev, struct gpio_desc *__must_check gpiod_get_index(struct device *dev,
const char *con_id, const char *con_id,
unsigned int idx, unsigned int idx,
enum gpiod_flags flags) enum gpiod_flags flags)
...@@ -2023,7 +2023,7 @@ struct gpio_desc *__must_check __gpiod_get_index(struct device *dev, ...@@ -2023,7 +2023,7 @@ struct gpio_desc *__must_check __gpiod_get_index(struct device *dev,
return desc; return desc;
} }
EXPORT_SYMBOL_GPL(__gpiod_get_index); EXPORT_SYMBOL_GPL(gpiod_get_index);
/** /**
* fwnode_get_named_gpiod - obtain a GPIO from firmware node * fwnode_get_named_gpiod - obtain a GPIO from firmware node
...@@ -2092,7 +2092,7 @@ EXPORT_SYMBOL_GPL(fwnode_get_named_gpiod); ...@@ -2092,7 +2092,7 @@ EXPORT_SYMBOL_GPL(fwnode_get_named_gpiod);
* specified index was assigned to the requested function it will return NULL. * specified index was assigned to the requested function it will return NULL.
* This is convenient for drivers that need to handle optional GPIOs. * This is convenient for drivers that need to handle optional GPIOs.
*/ */
struct gpio_desc *__must_check __gpiod_get_index_optional(struct device *dev, struct gpio_desc *__must_check gpiod_get_index_optional(struct device *dev,
const char *con_id, const char *con_id,
unsigned int index, unsigned int index,
enum gpiod_flags flags) enum gpiod_flags flags)
...@@ -2107,7 +2107,7 @@ struct gpio_desc *__must_check __gpiod_get_index_optional(struct device *dev, ...@@ -2107,7 +2107,7 @@ struct gpio_desc *__must_check __gpiod_get_index_optional(struct device *dev,
return desc; return desc;
} }
EXPORT_SYMBOL_GPL(__gpiod_get_index_optional); EXPORT_SYMBOL_GPL(gpiod_get_index_optional);
/** /**
* gpiod_hog - Hog the specified GPIO desc given the provided flags * gpiod_hog - Hog the specified GPIO desc given the provided flags
......
...@@ -47,17 +47,17 @@ enum gpiod_flags { ...@@ -47,17 +47,17 @@ enum gpiod_flags {
int gpiod_count(struct device *dev, const char *con_id); int gpiod_count(struct device *dev, const char *con_id);
/* Acquire and dispose GPIOs */ /* Acquire and dispose GPIOs */
struct gpio_desc *__must_check __gpiod_get(struct device *dev, struct gpio_desc *__must_check gpiod_get(struct device *dev,
const char *con_id, const char *con_id,
enum gpiod_flags flags); enum gpiod_flags flags);
struct gpio_desc *__must_check __gpiod_get_index(struct device *dev, struct gpio_desc *__must_check gpiod_get_index(struct device *dev,
const char *con_id, const char *con_id,
unsigned int idx, unsigned int idx,
enum gpiod_flags flags); enum gpiod_flags flags);
struct gpio_desc *__must_check __gpiod_get_optional(struct device *dev, struct gpio_desc *__must_check gpiod_get_optional(struct device *dev,
const char *con_id, const char *con_id,
enum gpiod_flags flags); enum gpiod_flags flags);
struct gpio_desc *__must_check __gpiod_get_index_optional(struct device *dev, struct gpio_desc *__must_check gpiod_get_index_optional(struct device *dev,
const char *con_id, const char *con_id,
unsigned int index, unsigned int index,
enum gpiod_flags flags); enum gpiod_flags flags);
...@@ -70,18 +70,18 @@ struct gpio_descs *__must_check gpiod_get_array_optional(struct device *dev, ...@@ -70,18 +70,18 @@ struct gpio_descs *__must_check gpiod_get_array_optional(struct device *dev,
void gpiod_put(struct gpio_desc *desc); void gpiod_put(struct gpio_desc *desc);
void gpiod_put_array(struct gpio_descs *descs); void gpiod_put_array(struct gpio_descs *descs);
struct gpio_desc *__must_check __devm_gpiod_get(struct device *dev, struct gpio_desc *__must_check devm_gpiod_get(struct device *dev,
const char *con_id, const char *con_id,
enum gpiod_flags flags); enum gpiod_flags flags);
struct gpio_desc *__must_check __devm_gpiod_get_index(struct device *dev, struct gpio_desc *__must_check devm_gpiod_get_index(struct device *dev,
const char *con_id, const char *con_id,
unsigned int idx, unsigned int idx,
enum gpiod_flags flags); enum gpiod_flags flags);
struct gpio_desc *__must_check __devm_gpiod_get_optional(struct device *dev, struct gpio_desc *__must_check devm_gpiod_get_optional(struct device *dev,
const char *con_id, const char *con_id,
enum gpiod_flags flags); enum gpiod_flags flags);
struct gpio_desc *__must_check struct gpio_desc *__must_check
__devm_gpiod_get_index_optional(struct device *dev, const char *con_id, devm_gpiod_get_index_optional(struct device *dev, const char *con_id,
unsigned int index, enum gpiod_flags flags); unsigned int index, enum gpiod_flags flags);
struct gpio_descs *__must_check devm_gpiod_get_array(struct device *dev, struct gpio_descs *__must_check devm_gpiod_get_array(struct device *dev,
const char *con_id, const char *con_id,
...@@ -146,31 +146,31 @@ static inline int gpiod_count(struct device *dev, const char *con_id) ...@@ -146,31 +146,31 @@ static inline int gpiod_count(struct device *dev, const char *con_id)
return 0; return 0;
} }
static inline struct gpio_desc *__must_check __gpiod_get(struct device *dev, static inline struct gpio_desc *__must_check gpiod_get(struct device *dev,
const char *con_id, const char *con_id,
enum gpiod_flags flags) enum gpiod_flags flags)
{ {
return ERR_PTR(-ENOSYS); return ERR_PTR(-ENOSYS);
} }
static inline struct gpio_desc *__must_check static inline struct gpio_desc *__must_check
__gpiod_get_index(struct device *dev, gpiod_get_index(struct device *dev,
const char *con_id, const char *con_id,
unsigned int idx, unsigned int idx,
enum gpiod_flags flags) enum gpiod_flags flags)
{ {
return ERR_PTR(-ENOSYS); return ERR_PTR(-ENOSYS);
} }
static inline struct gpio_desc *__must_check static inline struct gpio_desc *__must_check
__gpiod_get_optional(struct device *dev, const char *con_id, gpiod_get_optional(struct device *dev, const char *con_id,
enum gpiod_flags flags) enum gpiod_flags flags)
{ {
return ERR_PTR(-ENOSYS); return ERR_PTR(-ENOSYS);
} }
static inline struct gpio_desc *__must_check static inline struct gpio_desc *__must_check
__gpiod_get_index_optional(struct device *dev, const char *con_id, gpiod_get_index_optional(struct device *dev, const char *con_id,
unsigned int index, enum gpiod_flags flags) unsigned int index, enum gpiod_flags flags)
{ {
return ERR_PTR(-ENOSYS); return ERR_PTR(-ENOSYS);
} }
...@@ -206,7 +206,7 @@ static inline void gpiod_put_array(struct gpio_descs *descs) ...@@ -206,7 +206,7 @@ static inline void gpiod_put_array(struct gpio_descs *descs)
} }
static inline struct gpio_desc *__must_check static inline struct gpio_desc *__must_check
__devm_gpiod_get(struct device *dev, devm_gpiod_get(struct device *dev,
const char *con_id, const char *con_id,
enum gpiod_flags flags) enum gpiod_flags flags)
{ {
...@@ -214,7 +214,7 @@ __devm_gpiod_get(struct device *dev, ...@@ -214,7 +214,7 @@ __devm_gpiod_get(struct device *dev,
} }
static inline static inline
struct gpio_desc *__must_check struct gpio_desc *__must_check
__devm_gpiod_get_index(struct device *dev, devm_gpiod_get_index(struct device *dev,
const char *con_id, const char *con_id,
unsigned int idx, unsigned int idx,
enum gpiod_flags flags) enum gpiod_flags flags)
...@@ -223,14 +223,14 @@ __devm_gpiod_get_index(struct device *dev, ...@@ -223,14 +223,14 @@ __devm_gpiod_get_index(struct device *dev,
} }
static inline struct gpio_desc *__must_check static inline struct gpio_desc *__must_check
__devm_gpiod_get_optional(struct device *dev, const char *con_id, devm_gpiod_get_optional(struct device *dev, const char *con_id,
enum gpiod_flags flags) enum gpiod_flags flags)
{ {
return ERR_PTR(-ENOSYS); return ERR_PTR(-ENOSYS);
} }
static inline struct gpio_desc *__must_check static inline struct gpio_desc *__must_check
__devm_gpiod_get_index_optional(struct device *dev, const char *con_id, devm_gpiod_get_index_optional(struct device *dev, const char *con_id,
unsigned int index, enum gpiod_flags flags) unsigned int index, enum gpiod_flags flags)
{ {
return ERR_PTR(-ENOSYS); return ERR_PTR(-ENOSYS);
...@@ -424,42 +424,6 @@ static inline struct gpio_desc *devm_get_gpiod_from_child( ...@@ -424,42 +424,6 @@ static inline struct gpio_desc *devm_get_gpiod_from_child(
#endif /* CONFIG_GPIOLIB */ #endif /* CONFIG_GPIOLIB */
/*
* Vararg-hacks! This is done to transition the kernel to always pass
* the options flags argument to the below functions. During a transition
* phase these vararg macros make both old-and-newstyle code compile,
* but when all calls to the elder API are removed, these should go away
* and the __gpiod_get() etc functions above be renamed just gpiod_get()
* etc.
*/
#define __gpiod_get(dev, con_id, flags, ...) __gpiod_get(dev, con_id, flags)
#define gpiod_get(varargs...) __gpiod_get(varargs, GPIOD_ASIS)
#define __gpiod_get_index(dev, con_id, index, flags, ...) \
__gpiod_get_index(dev, con_id, index, flags)
#define gpiod_get_index(varargs...) __gpiod_get_index(varargs, GPIOD_ASIS)
#define __gpiod_get_optional(dev, con_id, flags, ...) \
__gpiod_get_optional(dev, con_id, flags)
#define gpiod_get_optional(varargs...) __gpiod_get_optional(varargs, GPIOD_ASIS)
#define __gpiod_get_index_optional(dev, con_id, index, flags, ...) \
__gpiod_get_index_optional(dev, con_id, index, flags)
#define gpiod_get_index_optional(varargs...) \
__gpiod_get_index_optional(varargs, GPIOD_ASIS)
#define __devm_gpiod_get(dev, con_id, flags, ...) \
__devm_gpiod_get(dev, con_id, flags)
#define devm_gpiod_get(varargs...) __devm_gpiod_get(varargs, GPIOD_ASIS)
#define __devm_gpiod_get_index(dev, con_id, index, flags, ...) \
__devm_gpiod_get_index(dev, con_id, index, flags)
#define devm_gpiod_get_index(varargs...) \
__devm_gpiod_get_index(varargs, GPIOD_ASIS)
#define __devm_gpiod_get_optional(dev, con_id, flags, ...) \
__devm_gpiod_get_optional(dev, con_id, flags)
#define devm_gpiod_get_optional(varargs...) \
__devm_gpiod_get_optional(varargs, GPIOD_ASIS)
#define __devm_gpiod_get_index_optional(dev, con_id, index, flags, ...) \
__devm_gpiod_get_index_optional(dev, con_id, index, flags)
#define devm_gpiod_get_index_optional(varargs...) \
__devm_gpiod_get_index_optional(varargs, GPIOD_ASIS)
#if IS_ENABLED(CONFIG_GPIOLIB) && IS_ENABLED(CONFIG_GPIO_SYSFS) #if IS_ENABLED(CONFIG_GPIOLIB) && IS_ENABLED(CONFIG_GPIO_SYSFS)
int gpiod_export(struct gpio_desc *desc, bool direction_may_change); int gpiod_export(struct gpio_desc *desc, bool direction_may_change);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment