On Fri, 12 Jan 2018 11:37:28 +0100, Kumar, Abhijeet wrote: > > > It's better, but doesn't guarantee that the node reached the given power > > state. codec_read assures that the verb is sent and the codec gives the > > response. But it means only the target state gets updated, and doesn't > > mean that the actual state reached. > > Thanks Takashi for replying. I guess, I should make use of return value from > codec_read and retry if power state is not set properly! I'll make those > changes and update again. And just wondering, how does hdmi_codec_prepare() > and hdmi_codec_complete() gurantee while powering up and down the afg ?
There are two power states in the codec node: the target and the actual. By setting the power state, the target is set, but the actual state change may still take some time. In such a case, you'd need to wait until the actual state reaches. See hda_sync_power_state() in the hda legacy. Takashi