2) Why it's not fixed:
There was a flag to not power down the widget if it controls eapd, it was called eapd_workaround and was set to true. I found out we need to set it to false to avoid the click #2 because when transitioning to D3 we need to power down the widget - Speaker 0x10 and it controls eapd. Now after changes there is no flag. EAPD part was separated to a new function default_power_filter without any flag to skip that. I've tried to add a new condition and the initial click noise vanished:
Addition
2) Why it's not fixed: power_filter without any flag to skip that. I've tried to add a new condition and the initial click noise vanished:
There was a flag to not power down the widget if it controls eapd, it was called eapd_workaround and was set to true. I found out we need to set it to false to avoid the click #2 because when transitioning to D3 we need to power down the widget - Speaker 0x10 and it controls eapd. Now after changes there is no flag. EAPD part was separated to a new function default_
--- a/hda_codec.c >subsystem_ id == 0x17aa20db)) && wcaps_type( get_wcaps( codec, nid)) == AC_WID_PIN && snd_hda_ query_pin_ caps(codec, nid) & AC_PINCAP_EAPD)) { codec_read( codec, nid, 0,
+++ b/hda_codec.c
@@ -3763,6 +3763,8 @@
unsigned int power_state)
{
if (power_state == AC_PWRST_D3 &&
+ !((codec->vendor_id == 0x14f15045) &&
+ (codec-
get_
(
int eapd = snd_hda_
3) Now I can tell it's not fixed