mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
synced 2025-01-08 15:04:45 +00:00
gpiolib: reluctantly provide gpio_device_get_chip()
The process of converting all unauthorized users of struct gpio_chip to using dedicated struct gpio_device function will be long so in the meantime we must provide a way of retrieving the pointer to struct gpio_chip from a GPIO device. Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org> Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
This commit is contained in:
parent
93548f8bbb
commit
9b41878084
@ -220,6 +220,27 @@ struct gpio_chip *gpiod_to_chip(const struct gpio_desc *desc)
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(gpiod_to_chip);
|
||||
|
||||
/**
|
||||
* gpio_device_get_chip() - Get the gpio_chip implementation of this GPIO device
|
||||
* @gdev: GPIO device
|
||||
*
|
||||
* Returns:
|
||||
* Address of the GPIO chip backing this device.
|
||||
*
|
||||
* Until we can get rid of all non-driver users of struct gpio_chip, we must
|
||||
* provide a way of retrieving the pointer to it from struct gpio_device. This
|
||||
* is *NOT* safe as the GPIO API is considered to be hot-unpluggable and the
|
||||
* chip can dissapear at any moment (unlike reference-counted struct
|
||||
* gpio_device).
|
||||
*
|
||||
* Use at your own risk.
|
||||
*/
|
||||
struct gpio_chip *gpio_device_get_chip(struct gpio_device *gdev)
|
||||
{
|
||||
return gdev->chip;
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(gpio_device_get_chip);
|
||||
|
||||
/* dynamic allocation of GPIOs, e.g. on a hotplugged device */
|
||||
static int gpiochip_find_base(int ngpio)
|
||||
{
|
||||
|
@ -773,6 +773,8 @@ struct gpio_desc *gpiochip_get_desc(struct gpio_chip *gc, unsigned int hwnum);
|
||||
struct gpio_desc *
|
||||
gpio_device_get_desc(struct gpio_device *gdev, unsigned int hwnum);
|
||||
|
||||
struct gpio_chip *gpio_device_get_chip(struct gpio_device *gdev);
|
||||
|
||||
#ifdef CONFIG_GPIOLIB
|
||||
|
||||
/* lock/unlock as IRQ */
|
||||
|
Loading…
Reference in New Issue
Block a user