ALSA SoCドライバメモ No.003 callbackシーケンス
ALSA SoCドライバ開発でいちいちgrepするのが面倒な情報をメモしておく
Callbackシーケンスのメモ 制御でよく使いそうなhw_paramsとshutdownのみ
- ポイントは開始時はdai_link->codecs->cpudai。終了時はcpudai->codecs->dai_linkとなること
- codecsが複数ある場合は、hw_params/shutdown両方とも昇順のみ。shutdown時に降順にはしてくれないので注意が必要!
- cpu daiが最後になるので、外部クロック制御はdai_link/codecどちらでやっても大丈夫そう。
- dai_link/codecでfsやclkを決定し、cpu daiに設定
- cpu daiは設定されたfs/clkを元にPLLやDIVを決定し設定
- と、いうことができる。
hw_params call sequence in soc_pcm_hw_params
- dai_link rtd->dai_link->ops->hw_params
- codec for (i = 0; i < rtd->num_codecs; i++) { soc_dai_hw_params }
- cpu dai ret = soc_dai_hw_params(substream, params, cpu_dai);
- platform platform->driver->ops->hw_params