[alsa-devel] [PATCH v3 19/22] ASoC: Intel: bytcr_rt5651: Add support for Bay Trail CR / SSP0 using boards

Pierre-Louis Bossart pierre-louis.bossart at linux.intel.com
Tue Mar 13 00:26:32 CET 2018


On 3/11/18 1:19 PM, Hans de Goede wrote:
> Hi,
> 
> On 10-03-18 00:30, Pierre-Louis Bossart wrote:
>>
>> Sorry about the delay, I've only found the time to look at this 
>> machine driver changes this afternoon while I was doing the SOF 
>> integration
>>
>>> @@ -291,9 +332,16 @@ static int byt_rt5651_aif1_hw_params(struct 
>>> snd_pcm_substream *substream,
>>>   {
>>>       struct snd_soc_pcm_runtime *rtd = substream->private_data;
>>>       struct snd_soc_dai *codec_dai = rtd->codec_dai;
>>> +    snd_pcm_format_t format = params_format(params);
>>>       int rate = params_rate(params);
>>> +    int bclk_ratio;
>>> -    return byt_rt5651_prepare_and_enable_pll1(codec_dai, rate, 50);
>>> +    if (format == SNDRV_PCM_FORMAT_S16_LE)
>>> +        bclk_ratio = 32;
>>
>> I don't think we can generate a 32x ratio with a 19.2 MHz clock, even 
>> less so with a 25MHz reference.
>> And in addition in the bytcr_rt5640 case we could never get any audio 
>> on bytcr which uses the SSP0 link without the mclk enabled, so this 
>> SSP0+blck mode was never tested (maybe precisely because this ratio 
>> was wrong...)
>>
>> In other words there is a test gap here for the case using SSP0+bclk 
>> as a reference with the rt5651 as well. Does anyone have access to a 
>> BYT-CR platform w/ rt5651 to test this?
> 
> Yes I've access to a BYT-CR platform w/ rt5651, I assume that you want 
> me to test there with the
> BYT_RT5651_MCLK_EN quirk unset?

yes.

> 
> What should I try to fix things if they don't work?  Or maybe just put a 
> big fat
> warning printf in the driver if SSP0 is used without bclk and remove the 
> handling
> for the bclk + SSP0 case as its broken anyways ?

Dunno. We may be able to test with SOF as well and check what formats work.

> 
>> The other comment I have is that this run-time definition of the 
>> bclk_ratio is inconsistent with the hard-coded value I see in 
>> platform_clock_control()
>> ret = byt_rt5651_prepare_and_enable_pll1(codec_dai, 48000, 50);
> 
> Yes the assumption here is that we simply need "a" clock when the 
> "Platform Clock"
> gets enabled and that the clock then will later get set to the correct 
> speed.
> 
> AFAIK you did not want duplication of the SSP0 handling outside the fixup
> function and platform_clock_control() does not have access to the format,
> since that is likely not even setup by then.

well things are broken in the 16-bit mode then?

> 
> Regards,
> 
> Hans
> 
> _______________________________________________
> Alsa-devel mailing list
> Alsa-devel at alsa-project.org
> http://mailman.alsa-project.org/mailman/listinfo/alsa-devel



More information about the Alsa-devel mailing list