diff options
author | vamsi k <x0093442@ti.com> | 2011-10-21 01:24:13 +0600 |
---|---|---|
committer | vamsi k <x0093442@ti.com> | 2011-10-21 01:32:23 +0600 |
commit | 2c579ee43ece3329ab92a186c460d439db5609c9 (patch) | |
tree | 8eb576276d34ec8e009ae871eb191fb76bcc91e0 | |
parent | 8a4ef5858f7e3749abc8ae4fcbf471775d242fa5 (diff) | |
download | kernel_samsung_tuna-2c579ee43ece3329ab92a186c460d439db5609c9.zip kernel_samsung_tuna-2c579ee43ece3329ab92a186c460d439db5609c9.tar.gz kernel_samsung_tuna-2c579ee43ece3329ab92a186c460d439db5609c9.tar.bz2 |
ASoC: ABE: Use 2ms ramp to avoid low volume
ABE RAMP_5MS means -15 dB after 5ms so it lead to 30 ms before full power
which shows the first tone gets ramped up leading to low volume.
ABE RAMP_2MS means -15dB after 2ms it reduce the delay to less then 10ms
so ramp happens quickly and tone plays to expected gain level.
Change-Id: Iad99454129ae48a4df47455b682df651bcc7af2b
Signed-off-by: vamsi k <x0093442@ti.com>
-rw-r--r-- | sound/soc/omap/abe/abe_ini.c | 76 | ||||
-rw-r--r-- | sound/soc/omap/omap-abe-dsp.c | 22 | ||||
-rw-r--r-- | sound/soc/omap/omap-abe.c | 4 |
3 files changed, 51 insertions, 51 deletions
diff --git a/sound/soc/omap/abe/abe_ini.c b/sound/soc/omap/abe/abe_ini.c index 5420b19..9fad4ce 100644 --- a/sound/soc/omap/abe/abe_ini.c +++ b/sound/soc/omap/abe/abe_ini.c @@ -218,9 +218,9 @@ int omap_abe_reload_fw(struct omap_abe *abe, u32 *firmware) abe->irq_dbg_read_ptr = 0; /* Restore Gains not managed by the drivers */ omap_abe_write_gain(abe, GAINS_SPLIT, GAIN_0dB, - RAMP_5MS, GAIN_LEFT_OFFSET); + RAMP_2MS, GAIN_LEFT_OFFSET); omap_abe_write_gain(abe, GAINS_SPLIT, GAIN_0dB, - RAMP_5MS, GAIN_RIGHT_OFFSET); + RAMP_2MS, GAIN_RIGHT_OFFSET); return 0; } @@ -381,75 +381,75 @@ void omap_abe_reset_all_ports(struct omap_abe *abe) omap_abe_reset_port(i); /* mixers' configuration */ omap_abe_write_mixer(abe, MIXDL1, MUTE_GAIN, - RAMP_5MS, MIX_DL1_INPUT_MM_DL); + RAMP_2MS, MIX_DL1_INPUT_MM_DL); omap_abe_write_mixer(abe, MIXDL1, MUTE_GAIN, - RAMP_5MS, MIX_DL1_INPUT_MM_UL2); + RAMP_2MS, MIX_DL1_INPUT_MM_UL2); omap_abe_write_mixer(abe, MIXDL1, MUTE_GAIN, - RAMP_5MS, MIX_DL1_INPUT_VX_DL); + RAMP_2MS, MIX_DL1_INPUT_VX_DL); omap_abe_write_mixer(abe, MIXDL1, MUTE_GAIN, - RAMP_5MS, MIX_DL1_INPUT_TONES); + RAMP_2MS, MIX_DL1_INPUT_TONES); omap_abe_write_mixer(abe, MIXDL2, MUTE_GAIN, - RAMP_5MS, MIX_DL2_INPUT_TONES); + RAMP_2MS, MIX_DL2_INPUT_TONES); omap_abe_write_mixer(abe, MIXDL2, MUTE_GAIN, - RAMP_5MS, MIX_DL2_INPUT_VX_DL); + RAMP_2MS, MIX_DL2_INPUT_VX_DL); omap_abe_write_mixer(abe, MIXDL2, MUTE_GAIN, - RAMP_5MS, MIX_DL2_INPUT_MM_DL); + RAMP_2MS, MIX_DL2_INPUT_MM_DL); omap_abe_write_mixer(abe, MIXDL2, MUTE_GAIN, - RAMP_5MS, MIX_DL2_INPUT_MM_UL2); + RAMP_2MS, MIX_DL2_INPUT_MM_UL2); omap_abe_write_mixer(abe, MIXSDT, MUTE_GAIN, - RAMP_5MS, MIX_SDT_INPUT_UP_MIXER); + RAMP_2MS, MIX_SDT_INPUT_UP_MIXER); omap_abe_write_mixer(abe, MIXSDT, GAIN_0dB, - RAMP_5MS, MIX_SDT_INPUT_DL1_MIXER); + RAMP_2MS, MIX_SDT_INPUT_DL1_MIXER); omap_abe_write_mixer(abe, MIXECHO, MUTE_GAIN, - RAMP_5MS, MIX_ECHO_DL1); + RAMP_2MS, MIX_ECHO_DL1); omap_abe_write_mixer(abe, MIXECHO, MUTE_GAIN, - RAMP_5MS, MIX_ECHO_DL2); + RAMP_2MS, MIX_ECHO_DL2); omap_abe_write_mixer(abe, MIXAUDUL, MUTE_GAIN, - RAMP_5MS, MIX_AUDUL_INPUT_MM_DL); + RAMP_2MS, MIX_AUDUL_INPUT_MM_DL); omap_abe_write_mixer(abe, MIXAUDUL, MUTE_GAIN, - RAMP_5MS, MIX_AUDUL_INPUT_TONES); + RAMP_2MS, MIX_AUDUL_INPUT_TONES); omap_abe_write_mixer(abe, MIXAUDUL, GAIN_0dB, - RAMP_5MS, MIX_AUDUL_INPUT_UPLINK); + RAMP_2MS, MIX_AUDUL_INPUT_UPLINK); omap_abe_write_mixer(abe, MIXAUDUL, MUTE_GAIN, - RAMP_5MS, MIX_AUDUL_INPUT_VX_DL); + RAMP_2MS, MIX_AUDUL_INPUT_VX_DL); omap_abe_write_mixer(abe, MIXVXREC, MUTE_GAIN, - RAMP_5MS, MIX_VXREC_INPUT_TONES); + RAMP_2MS, MIX_VXREC_INPUT_TONES); omap_abe_write_mixer(abe, MIXVXREC, MUTE_GAIN, - RAMP_5MS, MIX_VXREC_INPUT_VX_DL); + RAMP_2MS, MIX_VXREC_INPUT_VX_DL); omap_abe_write_mixer(abe, MIXVXREC, MUTE_GAIN, - RAMP_5MS, MIX_VXREC_INPUT_MM_DL); + RAMP_2MS, MIX_VXREC_INPUT_MM_DL); omap_abe_write_mixer(abe, MIXVXREC, MUTE_GAIN, - RAMP_5MS, MIX_VXREC_INPUT_VX_UL); + RAMP_2MS, MIX_VXREC_INPUT_VX_UL); omap_abe_write_gain(abe, GAINS_DMIC1, GAIN_0dB, - RAMP_5MS, GAIN_LEFT_OFFSET); + RAMP_2MS, GAIN_LEFT_OFFSET); omap_abe_write_gain(abe, GAINS_DMIC1, GAIN_0dB, - RAMP_5MS, GAIN_RIGHT_OFFSET); + RAMP_2MS, GAIN_RIGHT_OFFSET); omap_abe_write_gain(abe, GAINS_DMIC2, GAIN_0dB, - RAMP_5MS, GAIN_LEFT_OFFSET); + RAMP_2MS, GAIN_LEFT_OFFSET); omap_abe_write_gain(abe, GAINS_DMIC2, GAIN_0dB, - RAMP_5MS, GAIN_RIGHT_OFFSET); + RAMP_2MS, GAIN_RIGHT_OFFSET); omap_abe_write_gain(abe, GAINS_DMIC3, GAIN_0dB, - RAMP_5MS, GAIN_LEFT_OFFSET); + RAMP_2MS, GAIN_LEFT_OFFSET); omap_abe_write_gain(abe, GAINS_DMIC3, GAIN_0dB, - RAMP_5MS, GAIN_RIGHT_OFFSET); + RAMP_2MS, GAIN_RIGHT_OFFSET); omap_abe_write_gain(abe, GAINS_AMIC, GAIN_0dB, - RAMP_5MS, GAIN_LEFT_OFFSET); + RAMP_2MS, GAIN_LEFT_OFFSET); omap_abe_write_gain(abe, GAINS_AMIC, GAIN_0dB, - RAMP_5MS, GAIN_RIGHT_OFFSET); + RAMP_2MS, GAIN_RIGHT_OFFSET); omap_abe_write_gain(abe, GAINS_SPLIT, GAIN_0dB, - RAMP_5MS, GAIN_LEFT_OFFSET); + RAMP_2MS, GAIN_LEFT_OFFSET); omap_abe_write_gain(abe, GAINS_SPLIT, GAIN_0dB, - RAMP_5MS, GAIN_RIGHT_OFFSET); + RAMP_2MS, GAIN_RIGHT_OFFSET); omap_abe_write_gain(abe, GAINS_DL1, GAIN_0dB, - RAMP_5MS, GAIN_LEFT_OFFSET); + RAMP_2MS, GAIN_LEFT_OFFSET); omap_abe_write_gain(abe, GAINS_DL1, GAIN_0dB, - RAMP_5MS, GAIN_RIGHT_OFFSET); + RAMP_2MS, GAIN_RIGHT_OFFSET); omap_abe_write_gain(abe, GAINS_DL2, GAIN_0dB, - RAMP_5MS, GAIN_LEFT_OFFSET); + RAMP_2MS, GAIN_LEFT_OFFSET); omap_abe_write_gain(abe, GAINS_DL2, GAIN_0dB, - RAMP_5MS, GAIN_RIGHT_OFFSET); + RAMP_2MS, GAIN_RIGHT_OFFSET); omap_abe_write_gain(abe, GAINS_BTUL, GAIN_0dB, - RAMP_5MS, GAIN_LEFT_OFFSET); + RAMP_2MS, GAIN_LEFT_OFFSET); omap_abe_write_gain(abe, GAINS_BTUL, GAIN_0dB, - RAMP_5MS, GAIN_RIGHT_OFFSET); + RAMP_2MS, GAIN_RIGHT_OFFSET); } diff --git a/sound/soc/omap/omap-abe-dsp.c b/sound/soc/omap/omap-abe-dsp.c index 8cd7999..c90c228 100644 --- a/sound/soc/omap/omap-abe-dsp.c +++ b/sound/soc/omap/omap-abe-dsp.c @@ -676,7 +676,7 @@ static int volume_put_sdt_mixer(struct snd_kcontrol *kcontrol, pm_runtime_get_sync(the_abe->dev); abe_write_mixer(MIXSDT, abe_val_to_gain(ucontrol->value.integer.value[0]), - RAMP_5MS, mc->reg); + RAMP_2MS, mc->reg); pm_runtime_put_sync(the_abe->dev); return 1; @@ -690,7 +690,7 @@ static int volume_put_audul_mixer(struct snd_kcontrol *kcontrol, pm_runtime_get_sync(the_abe->dev); abe_write_mixer(MIXAUDUL, abe_val_to_gain(ucontrol->value.integer.value[0]), - RAMP_5MS, mc->reg); + RAMP_2MS, mc->reg); pm_runtime_put_sync(the_abe->dev); return 1; @@ -704,7 +704,7 @@ static int volume_put_vxrec_mixer(struct snd_kcontrol *kcontrol, pm_runtime_get_sync(the_abe->dev); abe_write_mixer(MIXVXREC, abe_val_to_gain(ucontrol->value.integer.value[0]), - RAMP_5MS, mc->reg); + RAMP_2MS, mc->reg); pm_runtime_put_sync(the_abe->dev); return 1; @@ -718,7 +718,7 @@ static int volume_put_dl1_mixer(struct snd_kcontrol *kcontrol, pm_runtime_get_sync(the_abe->dev); abe_write_mixer(MIXDL1, abe_val_to_gain(ucontrol->value.integer.value[0]), - RAMP_5MS, mc->reg); + RAMP_2MS, mc->reg); pm_runtime_put_sync(the_abe->dev); return 1; @@ -732,7 +732,7 @@ static int volume_put_dl2_mixer(struct snd_kcontrol *kcontrol, pm_runtime_get_sync(the_abe->dev); abe_write_mixer(MIXDL2, abe_val_to_gain(ucontrol->value.integer.value[0]), - RAMP_5MS, mc->reg); + RAMP_2MS, mc->reg); pm_runtime_put_sync(the_abe->dev); return 1; @@ -747,10 +747,10 @@ static int volume_put_gain(struct snd_kcontrol *kcontrol, pm_runtime_get_sync(the_abe->dev); abe_write_gain(mc->reg, abe_val_to_gain(ucontrol->value.integer.value[0]), - RAMP_5MS, mc->shift); + RAMP_2MS, mc->shift); abe_write_gain(mc->reg, -12000 + (ucontrol->value.integer.value[1] * 100), - RAMP_5MS, mc->rshift); + RAMP_2MS, mc->rshift); pm_runtime_put_sync(the_abe->dev); return 1; @@ -2084,13 +2084,13 @@ static void abe_dsp_init_gains(struct abe_data *abe) abe_mute_gain(GAINS_BTUL, GAIN_RIGHT_OFFSET); /* Downlink gains */ - abe_write_gain(GAINS_DL1, GAIN_0dB, RAMP_5MS, GAIN_LEFT_OFFSET); - abe_write_gain(GAINS_DL1, GAIN_0dB, RAMP_5MS, GAIN_RIGHT_OFFSET); + abe_write_gain(GAINS_DL1, GAIN_0dB, RAMP_2MS, GAIN_LEFT_OFFSET); + abe_write_gain(GAINS_DL1, GAIN_0dB, RAMP_2MS, GAIN_RIGHT_OFFSET); abe_mute_gain(GAINS_DL1, GAIN_LEFT_OFFSET); abe_mute_gain(GAINS_DL1, GAIN_RIGHT_OFFSET); - abe_write_gain(GAINS_DL2, GAIN_M7dB, RAMP_5MS, GAIN_LEFT_OFFSET); - abe_write_gain(GAINS_DL2, GAIN_M7dB, RAMP_5MS, GAIN_RIGHT_OFFSET); + abe_write_gain(GAINS_DL2, GAIN_M7dB, RAMP_2MS, GAIN_LEFT_OFFSET); + abe_write_gain(GAINS_DL2, GAIN_M7dB, RAMP_2MS, GAIN_RIGHT_OFFSET); abe_mute_gain(GAINS_DL2, GAIN_LEFT_OFFSET); abe_mute_gain(GAINS_DL2, GAIN_RIGHT_OFFSET); diff --git a/sound/soc/omap/omap-abe.c b/sound/soc/omap/omap-abe.c index 71dcf9a..d0fed5d 100644 --- a/sound/soc/omap/omap-abe.c +++ b/sound/soc/omap/omap-abe.c @@ -185,8 +185,8 @@ int omap_abe_set_dl1_output(int output) return -EINVAL; } - abe_write_gain(GAINS_DL1, gain, RAMP_5MS, GAIN_LEFT_OFFSET); - abe_write_gain(GAINS_DL1, gain, RAMP_5MS, GAIN_RIGHT_OFFSET); + abe_write_gain(GAINS_DL1, gain, RAMP_2MS, GAIN_LEFT_OFFSET); + abe_write_gain(GAINS_DL1, gain, RAMP_2MS, GAIN_RIGHT_OFFSET); return 0; } |