[PATCH 2/2] ASoC: fsl_sai: Export transmitter MCLK as clock

Marek Vasut marex at denx.de
Mon Dec 19 20:34:39 CET 2022


On 12/19/22 10:18, Shengjiu Wang wrote:

[...]

>> +       if (tx_keep_tere) {
>> +               regmap_read(sai->regmap, FSL_SAI_TCSR(ofs), &tcsr);
>> +               tcsr &= FSL_SAI_CSR_TERE;
>> +       }
>>
>>          if (tx)
>> -               regmap_write(sai->regmap, FSL_SAI_TCSR(ofs),
>> FSL_SAI_CSR_SR);
>> +               regmap_write(sai->regmap, FSL_SAI_TCSR(ofs),
>> FSL_SAI_CSR_SR | tcsr);
>>          if (rx)
>> -               regmap_write(sai->regmap, FSL_SAI_RCSR(ofs),
>> FSL_SAI_CSR_SR);
>> +               regmap_write(sai->regmap, FSL_SAI_RCSR(ofs),
>> FSL_SAI_CSR_SR | rcsr);
>>          usleep_range(1000, 2000);
>>
> 
> Not sure if you have test your patch.

On the hardware I have available, MX8MNano EVK is not one of them.

> there is kernel dump for "scheduling while atomic"

Is it still there if you replace the usleep_range() with udelay() ?

> [  248.778590] BUG: scheduling while atomic: swapper/0/0/0x00010003
> [  248.784618] Modules linked in:
> [  248.787677] CPU: 0 PID: 0 Comm: swapper/0 Not tainted
> 6.1.0-rc6-00014-gf2b129b4c056-dirty #136

[...]

>> @@ -1295,6 +1356,13 @@ static int fsl_sai_probe(struct platform_device
>> *pdev)
>>          int irq, ret, i;
>>          int index;
>>          u32 dmas[4];
>> +       const char *mclk_parent_names[FSL_SAI_MCLK_MAX];
>> +       const char *mclk_rxtx_names[2] = { "mclk_rx", "mclk_tx" };
>>
> 
> please consider multi sai instance case, this name will duplicate
> that cause sai probe issue.

What kind of issue ? Details please.

[...]


More information about the Alsa-devel mailing list