On Mon, 24 Jul 2023 11:00:38 +0200, Takashi Iwai wrote: > > On Fri, 21 Jul 2023 17:18:05 +0200, > Stefan Binding wrote: > > > > There have been a couple of customer reports of intermittant issues after > > system resume, where sometimes the DSP firmware stops responding. > > Investigations into this issue show that there is a race between receiving > > a prepare from the HDA core, and the firmware reload which is started by > > the system resume. This can causes the Global Enable on the CS35L41 to be > > enabled during the firmware load, which can sometimes cause issues in the > > DSP. > > > > The existing system resume behaviour also did not resume the audio, if > > audio was previously playing when it was suspended. > > In addition, during investigation, it was found there were additional > > problems in the System Resume sequence, as well as the Playback sequence > > with External Boost, where the driver does not correctly follow its > > enable sequence for this mode. This can cause additional issues such as > > pops and clicks. > > > > This chain intends to correct the sequences for playback and system > > suspend/resume so that the driver: obeys the external boost enable sequence; > > resumes audio on system resume; and avoids the race condition on firmware > > load and playback during system resume. > > > > Changes since v1: > > - Split patch 1 into 2 separate patches > > - Combine Patches 6 and 9 > > > > Stefan Binding (11): > > ALSA: cs35l41: Use mbox command to enable speaker output for external > > boost > > ALSA: cs35l41: Poll for Power Up/Down rather than waiting a fixed > > delay > > ALSA: hda: cs35l41: Check mailbox status of pause command after > > firmware load > > ALSA: hda: cs35l41: Ensure we correctly re-sync regmap before system > > suspending. > > ALSA: hda: cs35l41: Ensure we pass up any errors during system > > suspend. > > ALSA: hda: cs35l41: Move Play and Pause into separate functions > > ALSA: hda: hda_component: Add pre and post playback hooks to > > hda_component > > ALSA: hda: cs35l41: Use pre and post playback hooks > > ALSA: hda: cs35l41: Rework System Suspend to ensure correct call > > separation > > ALSA: hda: cs35l41: Add device_link between HDA and cs35l41_hda > > ALSA: hda: cs35l41: Ensure amp is only unmuted during playback > > Applied all patches now to for-next branch. It seems that this patch set causes occasional freeze at suspend: https://bugzilla.suse.com/show_bug.cgi?id=1213745 Could you take a look? thanks, Takashi