Hello,
The following series aims to fix the Headset power on/off pop noise problems.
Since the twl4030 codec internal implementation have this order in HW: DAC -> Analog PGA -> Mixer
While the ASoC framework expects the following order: DAC -> Mixer -> Analog PGA
I needed to move the APGA control from SND_SOC_DAPM_PGA to be handled with _MIXER. Than adding a PGA to the headset outputs results correct power sequences.
This patch also separates the analog and digital loopback paths, so when the analog loopback is enabled none of the DACs will be powered on, while in case of digital loopback the corresponding DACs will be powered.
These are internal changes, not visible for the user. I have tested it with my custom board with the headset soldered to HeadsetL, the pop noise is really small if any.
The user must also set the correct ramp delay for the given board. On my board: MCLK = 38.4MHz RAMP_DELAY = 2 (109/81/55 ms) works best (meaning 55ms ramp delay), if it is shorter, than it clicks, if it is longer, than it does not click, but the beep tone can be observed.
I hope that I have not missed anything with the patches, since these are forward ported from my working tree to sound-2.6:topic/asoc.
I have applied the patch from Misael on top of the current topic/asoc, so the head was: ASoC: TWL4030: Enable/disable voice digital filters
I believe that this should be able to minimize the pop noise on the headset outputs.
--- Peter Ujfalusi (2): ASoC: TWL4030: Change DAPM routings and controls for DACs and PGAs ASoC: TWL4030: Move the Headset pop-attenuation code to PGA event
sound/soc/codecs/twl4030.c | 257 ++++++++++++++++++++++++++++---------------- 1 files changed, 162 insertions(+), 95 deletions(-)