All of lore.kernel.org
 help / color / mirror / Atom feed
From: Mark Brown <broonie@kernel.org>
To: "Martin Povišer" <povik@cutebit.org>
Cc: devicetree@vger.kernel.org, alsa-devel@alsa-project.org,
	"Sven Peter" <sven@svenpeter.dev>,
	linux-kernel@vger.kernel.org, "Hector Martin" <marcan@marcan.st>,
	"Takashi Iwai" <tiwai@suse.com>,
	"Liam Girdwood" <lgirdwood@gmail.com>,
	"Rob Herring" <robh+dt@kernel.org>,
	"Mark Kettenis" <kettenis@openbsd.org>,
	"Martin Povišer" <povik+lin@cutebit.org>,
	"Krzysztof Kozlowski" <krzk+dt@kernel.org>
Subject: Re: [RFC PATCH 3/5] HACK: ASoC: Tolerate N-cpus-to-M-codecs links
Date: Mon, 25 Apr 2022 13:25:01 +0100	[thread overview]
Message-ID: <YmaTHTKWAfM7FCcY@sirena.org.uk> (raw)
In-Reply-To: <904EB8A1-5561-4555-8030-B85703E24F2E@cutebit.org>

[-- Attachment #1: Type: text/plain, Size: 1817 bytes --]

On Fri, Apr 22, 2022 at 04:06:06PM +0200, Martin Povišer wrote:
> > On 4. 4. 2022, at 14:28, Mark Brown <broonie@kernel.org> wrote:

> > We need to figure out an interface for describing which CODEC/CPU
> > combinations are connected to each other.  I'm not seeing a great way to
> > do that right now, probably some side data table is going to be needed,
> > or perhaps the CPU DAI drivers can be persuaded to only have one DAI
> > actually register and claim to support more channels?  I'm not sure how
> > a configuraiton like this is going to work at userspace level if the
> > multiple CPU DAIs end up being visible...

> To understand the issue better: How could the multiple CPU DAIs be
> visible from userspace?

If you register two separate DAIs (well, links) with the API without
doing anything else the API will just expose them to userspace as two
separate things with no indication that they're related.

> What about this interim solution: In case of N-to-M links we put in
> the most restrictive condition for checking capture/playback stream
> validity: we check all of the CPU DAIs. Whatever ends up being the
> proper solution later can only be less restrictive than this.

That's not the issue here?  

> As a reminder what happens on the Macs: the platform driver drives
> all the CPU-side I2S ports that belong to the link with the same data,
> so the particular CPU/CODEC wiring doesn’t matter.

Oh, that's not something I was aware of.  In that case this is the wrong
API - you should be using DPCM to map one front end onto multiple back
ends (Kirkwood does something similar IIRC, there will be other examples
but that's probably the simplest).  The back ends probably don't really
need to know that they're on the same physical bus (if indeed they are).

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

WARNING: multiple messages have this Message-ID (diff)
From: Mark Brown <broonie@kernel.org>
To: "Martin Povišer" <povik@cutebit.org>
Cc: "Martin Povišer" <povik+lin@cutebit.org>,
	"Liam Girdwood" <lgirdwood@gmail.com>,
	"Rob Herring" <robh+dt@kernel.org>,
	"Krzysztof Kozlowski" <krzk+dt@kernel.org>,
	"Jaroslav Kysela" <perex@perex.cz>,
	"Takashi Iwai" <tiwai@suse.com>,
	alsa-devel@alsa-project.org, devicetree@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	"Mark Kettenis" <kettenis@openbsd.org>,
	"Hector Martin" <marcan@marcan.st>,
	"Sven Peter" <sven@svenpeter.dev>
Subject: Re: [RFC PATCH 3/5] HACK: ASoC: Tolerate N-cpus-to-M-codecs links
Date: Mon, 25 Apr 2022 13:25:01 +0100	[thread overview]
Message-ID: <YmaTHTKWAfM7FCcY@sirena.org.uk> (raw)
In-Reply-To: <904EB8A1-5561-4555-8030-B85703E24F2E@cutebit.org>

[-- Attachment #1: Type: text/plain, Size: 1817 bytes --]

On Fri, Apr 22, 2022 at 04:06:06PM +0200, Martin Povišer wrote:
> > On 4. 4. 2022, at 14:28, Mark Brown <broonie@kernel.org> wrote:

> > We need to figure out an interface for describing which CODEC/CPU
> > combinations are connected to each other.  I'm not seeing a great way to
> > do that right now, probably some side data table is going to be needed,
> > or perhaps the CPU DAI drivers can be persuaded to only have one DAI
> > actually register and claim to support more channels?  I'm not sure how
> > a configuraiton like this is going to work at userspace level if the
> > multiple CPU DAIs end up being visible...

> To understand the issue better: How could the multiple CPU DAIs be
> visible from userspace?

If you register two separate DAIs (well, links) with the API without
doing anything else the API will just expose them to userspace as two
separate things with no indication that they're related.

> What about this interim solution: In case of N-to-M links we put in
> the most restrictive condition for checking capture/playback stream
> validity: we check all of the CPU DAIs. Whatever ends up being the
> proper solution later can only be less restrictive than this.

That's not the issue here?  

> As a reminder what happens on the Macs: the platform driver drives
> all the CPU-side I2S ports that belong to the link with the same data,
> so the particular CPU/CODEC wiring doesn’t matter.

Oh, that's not something I was aware of.  In that case this is the wrong
API - you should be using DPCM to map one front end onto multiple back
ends (Kirkwood does something similar IIRC, there will be other examples
but that's probably the simplest).  The back ends probably don't really
need to know that they're on the same physical bus (if indeed they are).

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

  reply	other threads:[~2022-04-25 12:26 UTC|newest]

Thread overview: 77+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-03-31  0:04 [RFC PATCH 0/5] Apple Macs machine-level ASoC driver Martin Povišer
2022-03-31  0:04 ` Martin Povišer
2022-03-31  0:04 ` [RFC PATCH 1/5] dt-bindings: sound: Add Apple Macs sound system Martin Povišer
2022-03-31  0:04   ` Martin Povišer
2022-03-31  6:43   ` Krzysztof Kozlowski
2022-03-31  6:57     ` Martin Povišer
2022-03-31  8:17       ` Krzysztof Kozlowski
2022-03-31  8:23         ` Martin Povišer
2022-03-31  8:26           ` Krzysztof Kozlowski
2022-03-31  0:04 ` [RFC PATCH 2/5] HACK: ASoC: Add card->filter_controls hook Martin Povišer
2022-03-31  0:04   ` Martin Povišer
2022-03-31 11:34   ` Mark Brown
2022-03-31 11:34     ` Mark Brown
2022-03-31  0:04 ` [RFC PATCH 3/5] HACK: ASoC: Tolerate N-cpus-to-M-codecs links Martin Povišer
2022-03-31  0:04   ` Martin Povišer
2022-04-04 12:28   ` Mark Brown
2022-04-04 12:28     ` Mark Brown
2022-04-22 14:06     ` Martin Povišer
2022-04-22 14:06       ` Martin Povišer
2022-04-25 12:25       ` Mark Brown [this message]
2022-04-25 12:25         ` Mark Brown
2022-04-25 12:34         ` Martin Povišer
2022-04-25 12:34           ` Martin Povišer
2022-04-25 12:55           ` Mark Brown
2022-04-25 12:55             ` Mark Brown
2022-04-25 13:11             ` Martin Povišer
2022-04-25 13:11               ` Martin Povišer
2022-04-25 13:46               ` Mark Brown
2022-04-25 13:46                 ` Mark Brown
2022-04-25 13:55                 ` Martin Povišer
2022-04-25 13:55                   ` Martin Povišer
2022-03-31  0:04 ` [RFC PATCH 4/5] ASoC: Introduce snd_soc_of_get_dai_link_cpus Martin Povišer
2022-03-31  0:04   ` Martin Povišer
2022-03-31  0:04 ` [RFC PATCH 5/5] ASoC: Add macaudio machine driver Martin Povišer
2022-03-31  0:04   ` Martin Povišer
2022-03-31 11:59   ` Mark Brown
2022-03-31 11:59     ` Mark Brown
2022-03-31 12:08     ` Martin Povišer
2022-03-31 12:16       ` Martin Povišer
2022-03-31 12:56       ` Mark Brown
2022-03-31 12:56         ` Mark Brown
2022-03-31 12:34 ` [RFC PATCH 0/5] Apple Macs machine-level ASoC driver Mark Brown
2022-03-31 12:34   ` Mark Brown
2022-03-31 13:28   ` Martin Povišer
2022-03-31 14:18     ` Mark Brown
2022-03-31 14:18       ` Mark Brown
2022-03-31 15:04       ` Martin Povišer
2022-03-31 15:36         ` Mark Brown
2022-03-31 15:36           ` Mark Brown
2022-04-22 10:43           ` Martin Povišer
2022-04-22 10:43             ` Martin Povišer
2022-04-22 11:19             ` Mark Brown
2022-04-22 11:19               ` Mark Brown
2022-04-22 11:28               ` Martin Povišer
2022-04-22 11:28                 ` Martin Povišer
2022-04-22 11:33                 ` Mark Brown
2022-04-22 11:33                   ` Mark Brown
2022-04-22 11:44                   ` Martin Povišer
2022-04-22 11:44                     ` Martin Povišer
2022-04-22 12:22                     ` Mark Brown
2022-04-22 12:22                       ` Mark Brown
2022-04-22 12:36                       ` Martin Povišer
2022-04-22 12:36                         ` Martin Povišer
2022-04-22 12:44                         ` Mark Brown
2022-04-22 12:44                           ` Mark Brown
2022-04-22 12:53                           ` Martin Povišer
2022-04-22 12:53                             ` Martin Povišer
2022-04-22 13:06                             ` Mark Brown
2022-04-22 13:06                               ` Mark Brown
2022-04-22 13:59                               ` Martin Povišer
2022-04-22 13:59                                 ` Martin Povišer
2022-03-31 13:28   ` Hector Martin
2022-03-31 13:28     ` Hector Martin
2022-03-31 14:33     ` Mark Brown
2022-03-31 14:33       ` Mark Brown
2022-04-05  9:31 ` (subset) " Mark Brown
2022-04-05  9:31   ` Mark Brown

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=YmaTHTKWAfM7FCcY@sirena.org.uk \
    --to=broonie@kernel.org \
    --cc=alsa-devel@alsa-project.org \
    --cc=devicetree@vger.kernel.org \
    --cc=kettenis@openbsd.org \
    --cc=krzk+dt@kernel.org \
    --cc=lgirdwood@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=marcan@marcan.st \
    --cc=povik+lin@cutebit.org \
    --cc=povik@cutebit.org \
    --cc=robh+dt@kernel.org \
    --cc=sven@svenpeter.dev \
    --cc=tiwai@suse.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.