Re: [PATCH v4] gpio: sim: don't fiddle with GPIOLIB private members

From: Andy Shevchenko
Date: Thu Sep 07 2023 - 12:12:16 EST


On Thu, Sep 07, 2023 at 10:27:51AM +0200, Bartosz Golaszewski wrote:
> From: Bartosz Golaszewski <bartosz.golaszewski@xxxxxxxxxx>
>
> 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.

Will LGTM with the couple of remarks being addressed.

...

> #include <linux/completion.h>
> #include <linux/configfs.h>
> #include <linux/device.h>

> +#include <linux/device/bus.h>

No need, the device.h guarantees that.

...

> +static int gpio_sim_dev_match_fwnode(struct device *dev, void *data)
> +{
> + /*
> + * We can't pass this directly to device_find_child() due to pointer
> + * type mismatch.
> + */

Not sure if this comment adds any value.

> + return device_match_fwnode(dev, data);
> +}

--
With Best Regards,
Andy Shevchenko