diff options
author | Axel Castaneda Gonzalez <x0055901@ti.com> | 2012-01-06 01:06:44 -0600 |
---|---|---|
committer | Dan Murphy <dmurphy@ti.com> | 2012-01-06 13:34:06 -0600 |
commit | d5fdade4ea25e2167564ee55b942b5bde607faed (patch) | |
tree | 46ae3e24e7b89c960713279ed7db4bab44e30c75 /sound/soc/omap | |
parent | 278ed75737ec6e72d83070fa6ee33314ecafa863 (diff) | |
download | kernel_samsung_espresso10-d5fdade4ea25e2167564ee55b942b5bde607faed.zip kernel_samsung_espresso10-d5fdade4ea25e2167564ee55b942b5bde607faed.tar.gz kernel_samsung_espresso10-d5fdade4ea25e2167564ee55b942b5bde607faed.tar.bz2 |
HACK: ASoC: OMAP ABE: Save DL1 BE related gains
MM_EXT_DL gains were being lost when ABE was hitting OFF, because
they were not properly saved when DL1 last active BE was muted.
Save DL1 BE gains along with ABE context in order to avoid
losing their values when OFF is hit. Gain values are saved when
gains are muted. These gains were not properly muted if BT_VX_DL
or MM_EXT_DL port was enabled and DL2 path was active, since
PDM_DL1 port gets enabled(for DL1 or DL2) when ABE McPDM is started.
Change-Id: Ib0d658c65c134f7ee4baeb13f7e09f6299b1923a
Signed-off-by: Axel Castaneda Gonzalez <x0055901@ti.com>
Diffstat (limited to 'sound/soc/omap')
-rw-r--r-- | sound/soc/omap/omap-abe-dsp.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/sound/soc/omap/omap-abe-dsp.c b/sound/soc/omap/omap-abe-dsp.c index 7a659bd..23003dd 100644 --- a/sound/soc/omap/omap-abe-dsp.c +++ b/sound/soc/omap/omap-abe-dsp.c @@ -2125,6 +2125,19 @@ static int aess_save_context(struct abe_data *abe) abe_mute_gain(MIXECHO, MIX_ECHO_DL1); abe_mute_gain(MIXECHO, MIX_ECHO_DL2); + /* mute gains associated with DL1 BE + * ideally, these gains should be muted/saved when BE is muted, but + * when ABE McPDM is started for DL1 or DL2, PDM_DL1 port gets enabled + * which prevents to mute these gains since two ports on DL1 path are + * active when mute is called for BT_VX_DL or MM_EXT_DL. + * + * These gains are not restored along with the context because they + * are properly unmuted/restored when any of the DL1 BEs is unmuted + */ + abe_mute_gain(GAINS_DL1, GAIN_LEFT_OFFSET); + abe_mute_gain(GAINS_DL1, GAIN_RIGHT_OFFSET); + abe_mute_gain(MIXSDT, MIX_SDT_INPUT_DL1_MIXER); + return 0; } |