linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Mark Brown <broonie@kernel.org>
To: Jason Gunthorpe <jgg@nvidia.com>
Cc: Greg KH <gregkh@linuxfoundation.org>,
	Alexandre Belloni <alexandre.belloni@bootlin.com>,
	Dan Williams <dan.j.williams@intel.com>,
	Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>,
	alsa-devel@alsa-project.org, Kiran Patil <kiran.patil@intel.com>,
	linux-rdma <linux-rdma@vger.kernel.org>,
	Shiraz Saleem <shiraz.saleem@intel.com>,
	Martin Habets <mhabets@solarflare.com>,
	Liam Girdwood <lgirdwood@gmail.com>,
	Ranjani Sridharan <ranjani.sridharan@linux.intel.com>,
	Fred Oh <fred.oh@linux.intel.com>,
	Dave Ertman <david.m.ertman@intel.com>,
	Jakub Kicinski <kuba@kernel.org>, Netdev <netdev@vger.kernel.org>,
	Leon Romanovsky <leonro@nvidia.com>,
	David Miller <davem@davemloft.net>,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
	Parav Pandit <parav@mellanox.com>,
	lee.jones@linaro.org
Subject: Re: [resend/standalone PATCH v4] Add auxiliary bus support
Date: Tue, 5 Jan 2021 13:42:56 +0000	[thread overview]
Message-ID: <20210105134256.GA4487@sirena.org.uk> (raw)
In-Reply-To: <20210105001341.GL552508@nvidia.com>

[-- Attachment #1: Type: text/plain, Size: 2634 bytes --]

On Mon, Jan 04, 2021 at 08:13:41PM -0400, Jason Gunthorpe wrote:
> On Mon, Jan 04, 2021 at 09:19:30PM +0000, Mark Brown wrote:

> > Like I keep saying the same thing applies to all non-enumerable buses -
> > exactly the same considerations exist for all the other buses like I2C
> > (including the ACPI naming issue you mention below), and for that matter
> > with enumerable buses which can have firmware info.

> And most busses do already have their own bus type. ACPI, I2C, PCI,
> etc. It is just a few that have been squished into platform, notably
> OF.

You're missing the point there.  I2C is enumerated by firmware in
exactly the same way as the platform bus is, it's not discoverable from
the hardware (and similarly for a bunch of other buses).  If we were to
say that we need separate device types for platform devices enumerated
using firmware then by analogy we should do the same for devices on
these other buses that happen to be enumerated by firmware.

I'm not convinced this is actually the design that's being pushed by
Greg here, to the extent anything is being actively pushed.

> But now it begs the question, why not push harder to make 'struct
> device' the generic universal access point and add some resource_get()
> API along these lines so even a platform_device * isn't needed?

We still need a struct device of some kind so the discussions about
exactly which bus type one is supposed to use in which circumstances
remain given that you're not supposed to have raw struct devices.

> Then the path seems much clearer, add a multi-bus-type device_driver
> that has a probe(struct device *) and uses the 'universal api_get()'
> style interface to find the generic 'resources'.

That's exactly how things like mixed I2C/SPI devices work at present,
given that they can usually use regmap to hide register I/O.

> int gpiod_count(struct device *dev, const char *con_id)
> {
> 	int count = -ENOENT;

> 	if (IS_ENABLED(CONFIG_OF) && dev && dev->of_node)
> 		count = of_gpio_get_count(dev, con_id);
> 	else if (IS_ENABLED(CONFIG_ACPI) && dev && ACPI_HANDLE(dev))
> 		count = acpi_gpio_count(dev, con_id);
> 
> 	if (count < 0)
> 		count = platform_gpio_count(dev, con_id);

> With an actual bus specific virtual function:

>     return dev->bus->gpio_count(dev);

That won't work, you might have a mix of enumeration types for a given
bus type in a single system so you'd need to do this per device.  It's
also not clear to me that it is useful to spread things out like this,
it makes it more hassle to add new APIs since you have to change core
code.

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

  parent reply	other threads:[~2021-01-05 13:44 UTC|newest]

Thread overview: 57+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-12-03  0:54 [resend/standalone PATCH v4] Add auxiliary bus support Dan Williams
2020-12-03 15:06 ` Greg KH
2020-12-04  2:33   ` Jason Gunthorpe
2020-12-04  3:37     ` Dan Williams
2020-12-03 15:07 ` Greg KH
2020-12-03 15:55   ` Leon Romanovsky
2020-12-04 11:42 ` Greg KH
2020-12-04 11:43   ` [PATCH 1/3] driver core: auxiliary bus: move slab.h from include file Greg KH
2020-12-04 11:44     ` [PATCH 2/3] driver core: auxiliary bus: make remove function return void Greg KH
2020-12-04 11:44       ` [PATCH 3/3] driver core: auxiliary bus: minor coding style tweaks Greg KH
2020-12-04 11:48         ` Greg KH
2020-12-04 11:49       ` [PATCH v2 " Greg KH
2020-12-04 12:32   ` [resend/standalone PATCH v4] Add auxiliary bus support Leon Romanovsky
2020-12-04 12:43     ` Parav Pandit
2020-12-04 12:59     ` Greg KH
2020-12-04 17:10       ` Ranjani Sridharan
2020-12-05  9:02         ` Greg KH
2020-12-04 16:41   ` Dan Williams
2020-12-05 15:51     ` Greg KH
2020-12-17 21:19       ` Alexandre Belloni
2020-12-18  2:39         ` Dan Williams
2020-12-18 14:20           ` Mark Brown
2020-12-18  7:10         ` Greg KH
2020-12-18 13:17           ` Mark Brown
2020-12-18 13:46             ` Lee Jones
2020-12-18 14:08             ` Jason Gunthorpe
2020-12-18 15:52               ` Mark Brown
2020-12-18 16:28                 ` Jason Gunthorpe
2020-12-18 17:15                   ` Alexandre Belloni
2020-12-18 18:03                   ` Mark Brown
2020-12-18 18:41                     ` Jason Gunthorpe
2020-12-18 19:09                       ` Lee Jones
2020-12-18 20:14                         ` Jason Gunthorpe
2020-12-18 20:32                       ` Mark Brown
2020-12-18 20:58                         ` Jason Gunthorpe
2020-12-18 21:16                           ` Alexandre Belloni
2020-12-18 22:36                             ` Dan Williams
2020-12-18 23:36                             ` Jason Gunthorpe
2020-12-19  0:22                               ` Alexandre Belloni
2020-12-21 18:51                           ` Mark Brown
2021-01-04 18:08                             ` Jason Gunthorpe
2021-01-04 21:19                               ` Mark Brown
2021-01-05  0:13                                 ` Jason Gunthorpe
2021-01-05  0:51                                   ` Dan Williams
2021-01-05  1:53                                     ` Jason Gunthorpe
2021-01-05  3:12                                       ` Dan Williams
2021-01-05 12:49                                         ` Jason Gunthorpe
2021-01-05 13:42                                   ` Mark Brown [this message]
2021-01-05 14:36                                     ` Jason Gunthorpe
2021-01-05 15:47                                       ` Mark Brown
2020-12-04 12:35 ` Greg KH
2020-12-04 12:54   ` Leon Romanovsky
2020-12-04 16:25     ` Jakub Kicinski
2020-12-04 17:57       ` Saeed Mahameed
2020-12-04 18:05   ` Ranjani Sridharan
2020-12-06  0:24 ` David Ahern
2020-12-06  0:32   ` Dan Williams

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=20210105134256.GA4487@sirena.org.uk \
    --to=broonie@kernel.org \
    --cc=alexandre.belloni@bootlin.com \
    --cc=alsa-devel@alsa-project.org \
    --cc=dan.j.williams@intel.com \
    --cc=davem@davemloft.net \
    --cc=david.m.ertman@intel.com \
    --cc=fred.oh@linux.intel.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=jgg@nvidia.com \
    --cc=kiran.patil@intel.com \
    --cc=kuba@kernel.org \
    --cc=lee.jones@linaro.org \
    --cc=leonro@nvidia.com \
    --cc=lgirdwood@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-rdma@vger.kernel.org \
    --cc=mhabets@solarflare.com \
    --cc=netdev@vger.kernel.org \
    --cc=parav@mellanox.com \
    --cc=pierre-louis.bossart@linux.intel.com \
    --cc=ranjani.sridharan@linux.intel.com \
    --cc=shiraz.saleem@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).