[alsa-devel] [PATCH 2/2] ASoC: samsung: Add machine driver for odroidx2

Lars-Peter Clausen
2014-07-04T11:28:22Z

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