[alsa-devel] [PATCH] ASoC: bcm2835: Add 8 channel (multitrack) capability

Matt Flax flatmax at flatmax.org
Wed Feb 8 13:14:21 PST 2017


On 09/02/17 07:41, Matt Flax wrote:
>
> On 09/02/17 05:28, Mark Brown wrote:
>> On Tue, Feb 07, 2017 at 10:09:36AM +1100, Matt Flax wrote:
>>
>>>       case SND_SOC_DAIFMT_CBS_CFM:
>>>           clk_set_rate(dev->clk, sampling_rate * bclk_ratio);
>>> +    case SND_SOC_DAIFMT_CBM_CFS:
>> Is this fall through deliberate?
>>
>>> +    /* Default data delay to 1 bit.
>>> +       In I2S mode, we must have 2 channels */
>>>       switch (dev->fmt & SND_SOC_DAIFMT_FORMAT_MASK) {
>>>       case SND_SOC_DAIFMT_I2S:
>>> +        if (params_channels(params) != 2)
>>> +            return -EINVAL;
>>> +    case SND_SOC_DAIFMT_DSP_A:
>>> +    case SND_SOC_DAIFMT_DSP_B:
>>>           data_delay = 1;
>>>           break;
>>>       default:
>> Same here.  This is also buggy in that it treats DSP A and DSP B
>> identically, they are different so the configuration must be incorrect
>> for one of them.  I suspect this is configuring for DSP A.
> I can remove DSP_B. In actual fact this isn't the real problem.
>> You should also really have a setup() function that imposes a channel
>> constraint when in I2S mode, wm8988 is one example here.
>>
> I had a look at wm8988.c and couldn't see this channel constraint 
> linking to I2S. Can you point me to it ?
Hang on, I have got it. It is the patch I sent in previously for the 
wm8580.c codec !

Matt



More information about the linux-arm-kernel mailing list