[PATCH 0/6] Ancillary bus implementation and SOF multi-client support

gregkh at linuxfoundation.org gregkh at linuxfoundation.org
Thu Oct 1 12:59:25 CEST 2020


On Thu, Oct 01, 2020 at 10:05:13AM +0000, Rojewski, Cezary wrote:
> On 2020-10-01 12:50 AM, Dave Ertman wrote:
> > Brief history of Ancillary Bus
> > ==============================
> > The ancillary bus code was originally submitted upstream as virtual
> > bus, and was submitted through the netdev tree.  This process generated
> > up to v4.  This discussion can be found here:
> >   https://lore.kernel.org/netdev/0200520070227.3392100-2-jeffrey.t.kirsher@intel.com/T/#u
> > 
> > At this point, GregKH requested that we take the review and revision
> > process to an internal mailing list and garner the buy-in of a respected
> > kernel contributor.
> > 
> > The ancillary bus (then known as virtual bus) was originally submitted
> > along with implementation code for the ice driver and irdma drive,
> > causing the complication of also having dependencies in the rdma tree.
> > This new submission is utilizing an ancillary bus consumer in only the
> > sound driver tree to create the initial implementation and a single
> > user.
> > 
> > Since implementation work has started on this patch set, there have been
> > multiple inquiries about the time frame of its completion.  It appears
> > that there will be numerous consumers of this functionality.
> > 
> > The process of internal review and implementation using the sound
> > drivers generated 19 internal versions.  The changes, including the name
> > change from virtual bus to ancillary bus, from these versions can be
> > summarized as the following:
> > 
> > - Fixed compilation and checkpatch errors
> > - Improved documentation to address the motivation for virtual bus.
> > - Renamed virtual bus to ancillary bus
> > - increased maximum device name size
> > - Correct order in Kconfig and Makefile
> > - removed the mid-layer adev->release layer for device unregister
> > - pushed adev->id management to parent driver
> > - all error paths out of ancillary_device_register return error code
> > - all error paths out of ancillary_device_register use put_device
> > - added adev->name element
> > - modname in register cannot be NULL
> > - added KBUILD_MODNAME as prefix for match_name
> > - push adev->id responsibility to registering driver
> > - uevent now parses adev->dev name
> > - match_id function now parses adev->dev name
> > - changed drivers probe function to also take an ancillary_device_id param
> > - split ancillary_device_register into device_initialize and device_add
> > - adjusted what is done in device_initialize and device_add
> > - change adev to ancildev and adrv to ancildrv
> > - change adev to ancildev in documentation
> > 
> > This submission is the first time that this patch set will be sent to
> > the alsa-devel mailing list, so it is currently being submitted as
> > version 1.
> > 
> 
> Given the description and number of possible users, one could safely
> say: usage is assured. So, why not submit this bus as a standalone
> patch? Isn't it better to first have a stable, complete version present
> in Linus' tree and only then append the usage?

Because I want to see patches that actually _use_ the new code.  So far
the previous versions of this implementation have not shown how all of
the code will be used, making it impossible to review to see if it fits
the needs of people.

We don't add infrastructure without users.  And the normal rule of thumb
of "if we have 3 users, then it is a semi-sane api" really applies here.

thanks,

greg k-h


More information about the Alsa-devel mailing list