Comment 78 for bug 886975

Revision history for this message
c4pp4 (c4pp4) wrote :

@David Henningsson

If it's not necessary to join the upstream discussion I'd like to stay over here if you don't mind.

After putting down that initial click noise I discovered a new one and that's why the solution avoids two sorts of click noise. Both had been appearing within the transition to D0. The first one (the initial click noise) was caused by the eapd workaround - not powering down the speaker 0x10 widget within the transition to D3. The second one is quite soft and that's why I didn't noticed it before. It was caused by the small transition time to power up the AFG. It had been appearing at the same time as the initial click noise as well as after the reboot (when on battery power). I read the hda specification and successfully tried to use 75ms delay according to hda specification - "It is permissible for the audio fidelity for analog outputs to be slightly degraded if audio rendering begins immediately once the fully operational state is entered. However, audio fidelity must not be degraded 75ms after the transitioning to D0 state." Now there is no click noise with one exception - when I try to record from D3 state there is a recorded click. I tried to avoid that recorded click but the solution is in extending the time to power up the AFG up to 300ms instead of 75ms. But I think it's too long because the start of sound output is lagging. What do you think about it?

Commentary:
the source is from dkms-hda_0.201212172004~quantal1
---------------------------
patch_conexant.c
---------------------------
+ * Copyright (c) 2006 Pototskiy Alex <email address hidden>
just a typo

+ snd_hda_codec_set_power_to_all(codec, fg, power_state, false);
when transitioning to D3 set eapd_workaround to false because we need to power down the widget - Speaker 0x10, if it's not set it causes the initial click noise

+ msleep(75);
time to power up the AFG to avoid the soft click noise

+ .set_power_state = conexant_set_power,
use conexant power settings for auto model

----------------------
hda_codec.c
----------------------
+ hda_set_power_state(codec, AC_PWRST_D0);
(when on battery power) power up the AFG to avoid the soft click noise when rebooting

Would you rewrite it into the "upstream style"?
Thank you.