On Mon, Feb 27, 2017 at 09:08:14PM +1100, Matt Flax wrote: > > > On 27/02/17 19:04, Matthias Reichl wrote: > >On Mon, Feb 27, 2017 at 09:35:14AM +1100, Matt Flax wrote: > >> > >>On 27/02/17 09:16, Matthias Reichl wrote: > >>> > >>>Have a look at the end of Documentation/sound/alsa/soc/DPCM.txt > >>>where codec<->codec links are explained. > >>> > >>>You can setup the stream parameters for the "IC"<->"real codec" link > >>>with snd_soc_dai_link.params. > >>> > >>>You can do that for example in your machine driver in hwparams: > >>>when hw_params is called eg with 2 channels 192kHz just set the > >>>dai link parameters of the codec to 8 channels 48kHz. > >>> > >>>Maybe using dynamic pcm (which offers a be_hw_params_fixup hook) > >>>is the more appropriate way to do that, but I can't tell for sure > >>>as I never used it and am not familiar with it. > >>> > >>> > >>Thanks for this information, I will give this a go - seems a better way now > >>then introducing an IC master into the mix ! > >> > >>Do you agree that we still need the BCM2835 SoC CPU driver to be expanded to > >>handle DSP mode > >>and multichannel setups ? I can't see any other way to enable the > >>multichannel hardware setup without altering bcm2835_i2s.c to handle DSP > >>mode and more then 2 channels in its _hw_params. > >No, DSP mode and multichannel don't work on the BCM2835. Keep the driver > >as it is. > > > >Use the alsa plugin approach to tunnel multichannel data over a 2-channel > >PCM and you don't need to modify existing drivers. > > > > Thanks again for this suggestion. I have been playing around with user space > plugins lately, they are great. I plan to release some C++ classes to help > trivialise the creation of such plugins. > > However for a product, a piece of robustly functioning hardware, I am > inclined to take the route of introducing a DSP mode into the bcm2835_i2s.c > driver. You can add DSP mode when you found which undocumented registers inside the bcm2835 are needed to enable DSP mode, set channel 3-8 positions etc. I'm not sure they exist, so there's little point in doing that - as we both agreed, clocking the bcm2835 in DSP mode (while it's set up as a I2S slave) doesn't work. > From the previous patches, it is clear that people are willing to allow > multichannel (DSP mode) into the bcm2835 CPU driver. I don't see that. Some people might want to be able to use multichannel on RPi, but that's something very different than adding code that just lies about driver capabilites. > It improves the > usefulness of hardware which use the BCM2835 derived chipset. From my point > of view that is a major simplification in terms of releasing functioning > multichannel hardware. I would imagine from the manufacturer's point of view > that is a big bonus too ! > > Again I intend to implement your concept of the snd_soc_dai_link for my > machine driver, that is a fantasic lead you have given me ... when I have > questions @ implementation time I will copy you in seeking for more > guidance. > > thanks again, > Matt > > _______________________________________________ Alsa-devel mailing list Alsa-devel@xxxxxxxxxxxxxxxx http://mailman.alsa-project.org/mailman/listinfo/alsa-devel