[alsa-devel] [PATCH 2/2] ALSA: hda - Enforces runtime_resume after S3 and S4 for each codec

Takashi Iwai tiwai at suse.de
Tue Mar 19 06:56:51 CET 2019


On Tue, 19 Mar 2019 02:28:44 +0100,
Hui Wang wrote:
> 
> Recently we found the audio jack detection stop working after suspend
> on many machines with Realtek codec. Sometimes the audio selection
> dialogue didn't show up after users plugged headhphone/headset into
> the headset jack, sometimes after uses plugged headphone/headset, then
> click the sound icon on the upper-right corner of gnome-desktop, it
> also showed the speaker rather than the headphone.
> 
> The root cause is that before suspend, the codec already call the
> runtime_suspend since this codec is not used by any apps, then in
> resume, it will not call runtime_resume for this codec. But for some
> realtek codec (so far, alc236, alc255 and alc891) with the specific
> BIOS, if it doesn't run runtime_resume after suspend, all codec
> functions including jack detection stop working anymore.
> 
> This problem existed for a long time, but it was not exposed, that is
> because when problem happens, if users play sound or open
> sound-setting to check audio device, this will trigger calling to
> runtime_resume (via snd_hda_power_up), then the codec starts working
> again before users notice this problem.
> 
> Since we don't know how many codec and BIOS combinations have this
> problem, to fix it, let the driver call runtime_resume for all codecs
> in pm_resume, maybe for some codecs, this is not needed, but it is
> harmless. After a codec is runtime resumed, if it is not used by any
> apps, it will be runtime suspended soon and furthermore we don't run
> suspend frequently, this change will not add much power consumption.
> 
> Signed-off-by: Hui Wang <hui.wang at canonical.com>

Applied, thanks.


Takashi


More information about the Alsa-devel mailing list