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. [1] http://lxr.free-electrons.com/source/sound/soc/samsung/i2s.c#L913 -- Regards, Sylwester -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html