Comment 102 for bug 886975

Revision history for this message
c4pp4 (c4pp4) wrote :

Addition

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:

--- a/hda_codec.c
+++ b/hda_codec.c
@@ -3763,6 +3763,8 @@
       unsigned int power_state)
 {
  if (power_state == AC_PWRST_D3 &&
+ !((codec->vendor_id == 0x14f15045) &&
+ (codec->subsystem_id == 0x17aa20db)) &&
      get_wcaps_type(get_wcaps(codec, nid)) == AC_WID_PIN &&
      (snd_hda_query_pin_caps(codec, nid) & AC_PINCAP_EAPD)) {
   int eapd = snd_hda_codec_read(codec, nid, 0,

3) Now I can tell it's not fixed