On Thu, Sep 7, 2023 at 4:13 PM Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx> wrote: > > 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. > Wait, wasn't you the one who always suggests including headers directly if we're using any symbols defined in them? Like when I said that we don't need to include linux/notifier.h because it's already included in gpiolib.h and you argued the opposite? :) device_match_fwnode() is defined in linux/device/bus.h so I thought it's in order to include it. > ... > > > +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. > I disagree - I would have used device_match_fwnode() as argument passed directly to device_find_child() but I cannot due to pointer type mismatch error so we need this wrapper and it's useful to say why. Bart > > + return device_match_fwnode(dev, data); > > +} > > -- > With Best Regards, > Andy Shevchenko > >