On Tue, Sep 15, 2015 at 08:26:36AM -0700, Caleb Crome wrote:
Like Charles said earlier the Bells machine in mainline has multiple CODECs hooked up. Speyside too. To hook up multiple CODECs to a single DAI link see 88bd870f02dff5c94 (ASoC: core: Add initial support for DAI multicodec), sadly I don't think Benoit ever got round to submitting a machine.
Thanks Mark.
I've been staring at that diff for a a day or two, and I still can't quite figure out how to use it.
I think I'm getting close: all codecs are registered, the DAPM stuff seems to be connected (all with prefixed names), but the card won't open more than a 2 channel interface.
For example, when I do aplay -l, I get this: **** List of PLAYBACK Hardware Devices **** card 0: PUPPYAUDIO [PUPPY-AUDIO], device 0: AIC3X tlv320aic3x-hifi-0 [] Subdevices: 1/1 Subdevice #0: subdevice #0 card 0: PUPPYAUDIO [PUPPY-AUDIO], device 1: AIC3X tlv320aic3x-hifi-1 [] Subdevices: 1/1 Subdevice #0: subdevice #0 card 0: PUPPYAUDIO [PUPPY-AUDIO], device 2: AIC3X tlv320aic3x-hifi-2 [] Subdevices: 1/1 Subdevice #0: subdevice #0 card 0: PUPPYAUDIO [PUPPY-AUDIO], device 3: AIC3X tlv320aic3x-hifi-3 [] Subdevices: 1/1 Subdevice #0: subdevice #0
That doesn't look entirely like what I'd expect... I'd epect to see one DAI presented to userspace. Indeed looking through your diff I don't see any usage of struct snd_soc_dai_link_component as described in the changelog for the change I pointed you at. I'd expect to see one DAI link with a bunch of those hanging off it giving a single DAI to aplay.
OTOH I'm not sure it's going to work as I'm not immediately seeing how we handle the ability to have more capabilities than an individual device (based on the changelog I suspect the original use case may have been two mono I2S devices which have stereo interfaces even if they only pay attention to one channel on themm). But let's at least get everything appearing as one DAI first before we move on to worrying about that, I didn't check thoroughly yet.