[alsa-devel] [PATCH] SoC: simple-card-utils: set 0Hz to sysclk when shutdown

Kuninori Morimoto kuninori.morimoto.gx at renesas.com
Mon Sep 9 02:31:28 CEST 2019


Hi Katsuhiro

> This patch set 0Hz to sysclk when shutdown the card.
> 
> Some codecs set rate constraints that derives from sysclk. This
> mechanism works correctly if machine drivers give fixed frequency.
> 
> But simple-audio and audio-graph card set variable clock rate if
> 'mclk-fs' property exists. In this case, rate constraints will go
> bad scenario. For example a codec accepts three limited rates
> (mclk / 256, mclk / 384, mclk / 512).
> 
> Bad scenario as follows (mclk-fs = 256):
>    - Initialize sysclk by correct value (Ex. 12.288MHz)
>      - Codec set constraints of PCM rate by sysclk
>        48kHz (1/256), 32kHz (1/384), 24kHz (1/512)
>    - Play 48kHz sound, it's acceptable
>    - Sysclk is not changed
> 
>    - Play 32kHz sound, it's acceptable
>    - Set sysclk to 8.192MHz (= fs * mclk-fs = 32k * 256)
>      - Codec set constraints of PCM rate by sysclk
>        32kHz (1/256), 21.33kHz (1/384), 16kHz (1/512)
> 
>    - Play 48kHz again, but it's NOT acceptable because constraints
>      do not allow 48kHz
> 
> So codecs treat 0Hz sysclk as signal of applying no constraints to
> avoid this problem.
> 
> Signed-off-by: Katsuhiro Suzuki <katsuhiro at katsuster.net>
> ---

I'm not 100% understand your issue.
.hw_params (= set mclk/sysclk) is not called in bad case ??
Or it is called but Codec driver ignores it somehow ??

Thank you for your help !!
Best regards
---
Kuninori Morimoto


More information about the Alsa-devel mailing list