13 Dec
2022
13 Dec
'22
1:01 p.m.
On Tue, Dec 13, 2022 at 10:53:28AM +0100, Rouven Czerwinski wrote:
To fix that we need to explicit set the mute state. Now the first playback request gets played correctly.
+++ b/sound/soc/codecs/max98088.c @@ -1710,6 +1710,11 @@ static int max98088_probe(struct snd_soc_component *component) snd_soc_component_write(component, M98088_REG_1E_DAI2_IOCFG, M98088_S2NORMAL|M98088_SDATA);
snd_soc_component_update_bits(component, M98088_REG_2F_LVL_DAI1_PLAY,
M98088_DAI_MUTE_MASK, M98088_DAI_MUTE);
snd_soc_component_update_bits(component, M98088_REG_31_LVL_DAI2_PLAY,
M98088_DAI_MUTE_MASK, M98088_DAI_MUTE);
Won't this be broken again after suspend? The device gets powered off over suspend, then when it powers on again with the output unmuted nothing will do another write since the register is already in the state in the cache.