gpiolib: provide gpio_device_find()
authorBartosz Golaszewski <bartosz.golaszewski@linaro.org>
Wed, 27 Sep 2023 14:29:23 +0000 (16:29 +0200)
committerBartosz Golaszewski <bartosz.golaszewski@linaro.org>
Wed, 4 Oct 2023 11:29:31 +0000 (13:29 +0200)
commitcfe102f63308c8c8e01199a682868a64b83f653e
treebfdbc2a94b76a3c9a971d4b2c514d153ceafaba2
parent9e4555d1e54a18946d7ca363b9fc8ed1fe7dfde4
gpiolib: provide gpio_device_find()

gpiochip_find() is wrong and its kernel doc is misleading as the
function doesn't return a reference to the gpio_chip but just a raw
pointer. The chip itself is not guaranteed to stay alive, in fact it can
be deleted at any point. Also: other than GPIO drivers themselves,
nobody else has any business accessing gpio_chip structs.

Provide a new gpio_device_find() function that returns a real reference
to the opaque gpio_device structure that is guaranteed to stay alive for
as long as there are active users of it.

Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
drivers/gpio/gpiolib.c
include/linux/gpio/driver.h