On 24.09.2024 11:59, Mark Brown wrote: > > > On Tue, Sep 24, 2024 at 11:12:38AM +0300, Andrei Simion wrote: > >> Update the driver to prevent alsa-restore.service from failing when >> reading data from /var/lib/alsa/asound.state at boot. Ensure that the >> restoration of ALSA mixer configurations is skipped if substream->runtime >> is NULL. >> +++ b/sound/soc/atmel/mchp-pdmc.c >> @@ -302,6 +302,9 @@ static int mchp_pdmc_chmap_ctl_put(struct snd_kcontrol *kcontrol, >> if (!substream) >> return -ENODEV; >> >> + if (!substream->runtime) >> + return 0; /* just for avoiding error from alsactl restore */ >> + > This then means that control writes are just discarded which presumably > is going to upset things if they actually saved a value here. Why is > that a good choice, rather than either fixing the race so the card > doesn't come up too early or removing the need for the runtime? Ok. I understand. My first intention was to follow the https://github.com/torvalds/linux/blob/master/sound/hda/hdmi_chmap.c#L794 but after your point of view, I intend to return -EAGAIN in V2 to specify the substream->runtime is not ready. I retested: configured pdmc, then reboot the board and the configuration: as a result the configuration kept. alsa-restore.service status success. Do you think this solution is enough? Thank you and best regards, Andrei Simion