[alsa-devel] ASoC DSP and related status

Stephen Warren swarren at nvidia.com
Thu Sep 1 01:14:43 CEST 2011

Mark Brown wrote at Saturday, August 27, 2011 3:37 AM:
> On Fri, Aug 26, 2011 at 12:44:26PM -0700, Stephen Warren wrote:
> ... (questions about soc-dsp and representing Tegra HW to ASoC)

Thanks Mark and Liam for your answers.

> > (T30) AHUB:
> > Part of Tegra30. Tegra30 has an interconnect called the Audio HUB (AHUB).
> > Various devices attach to this: FIFOs to send/receive audio to CPU memory
> > using DMA, DAMs that receive n(2?) channels from the AHUB and mix/SRC them
> > sending the result back to the AHUB, and finally various IO controllers
> > such as I2S and SPDIF. The AHUB is I believe a full cross-bar. In this
> > case, the I2S formatting is configured solely within the I2S controllers,
> > not on the other side of the AHUB as is the case with the Tegra20 DAS.
> > FIFOs also independently determine the number of channels/bit they send/
> > receive. There is some limited support for channel count and bitsize
> > conversion at each attachment point to the AHUB. I2S<->I2S loopback may
> > be supported in HW, at least in some cases.
> To me this sounds like it could usefully be a CODEC - the CPU is pretty
> well isolated from the actual physical ports (and needn't be involved at
> all) and functionally it's not much different to the sort of setup we've
> got in some of the existing CODEC drivers just without the integration
> of the mixed signal bits.  That'd mean that you could reuse all the
> infrastructure those devices use which ought to make the T30 specific
> bit simpler.

That makes sense.

One question: This would end up with something like:

+------------+  (dai 1)  +--------------+  (dai 2)  +----------------+
| Tegra I2S  |<--------->| AHUB (codec) |<--------->| WM8903 (codec) |
+------------+           +--------------+           +----------------+

I think I may have asked this before, but how would we represent that to
ASoC; I don't think there's any way to squash both those two DAIs into a
single snd_soc_dai_link structure, whereas I think I recall you saying
that using two separate snd_soc_dai_links wouldn't really work; I'm not
sure what we'd put in dai2's "platform" field, and IIRC the second DAI
would end up instantiating extra PCM devices to user-space. Am I way off
base here, or would be need to do some extra infra-structure work to get
this all working?

Thanks again.


More information about the Alsa-devel mailing list