On 07/04/2014 01:24 PM, Sylwester Nawrocki wrote:
On 04/07/14 13:10, Lars-Peter Clausen wrote:
On 07/04/2014 01:04 PM, Sylwester Nawrocki wrote:
On 22/05/14 20:53, Mark Brown wrote:
- ret = snd_soc_dai_set_fmt(codec_dai, SND_SOC_DAIFMT_I2S
| SND_SOC_DAIFMT_NB_NF
| SND_SOC_DAIFMT_CBM_CFM);
- if (ret < 0)
return ret;
- ret = snd_soc_dai_set_fmt(cpu_dai, SND_SOC_DAIFMT_I2S
| SND_SOC_DAIFMT_NB_NF
| SND_SOC_DAIFMT_CBM_CFM);
- if (ret < 0)
return ret;
These are constant, set these in the dai_link.
set_fmt also sets master/slave mode of the I2S DAI, after I moved this into the cpu_dai link data structure after suspend/resume cycle the I2S IP block is not being properly re-configured. Should the format setting be added in resume_post callback, or is there any other preferred way ? Similarly the syclk settings are being lost over suspend/resume cycle and nothing restores them.
The I2S driver should save and restore it's register during suspend/resume.
OK, thanks. I checked the I2S driver does it, but only when dai->active flags is set [1]. However, during system resume this flag is not set (in situation where playback or capture wasn't active right before system suspend). Is the dai->active test wrong in that driver then ? I'm not sure if it could just be removed.
Yes, just remove the check.
- Lars