mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/herbert/cryptodev-2.6.git
synced 2026-04-21 04:53:46 -04:00
Merge tag 'gpio-remove-gpiochip_is_requested-for-v6.8-rc1' into gpio/for-next
gpio: remove gpiochip_is_requested() - provide a safer alternative to gpiochip_is_requested() - convert all existing users - remove gpiochip_is_requested()
This commit is contained in:
@@ -531,19 +531,40 @@ struct gpio_chip {
|
||||
#endif /* CONFIG_OF_GPIO */
|
||||
};
|
||||
|
||||
const char *gpiochip_is_requested(struct gpio_chip *gc, unsigned int offset);
|
||||
char *gpiochip_dup_line_label(struct gpio_chip *gc, unsigned int offset);
|
||||
|
||||
|
||||
struct _gpiochip_for_each_data {
|
||||
const char **label;
|
||||
unsigned int *i;
|
||||
};
|
||||
|
||||
DEFINE_CLASS(_gpiochip_for_each_data,
|
||||
struct _gpiochip_for_each_data,
|
||||
if (*_T.label) kfree(*_T.label),
|
||||
({
|
||||
struct _gpiochip_for_each_data _data = { label, i };
|
||||
*_data.i = 0;
|
||||
_data;
|
||||
}),
|
||||
const char **label, int *i)
|
||||
|
||||
/**
|
||||
* for_each_requested_gpio_in_range - iterates over requested GPIOs in a given range
|
||||
* @chip: the chip to query
|
||||
* @i: loop variable
|
||||
* @base: first GPIO in the range
|
||||
* @size: amount of GPIOs to check starting from @base
|
||||
* @label: label of current GPIO
|
||||
* @_chip: the chip to query
|
||||
* @_i: loop variable
|
||||
* @_base: first GPIO in the range
|
||||
* @_size: amount of GPIOs to check starting from @base
|
||||
* @_label: label of current GPIO
|
||||
*/
|
||||
#define for_each_requested_gpio_in_range(chip, i, base, size, label) \
|
||||
for (i = 0; i < size; i++) \
|
||||
if ((label = gpiochip_is_requested(chip, base + i)) == NULL) {} else
|
||||
#define for_each_requested_gpio_in_range(_chip, _i, _base, _size, _label) \
|
||||
for (CLASS(_gpiochip_for_each_data, _data)(&_label, &_i); \
|
||||
*_data.i < _size; \
|
||||
(*_data.i)++, kfree(*(_data.label)), *_data.label = NULL) \
|
||||
if ((*_data.label = \
|
||||
gpiochip_dup_line_label(_chip, _base + *_data.i)) == NULL) {} \
|
||||
else if (IS_ERR(*_data.label)) {} \
|
||||
else
|
||||
|
||||
/* Iterates over all requested GPIO of the given @chip */
|
||||
#define for_each_requested_gpio(chip, i, label) \
|
||||
|
||||
Reference in New Issue
Block a user