Re: [PATCH v2 00/11] Fix support for System Suspend for CS35L41 HDA

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




On 28/07/2023 12:10, Takashi Iwai wrote:
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

Hi Takashi,

The initial bug report shows one of the original issues that this patch chain was trying to fix. From what I can tell from the second issue, something has caused the CS35L41 to stop responding, which in turn caused the system suspend call to fail, and the error is passed up. Since system suspend failed, there was no corresponding system resume, which means the CS35L41 was stuck broken.

I'm not sure what was meant by "freeze" and "overheating" in the bug report, since the log seems to
indicate the laptop is still responsive, even if audio is broken.

There is some oddity in the log, since one of the errors that was printed should only be printed when the CS35L41 is using External Boost, but I think this laptop is supposed to use Internal Boost.
We'll investigate further.

Thanks,

Stefan Binding




[Index of Archives]     [ALSA User]     [Linux Audio Users]     [Pulse Audio]     [Kernel Archive]     [Asterisk PBX]     [Photo Sharing]     [Linux Sound]     [Video 4 Linux]     [Gimp]     [Yosemite News]

  Powered by Linux