On Tue, Apr 28, 2015 at 02:00:17PM +0200, Takashi Iwai wrote:
At Tue, 28 Apr 2015 12:21:57 +0100, Jonathan McDowell wrote:
Having upgraded to 4.1-rc1 from 4.0 I'm now hearing audio crackles at regular intervals. I'm fairly sure this is due to the HDA power save as once audio is playing things are fine, it's just when starting to play audio that I hear the crackle.
System is a Dell Latitude E7240. I haven't tried a bisect yet but will attempt to find some time to do so in the next few days. It looks like there have been some changes in sound/hda/ between 4.0 + 4.1-rc1 so I'll concentrate on those first.
There are lots of code changes and enhancements wrt power saving in 4.1, and bisection won't help so much, I'm afraid.
First off, check the device status while you hear crackles. Is the codec in runtime suspend (aka power save)? This can be seen in /sys/bus/hdaudio/devices/*/power/runtime_status. Then check the runtime status of the controller, too, found in /sys/class/sound/card?/device/power/runtime_status.
The cracking is definitely happening with the transition from suspended to active:
/sys/class/sound/card0/device/power/runtime_status:suspended /sys/class/sound/card1/device/power/runtime_status:active /sys/bus/hdaudio/devices/hdaudioC0D0/power/runtime_status:suspended /sys/bus/hdaudio/devices/hdaudioC1D0/power/runtime_status:active
card1 + C1D0 were suspended, I hit delete in a terminal to force a terminal bell, got the crackle and the state changed to active as above.
And, take alsa-info.sh output snapshot while the noise. Run the script with --no-upload option and attach the output file. Also, take alsa-info.sh output on 4.0 kernel for comparison, too. At best, take a snapshot in the similar situation (in power save, etc).
Unfortunately the crackle is really very brief so it's difficult to catch it in the act. I've attached the alsa-info.sh output from when the above is reporting suspended and then when it's reporting active.
The possibly affecting change was the support of widget power saving. For disabling it, try to comment out the line codec->power_save_node = 1; in patch_alc269() in sound/pci/hda/patch_realtek.c.
I'll try this out but it's probably going to be at least tomorrow before I have time.
J.