gpio: sim: don't fiddle with GPIOLIB private members
authorBartosz Golaszewski <bartosz.golaszewski@linaro.org>
Mon, 11 Sep 2023 11:07:40 +0000 (13:07 +0200)
committerBartosz Golaszewski <bartosz.golaszewski@linaro.org>
Tue, 12 Sep 2023 07:29:24 +0000 (09:29 +0200)
commit88d31f836b41091dfd9f32c3675e0b225758f993
tree0fab98788de1c699169875210d2ce7a1d217ee6e
parent9a249ec89a5e562f8436ba0edfe7322a22e65b11
gpio: sim: don't fiddle with GPIOLIB private members

We access internals of struct gpio_device and struct gpio_desc because
it's easier but it can actually be avoided and we're working towards a
better encapsulation of GPIO data structures across the kernel so let's
start at home.

Instead of checking gpio_desc flags, let's just track the requests of
GPIOs in the driver. We also already store the information about
direction of simulated lines.

For kobjects needed by sysfs callbacks: we can iterate over the children
devices of the top-level platform device and compare their fwnodes
against the one passed to the init function from probe.

While at it: fix one line break and remove the untrue part about
configfs callbacks using dev_get_drvdata() from a comment.

Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
drivers/gpio/gpio-sim.c