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