alsa-devel.alsa-project.org archive mirror
 help / color / mirror / Atom feed
From: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
To: Greg KH <gregkh@linuxfoundation.org>,
	Dave Ertman <david.m.ertman@intel.com>
Cc: alsa-devel@alsa-project.org, tiwai@suse.de,
	ranjani.sridharan@intel.com,
	Ranjani Sridharan <ranjani.sridharan@linux.intel.com>,
	Fred Oh <fred.oh@linux.intel.com>,
	broonie@kernel.org, parav@nvidia.com, jgg@nvidia.com
Subject: Re: [PATCH 3/6] ASoC: SOF: Create client driver for IPC test
Date: Thu, 1 Oct 2020 08:55:29 -0500	[thread overview]
Message-ID: <537015d3-6113-76ae-feda-fba0ad3d54e9@linux.intel.com> (raw)
In-Reply-To: <20201001130907.GD2378679@kroah.com>

Thanks for the review Greg.

On 10/1/20 8:09 AM, Greg KH wrote:
> On Wed, Sep 30, 2020 at 03:50:48PM -0700, Dave Ertman wrote:
>> From: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
>>
>> Create an SOF client driver for IPC flood test. This
>> driver is used to set up the debugfs entries and the
>> read/write ops for initiating the IPC flood test that
>> would be used to measure the min/max/avg response times
>> for sending IPCs to the DSP.
>>
>> Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
>> Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
>> Co-developed-by: Fred Oh <fred.oh@linux.intel.com>
>> Signed-off-by: Fred Oh <fred.oh@linux.intel.com>
>> Signed-off-by: Dave Ertman <david.m.ertman@intel.com>
> 
> Am I reading this series correct in that this is the only "user" of the
> new ancilicary bus/driver code?

This is the first user, and it was meant to demonstrate how the client 
is instantiated and communicates with hardware controlled by the parent. 
The next users will be 'audio probes', which provides the ability to 
extract/inject data into the DSP. We also want to split the existing 
audio cards into several pieces, e.g. the HDMI parts should really be 
presented as a separate card.

The other users will be networking/RDMA, which were actually the first 
to suggest this bus.

> If so, why is it even needed?  These are just debugfs files for testing,
> why does that need to be in a separate device?  What is being "shared"
> here that needs multiple struct devices to handle?
> 
> confused,

The parent PCI device provides access to the DSP firmware/hardware and 
is in complete control of the IPC with the DSP firmware. The parent 
plays the role of a 'server' providing shared hardware access to 
multiple clients.

Why is this needed?

With the current audio solutions, we have a monolithic solution that has 
proven difficult to maintain. We'd really like to expose unrelated DSP 
functionality with different devices.

The best example is really HDMI. HDMI/DP audio interfaces are controlled 
by the same hardware, but are logically independent. What we end-up 
doing is re-adding the same solution over and over for each machine driver:

sound/soc/intel/boards$ git grep hda_dsp_hdmi_build_controls
bxt_da7219_max98357a.c:         return hda_dsp_hdmi_build_controls(card, 
component);
bxt_rt298.c:            return hda_dsp_hdmi_build_controls(card, component);
cml_rt1011_rt5682.c:            return hda_dsp_hdmi_build_controls(card, 
component);
ehl_rt5660.c:   return hda_dsp_hdmi_build_controls(card, 
pcm->codec_dai->component);
glk_rt5682_max98357a.c:         return hda_dsp_hdmi_build_controls(card, 
component);
hda_dsp_common.c:int hda_dsp_hdmi_build_controls(struct snd_soc_card *card,
hda_dsp_common.h:int hda_dsp_hdmi_build_controls(struct snd_soc_card *card,
hda_dsp_common.h:static inline int hda_dsp_hdmi_build_controls(struct 
snd_soc_card *card,
skl_hda_dsp_common.h:   return hda_dsp_hdmi_build_controls(card, component);
sof_da7219_max98373.c:          return hda_dsp_hdmi_build_controls(card,
sof_pcm512x.c:  return hda_dsp_hdmi_build_controls(card, 
pcm->codec_dai->component);
sof_rt5682.c:           return hda_dsp_hdmi_build_controls(card, component);
sof_sdw_hdmi.c:         return hda_dsp_hdmi_build_controls(card, component);

and we also keep adding HDMI-related ASoC topology definitions for all 
the cards.

It would make a lot more sense if we could have ONE HDMI/DP card which 
is created, instead of managing HDMI/DP from the card that is supposed 
to deal with local accessories based on HDaudio/DMIC/SoundWire/I2S.

The audio probes are similar, we want to have a single probe client 
instead of adding audio probes to every single card we have to maintain.

On platforms where the DSP can deal with sensors, this would also allow 
the parent to expose IIO and HID clients.

Going back to this IPC test, maybe the commit message is unclear: we 
already have this functionality in the mainline, it's been very helpful 
for stress tests. What this patch shows is that moving the functionality 
to a client makes it possible to scale to 2 or more clients with a 
simple set of register/unregister. The device model makes it really easy 
to scale.

So yes, you are correct that for now there is a single user with very 
limited functionality. This is intentional to make the reviews simpler, 
but if/when this bus is part of the mainline we'll have additional 
users, and not just from Intel if you look at the reviewed-by tags.

We might even remove the platform devices used for the SoundWire master 
and use this instead :-)

Does this help?



  reply	other threads:[~2020-10-01 13:56 UTC|newest]

Thread overview: 99+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-09-30 22:50 [PATCH 0/6] Ancillary bus implementation and SOF multi-client support Dave Ertman
2020-09-30 22:50 ` [PATCH 1/6] Add ancillary bus support Dave Ertman
2020-09-30 23:05   ` Jason Gunthorpe
2020-10-01 11:01   ` Greg KH
2020-10-01 11:46     ` Jason Gunthorpe
2020-10-01 11:54       ` Greg KH
2020-10-01 12:02         ` Jason Gunthorpe
2020-10-01 12:15           ` Greg KH
2020-10-01 18:26             ` Ertman, David M
2020-10-01 11:02   ` Greg KH
2020-10-01 16:30     ` Ertman, David M
2020-10-01 11:05   ` Greg KH
2020-10-01 11:58     ` Jason Gunthorpe
2020-10-01 12:14       ` Greg KH
2020-10-01 14:33         ` Jason Gunthorpe
2020-10-01 14:38           ` Greg KH
2020-10-01 16:06             ` Pierre-Louis Bossart
2020-10-01 17:42             ` Jason Gunthorpe
2020-10-01 14:39           ` Parav Pandit
2020-10-01 14:43             ` Greg KH
2020-10-01 13:27   ` Mark Brown
2020-09-30 22:50 ` [PATCH 2/6] ASoC: SOF: Introduce descriptors for SOF client Dave Ertman
2020-10-01 13:02   ` Greg KH
2020-10-01 15:59     ` Sridharan, Ranjani
2020-10-01 22:16     ` Sridharan, Ranjani
2020-10-02  4:53       ` gregkh
2020-10-02 17:07         ` Sridharan, Ranjani
2020-10-03  9:02           ` gregkh
2020-10-05  2:35             ` Sridharan, Ranjani
2020-10-05 11:27               ` gregkh
2020-10-05 15:18                 ` Pierre-Louis Bossart
2020-10-05 15:32                   ` gregkh
2020-10-01 13:38   ` Mark Brown
2020-10-01 16:48     ` Sridharan, Ranjani
2020-09-30 22:50 ` [PATCH 3/6] ASoC: SOF: Create client driver for IPC test Dave Ertman
2020-10-01 13:04   ` Greg KH
2020-10-01 16:46     ` Sridharan, Ranjani
2020-10-01 13:09   ` Greg KH
2020-10-01 13:55     ` Pierre-Louis Bossart [this message]
2020-10-01 16:48       ` Ertman, David M
2020-10-01 13:59   ` Mark Brown
2020-09-30 22:50 ` [PATCH 4/6] ASoC: SOF: ops: Add ops for client registration Dave Ertman
2020-09-30 22:50 ` [PATCH 5/6] ASoC: SOF: Intel: Define " Dave Ertman
2020-09-30 22:50 ` [PATCH 6/6] ASoC: SOF: debug: Remove IPC flood test support in SOF core Dave Ertman
2020-10-01  5:58 ` [PATCH 0/6] Ancillary bus implementation and SOF multi-client support 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=537015d3-6113-76ae-feda-fba0ad3d54e9@linux.intel.com \
    --to=pierre-louis.bossart@linux.intel.com \
    --cc=alsa-devel@alsa-project.org \
    --cc=broonie@kernel.org \
    --cc=david.m.ertman@intel.com \
    --cc=fred.oh@linux.intel.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=jgg@nvidia.com \
    --cc=parav@nvidia.com \
    --cc=ranjani.sridharan@intel.com \
    --cc=ranjani.sridharan@linux.intel.com \
    --cc=tiwai@suse.de \
    /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).