linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Jason Gunthorpe <jgg@nvidia.com>
To: Mark Brown <broonie@kernel.org>
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 10:36:27 -0400	[thread overview]
Message-ID: <20210105143627.GT552508@nvidia.com> (raw)
In-Reply-To: <20210105134256.GA4487@sirena.org.uk>

On Tue, Jan 05, 2021 at 01:42:56PM +0000, Mark Brown wrote:
> 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.

No, I understand how I2C works and I think it is fine as is because
the enumeration outcome is all standard. You always end up with a
stable I2C device address (the name) and you always end up with the
I2C programming API. So it doesn't matter how I2C gets enumerated, it
is always an I2C device.

PCI does this too, pci_device gets crossed over to the DT data, but it
is still a pci_device.

I see a big difference between attaching FW data to an existing
subsystem's HW centric bus (and possibly guiding enumeration of a HW
bus from FW data) and directly creating struct devices based on FW
data unconnected to any existing subsystem.

The latter case is where the enumerating FW should stay on its own
bus_type because there is no standardized subsystem bus providing an
API or naming rules, so the FW type should provide those rules
instead.

> > 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. 

I'm being very general here, probably what we want is a little more
formal 'fw_type' concept, so a device is on a bus and also has a FW
attachment which can provide this other data.

Jason

  reply	other threads:[~2021-01-05 14:37 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
2021-01-05 14:36                                     ` Jason Gunthorpe [this message]
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=20210105143627.GT552508@nvidia.com \
    --to=jgg@nvidia.com \
    --cc=alexandre.belloni@bootlin.com \
    --cc=alsa-devel@alsa-project.org \
    --cc=broonie@kernel.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=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).