From: Leon Romanovsky <leon@kernel.org>
To: Dave Ertman <david.m.ertman@intel.com>, gregkh@linuxfoundation.org
Cc: linux-rdma@vger.kernel.org, linux-netdev <netdev@vger.kernel.org>,
alsa-devel@alsa-project.org
Subject: Re: [PATCH 0/6] Ancillary bus implementation and SOF multi-client support
Date: Sat, 3 Oct 2020 12:04:52 +0300 [thread overview]
Message-ID: <20201003090452.GF3094@unreal> (raw)
In-Reply-To: <20201001050534.890666-1-david.m.ertman@intel.com>
Hi Dave,
I don't know why did you send this series separately to every mailing
list, but it is not correct thing to do.
RDMA ML and discussion:
https://lore.kernel.org/linux-rdma/20201001050534.890666-1-david.m.ertman@intel.com/T/#t
Netdev ML (completely separated):
https://lore.kernel.org/netdev/20201001050851.890722-1-david.m.ertman@intel.com/
Alsa ML (separated too):
https://lore.kernel.org/alsa-devel/20200930225051.889607-1-david.m.ertman@intel.com/
Thanks
On Wed, Sep 30, 2020 at 10:05:28PM -0700, 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.
>
> ==========================
>
> Introduces the ancillary bus implementation along with the example usage
> in the Sound Open Firmware(SOF) audio driver.
>
> In some subsystems, the functionality of the core device
> (PCI/ACPI/other) may be too complex for a single device to be managed as
> a monolithic block or a part of the functionality might need to be
> exposed to a different subsystem. Splitting the functionality into
> smaller orthogonal devices makes it easier to manage data, power
> management and domain-specific communication with the hardware. Also,
> common ancillary_device functionality across primary devices can be
> handled by a common ancillary_device. A key requirement for such a split
> is that there is no dependency on a physical bus, device, register
> accesses or regmap support. These individual devices split from the core
> cannot live on the platform bus as they are not physical devices that
> are controlled by DT/ACPI. The same argument applies for not using MFD
> in this scenario as it relies on individual function devices being
> physical devices that are DT enumerated.
>
> An example for this kind of requirement is the audio subsystem where a
> single IP handles multiple entities such as HDMI, Soundwire, local
> devices such as mics/speakers etc. The split for the core's
> functionality can be arbitrary or be defined by the DSP firmware
> topology and include hooks for test/debug. This allows for the audio
> core device to be minimal and tightly coupled with handling the
> hardware-specific logic and communication.
>
> The ancillary bus is intended to be minimal, generic and avoid
> domain-specific assumptions. Each ancillary bus device represents a part
> of its parent functionality. The generic behavior can be extended and
> specialized as needed by encapsulating an ancillary bus device within
> other domain-specific structures and the use of .ops callbacks.
>
> The SOF driver adopts the ancillary bus for implementing the
> multi-client support. A client in the context of the SOF driver
> represents a part of the core device's functionality. It is not a
> physical device but rather an ancillary device that needs to communicate
> with the DSP via IPCs. With multi-client support,the sound card can be
> separated into multiple orthogonal ancillary devices for local devices
> (mic/speakers etc), HDMI, sensing, probes, debug etc. In this series,
> we demonstrate the usage of the ancillary bus with the help of the IPC
> test client which is used for testing the serialization of IPCs when
> multiple clients talk to the DSP at the same time.
>
> Dave Ertman (1):
> Add ancillary bus support
>
> Fred Oh (1):
> ASoC: SOF: debug: Remove IPC flood test support in SOF core
>
> Ranjani Sridharan (4):
> ASoC: SOF: Introduce descriptors for SOF client
> ASoC: SOF: Create client driver for IPC test
> ASoC: SOF: ops: Add ops for client registration
> ASoC: SOF: Intel: Define ops for client registration
>
> Documentation/driver-api/ancillary_bus.rst | 230 +++++++++++++++
> Documentation/driver-api/index.rst | 1 +
> drivers/bus/Kconfig | 3 +
> drivers/bus/Makefile | 3 +
> drivers/bus/ancillary.c | 191 +++++++++++++
> include/linux/ancillary_bus.h | 58 ++++
> include/linux/mod_devicetable.h | 8 +
> scripts/mod/devicetable-offsets.c | 3 +
> scripts/mod/file2alias.c | 8 +
> sound/soc/sof/Kconfig | 29 +-
> sound/soc/sof/Makefile | 7 +
> sound/soc/sof/core.c | 12 +
> sound/soc/sof/debug.c | 230 ---------------
> sound/soc/sof/intel/Kconfig | 9 +
> sound/soc/sof/intel/Makefile | 3 +
> sound/soc/sof/intel/apl.c | 18 ++
> sound/soc/sof/intel/bdw.c | 18 ++
> sound/soc/sof/intel/byt.c | 22 ++
> sound/soc/sof/intel/cnl.c | 18 ++
> sound/soc/sof/intel/intel-client.c | 49 ++++
> sound/soc/sof/intel/intel-client.h | 26 ++
> sound/soc/sof/ops.h | 14 +
> sound/soc/sof/sof-client.c | 117 ++++++++
> sound/soc/sof/sof-client.h | 65 +++++
> sound/soc/sof/sof-ipc-test-client.c | 314 +++++++++++++++++++++
> sound/soc/sof/sof-priv.h | 16 +-
> 26 files changed, 1233 insertions(+), 239 deletions(-)
> create mode 100644 Documentation/driver-api/ancillary_bus.rst
> create mode 100644 drivers/bus/ancillary.c
> create mode 100644 include/linux/ancillary_bus.h
> create mode 100644 sound/soc/sof/intel/intel-client.c
> create mode 100644 sound/soc/sof/intel/intel-client.h
> create mode 100644 sound/soc/sof/sof-client.c
> create mode 100644 sound/soc/sof/sof-client.h
> create mode 100644 sound/soc/sof/sof-ipc-test-client.c
>
> --
> 2.26.2
>
next parent reply other threads:[~2020-10-03 9:11 UTC|newest]
Thread overview: 61+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <20201001050534.890666-1-david.m.ertman@intel.com>
2020-10-03 9:04 ` Leon Romanovsky [this message]
2020-10-03 9:10 ` [PATCH 0/6] Ancillary bus implementation and SOF multi-client support Greg KH
2020-10-03 9:24 ` Leon Romanovsky
2020-10-03 9:32 ` Greg KH
2020-10-05 1:20 ` Ertman, David M
2020-09-30 22:50 Dave Ertman
2020-10-01 5:58 ` Greg KH
2020-10-01 15:54 ` Ertman, David M
2020-10-01 7:14 ` Greg KH
2020-10-01 15:55 ` Ertman, David M
2020-10-01 16:10 ` Greg KH
2020-10-01 17:13 ` Ertman, David M
2020-10-02 20:23 ` Ertman, David M
2020-10-03 9:08 ` Greg KH
2020-10-03 9:09 ` Greg KH
2020-10-04 2:26 ` Parav Pandit
2020-10-04 23:45 ` Williams, Dan J
2020-10-05 1:18 ` Ertman, David M
2020-10-05 2:39 ` Parav Pandit
2020-10-05 11:25 ` gregkh
2020-10-06 22:40 ` Dan Williams
2020-10-07 9:14 ` gregkh
2020-10-07 16:19 ` Dan Williams
2020-10-07 16:22 ` Mark Brown
2020-10-07 16:41 ` Dan Williams
2020-10-07 16:42 ` Pierre-Louis Bossart
2020-10-07 16:56 ` Parav Pandit
2020-10-01 10:05 ` Rojewski, Cezary
2020-10-01 10:59 ` gregkh
2020-10-01 12:49 ` Jason Gunthorpe
2020-10-01 12:55 ` gregkh
2020-10-01 13:26 ` Jason Gunthorpe
2020-10-01 14:17 ` gregkh
2020-10-01 15:08 ` Parav Pandit
2020-10-01 12:50 ` Mark Brown
2020-10-01 13:12 ` Greg KH
2020-10-01 13:42 ` Jason Gunthorpe
2020-10-01 14:40 ` Mark Brown
2020-10-01 15:32 ` Greg KH
2020-10-01 16:03 ` Mark Brown
2020-10-01 18:16 ` Greg KH
2020-10-01 18:29 ` Ertman, David M
2020-10-01 19:38 ` Mark Brown
2020-10-01 19:54 ` Ertman, David M
2020-10-01 20:17 ` Mark Brown
2020-10-02 0:47 ` Jason Gunthorpe
2020-10-02 11:19 ` Mark Brown
2020-10-02 17:23 ` Ertman, David M
2020-10-02 17:25 ` Jason Gunthorpe
2020-10-02 17:44 ` Mark Brown
2020-10-01 14:07 ` Pierre-Louis Bossart
2020-10-01 15:24 ` Mark Brown
2020-10-01 16:20 ` Pierre-Louis Bossart
2020-10-01 16:51 ` Mark Brown
2020-10-01 18:04 ` Jason Gunthorpe
2020-10-01 18:13 ` Greg KH
2020-10-01 19:23 ` Mark Brown
2020-10-01 16:50 ` Ertman, David M
2020-10-01 17:10 ` Mark Brown
2020-10-01 17:16 ` Ertman, David M
2020-10-01 17:52 ` Ertman, David M
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=20201003090452.GF3094@unreal \
--to=leon@kernel.org \
--cc=alsa-devel@alsa-project.org \
--cc=david.m.ertman@intel.com \
--cc=gregkh@linuxfoundation.org \
--cc=linux-rdma@vger.kernel.org \
--cc=netdev@vger.kernel.org \
/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).