[PATCH 0/6] Ancillary bus implementation and SOF multi-client support
Ertman, David M
david.m.ertman at intel.com
Thu Oct 1 20:29:58 CEST 2020
> -----Original Message-----
> From: Greg KH <gregkh at linuxfoundation.org>
> Sent: Thursday, October 1, 2020 11:16 AM
> To: Mark Brown <broonie at kernel.org>
> Cc: Ertman, David M <david.m.ertman at intel.com>; alsa-devel at alsa-
> project.org; tiwai at suse.de; pierre-louis.bossart at linux.intel.com; Sridharan,
> Ranjani <ranjani.sridharan at intel.com>; jgg at nvidia.com; parav at nvidia.com
> Subject: Re: [PATCH 0/6] Ancillary bus implementation and SOF multi-client
> support
>
> On Thu, Oct 01, 2020 at 05:03:16PM +0100, Mark Brown wrote:
> > On Thu, Oct 01, 2020 at 05:32:07PM +0200, Greg KH wrote:
> > > On Thu, Oct 01, 2020 at 03:40:19PM +0100, Mark Brown wrote:
> >
> > > > Right, so my concern is that as soon as we decide we want to pass some
> > > > resources or platform data through to one of the subdevices it needs to
> > > > move over into being a platform device and vice versa. That feels like
> > > > something that's going to add to the mess for some of the uses.
> >
> > > There shouldn't be a need for resources or platform data to be passed
> > > that way as they are all "owned" by the parent device that creates
> > > these.
> >
> > > I don't want to see platform devices become children of real devices
> > > (like PCI and USB and others), which is the goal here. platform devices
> > > are overloaded and abused enough as it is, let's not make it worse.
> >
> > How does this interact with the situation where someone makes a PCI
> > device that's basically a bunch of IPs glued together in a PCI memory
> > region (or similarly for other buses)? The IPs all have distinct
> > memory regions and other resources like interrupt lines which makes them
> > unsuitable for auxilliary devices as proposed, especially in cases where
> > there's more than one copy of the IP instantiated. There's a bunch of
> > PCI MFDs in tree already of admittedly varying degrees of taste, and
> > MFDs on other buses also use the resource passing stuff.
>
> I would like to move those PCI MFDs away from that, and into this bus
> instead.
>
> If there needs to have a way to pass/share resources, great, let's add
> it, there's no objection from me.
>
> thanks,
>
> greg k-h
The sharing of information is done by having the parent driver declare
the ancillary_device as an element in a parent_struct that also contains a
pointer to the shared information. This way, when the ancillary_driver
is probed, and a pointer to ancillary_device is passed, it can perform a
container_of on the ancillary_device and gain access to the shared data.
This keeps all requirements out of the ancillary bus code and it can be
as flexible as the implementer wants it to be.
-DaveE
More information about the Alsa-devel
mailing list