From: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
To: Bartosz Golaszewski <brgl@bgdev.pl>,
Saravana Kannan <saravanak@google.com>
Cc: Linus Walleij <linus.walleij@linaro.org>,
Kent Gibson <warthog618@gmail.com>,
linux-gpio@vger.kernel.org, linux-kernel@vger.kernel.org,
Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
Subject: Re: [PATCH] gpio: sim: don't fiddle with GPIOLIB private members
Date: Mon, 4 Sep 2023 12:40:28 +0300 [thread overview]
Message-ID: <ZPWmDL6QJJMNi2qa@smile.fi.intel.com> (raw)
In-Reply-To: <CAMRc=MfZv70FXHyNw4yK90NL5-jjAJa6qbKc6SV2ZwbaJkKQqg@mail.gmail.com>
On Mon, Sep 04, 2023 at 11:22:32AM +0200, Bartosz Golaszewski wrote:
> On Mon, Sep 4, 2023 at 10:59 AM Andy Shevchenko
> <andriy.shevchenko@linux.intel.com> wrote:
> > On Sat, Sep 02, 2023 at 04:40:05PM +0200, Bartosz Golaszewski wrote:
> > > On Fri, Sep 1, 2023 at 11:10 PM Andy Shevchenko
> > > <andriy.shevchenko@linux.intel.com> wrote:
> > > > On Fri, Sep 01, 2023 at 08:32:40PM +0200, Bartosz Golaszewski wrote:
...
> > > > > - /* Used by sysfs and configfs callbacks. */
> > > > > - dev_set_drvdata(&gc->gpiodev->dev, chip);
> > > > > + /* Used by sysfs callbacks. */
> > > > > + dev_set_drvdata(swnode->dev, chip);
> > > >
> > > > dev pointer of firmware node is solely for dev links. Is it the case here?
> > > > Seems to me you luckily abuse it.
> > >
> > > I don't think so. If anything we have a helper in the form of
> > > get_dev_from_fwnode() but it takes reference to the device while we
> > > don't need it - we know it'll be there because we created it.
> > >
> > > This information (struct device of the GPIO device) can also be
> > > retrieved by iterating over the device children of the top platform
> > > device and comparing their fwnodes against the one we got passed down
> > > from probe() but it's just so many extra steps.
> > >
> > > Or we can have a getter in gpio/driver.h for that but I don't want to
> > > expose another interface is we can simply use the fwnode.
> >
> > dev pointer in the fwnode strictly speaking is optional. No-one, except
> > its solely user, should rely on it (its presence and lifetime).
>
> Where is this documented? Because just by a quick glance into
> drivers/base/core.c I can tell that if a device has an fwnode then
> fwnode->dev gets assigned when the device is created and cleared when
> it's removed (note: note even attached to driver, just
> created/removed). Seems like pretty reliable behavior to me.
Yes, and even that member in fwnode is a hack in my opinion. We should not mix
layers and the idea in the future to get rid of the fwnode_handle to be
_embedded_ into struct device. It should be separate entity, and device
instance may use it as a linked list. Currently we have a few problems because
of the this design mistake.
The get_dev_from_fwnode() is used only in devlink and I want to keep it that way.
Nobody else should use it, really.
We can discuss with Saravana, but I don't believe he can convince me otherwise.
--
With Best Regards,
Andy Shevchenko
next prev parent reply other threads:[~2023-09-04 9:40 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-09-01 18:32 [PATCH] gpio: sim: don't fiddle with GPIOLIB private members Bartosz Golaszewski
2023-09-01 21:10 ` Andy Shevchenko
2023-09-02 14:40 ` Bartosz Golaszewski
2023-09-04 8:58 ` Andy Shevchenko
2023-09-04 9:22 ` Bartosz Golaszewski
2023-09-04 9:40 ` Andy Shevchenko [this message]
2023-09-04 9:47 ` Bartosz Golaszewski
2023-09-04 10:05 ` Andy Shevchenko
2023-09-04 10:12 ` Bartosz Golaszewski
2023-09-04 10:29 ` Andy Shevchenko
2024-02-21 1:46 ` Saravana Kannan
2024-02-21 9:34 ` Bartosz Golaszewski
2024-02-21 12:59 ` Andy Shevchenko
2024-02-23 1:01 ` Saravana Kannan
2024-02-23 14:54 ` Andy Shevchenko
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=ZPWmDL6QJJMNi2qa@smile.fi.intel.com \
--to=andriy.shevchenko@linux.intel.com \
--cc=bartosz.golaszewski@linaro.org \
--cc=brgl@bgdev.pl \
--cc=linus.walleij@linaro.org \
--cc=linux-gpio@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=saravanak@google.com \
--cc=warthog618@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.