From: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
To: Bjorn Helgaas <helgaas@kernel.org>
Cc: Greg KH <gregkh@linuxfoundation.org>,
Lee Jones <lee.jones@linaro.org>,
Leon Romanovsky <leon@kernel.org>,
"David E. Box" <david.e.box@linux.intel.com>,
hdegoede@redhat.com, bhelgaas@google.com,
srinivas.pandruvada@intel.com, shuah@kernel.org,
mgross@linux.intel.com, linux-kernel@vger.kernel.org,
platform-driver-x86@vger.kernel.org,
linux-kselftest@vger.kernel.org, linux-pci@vger.kernel.org,
"Rafael J. Wysocki" <rjw@rjwysocki.net>
Subject: Re: [V2 2/6] driver core: auxiliary bus: Add driver data helpers
Date: Thu, 9 Dec 2021 18:54:15 +0200 [thread overview]
Message-ID: <YbI0t2D5ute46Ty2@smile.fi.intel.com> (raw)
In-Reply-To: <20211209163245.GA245119@bhelgaas>
On Thu, Dec 09, 2021 at 10:32:45AM -0600, Bjorn Helgaas wrote:
> [+cc Rafael, since I used generic PM as an example]
> On Wed, Dec 08, 2021 at 09:47:56AM +0100, Greg KH wrote:
...
Okay, more bikeshedding :-)
> In the very common situation of PCI drivers that use generic power
> management, authors *do* have to use both (example from [1]):
>
> ioh_gpio_probe(struct pci_dev *pdev) # pci_driver.probe()
> pci_set_drvdata(pdev, chip);
>
> ioh_gpio_remove(struct pci_dev *pdev) # pci_driver.remove()
> struct ioh_gpio *chip = pci_get_drvdata(pdev);
>
> ioh_gpio_suspend(struct device *dev) # pci_driver.driver.pm.suspend()
> struct ioh_gpio *chip = dev_get_drvdata(dev); <--
>
> The pci_driver methods receive a struct pci_dev and use the
> pci_get_drvdata() wrapper.
>
> The generic power management methods receive a struct device and use
> the underlying dev_get_drvdata().
>
> It's kind of ugly that readers have to know that pci_get_drvdata()
> gives you the same thing as dev_get_drvdata().
>
> I guess the generic PM methods could do something like:
>
> pci_get_drvdata(to_pci_dev(dev));
>
> but that seems a little bit circuitous. It's slightly wordier, but I
> might prefer to just use this everywhere and skip the pci_* wrappers:
>
> dev_get_drvdata(&pdev->dev);
Strictly speaking the
<$BUS)_get_drvdata(<$CONTAINER>) != dev_get_drvdata(dev)
it's completely up to the container handling code what to do.
In 99% (or 100%?) cases it's equal, but it's not obliged to be so.
> [1] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/gpio/gpio-ml-ioh.c?id=v5.15#n505
--
With Best Regards,
Andy Shevchenko
next prev parent reply other threads:[~2021-12-09 16:56 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-12-07 17:14 [V2 0/6] Auxiliary bus driver support for Intel PCIe VSEC/DVSEC David E. Box
2021-12-07 17:14 ` [V2 1/6] PCI: Add #defines for accessing PCIe DVSEC fields David E. Box
2021-12-07 17:14 ` [V2 2/6] driver core: auxiliary bus: Add driver data helpers David E. Box
2021-12-07 17:35 ` Andy Shevchenko
2021-12-08 7:03 ` Leon Romanovsky
2021-12-08 7:07 ` Greg KH
2021-12-08 8:32 ` Leon Romanovsky
2021-12-08 8:43 ` Greg KH
2021-12-08 9:12 ` Leon Romanovsky
2021-12-08 10:14 ` Andy Shevchenko
2021-12-08 10:48 ` Leon Romanovsky
2021-12-08 8:43 ` Lee Jones
2021-12-08 8:47 ` Greg KH
2021-12-08 9:13 ` Lee Jones
2021-12-08 10:15 ` Andy Shevchenko
2021-12-09 16:32 ` Bjorn Helgaas
2021-12-09 16:54 ` Andy Shevchenko [this message]
2021-12-08 9:18 ` Leon Romanovsky
2021-12-07 17:14 ` [V2 3/6] platform/x86/intel: Move intel_pmt from MFD to Auxiliary Bus David E. Box
2021-12-07 17:14 ` [V2 4/6] platform/x86: Add Intel Software Defined Silicon driver David E. Box
2021-12-08 7:14 ` Leon Romanovsky
2021-12-08 10:42 ` David E. Box
2021-12-08 10:56 ` Leon Romanovsky
2021-12-07 17:14 ` [V2 5/6] sample/sdsi: Sample of SDSi provisiong using sysfs David E. Box
2021-12-07 17:14 ` [V2 6/6] selftests: sdsi: test sysfs setup David E. Box
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=YbI0t2D5ute46Ty2@smile.fi.intel.com \
--to=andriy.shevchenko@linux.intel.com \
--cc=bhelgaas@google.com \
--cc=david.e.box@linux.intel.com \
--cc=gregkh@linuxfoundation.org \
--cc=hdegoede@redhat.com \
--cc=helgaas@kernel.org \
--cc=lee.jones@linaro.org \
--cc=leon@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-kselftest@vger.kernel.org \
--cc=linux-pci@vger.kernel.org \
--cc=mgross@linux.intel.com \
--cc=platform-driver-x86@vger.kernel.org \
--cc=rjw@rjwysocki.net \
--cc=shuah@kernel.org \
--cc=srinivas.pandruvada@intel.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.