summaryrefslogtreecommitdiffstats
path: root/sound/soc
diff options
context:
space:
mode:
authorTzung-Bi Shih <tzungbi@google.com>2019-05-07 18:12:18 +0800
committerMark Brown <broonie@kernel.org>2019-05-08 17:11:53 +0900
commitbdb8fa6b09a801a6cbe3c2487f0228860f9c5aba (patch)
treee1605a3c2d013c4c5bfd1e690688bf2713871629 /sound/soc
parentce38a75089f70f6380fc63a5478a7659b4eb3f47 (diff)
downloadlinux-bdb8fa6b09a801a6cbe3c2487f0228860f9c5aba.tar.gz
linux-bdb8fa6b09a801a6cbe3c2487f0228860f9c5aba.tar.bz2
linux-bdb8fa6b09a801a6cbe3c2487f0228860f9c5aba.zip
ASoC: mediatek: mt6358: initialize setting when ramping volume
Mt6358 ramps up from the smallest volume (i.e. -10dB) to target dB when opening and ramps down from target dB to mute (i.e. -40dB) when closing. If target is equal to -10dB when opening, headset_volume_ramp() simply leaves current setting (which may not be -10dB) unchanged. Execute the loop at least once to initialize the setting to the starting point (i.e. from). Signed-off-by: Tzung-Bi Shih <tzungbi@google.com> Signed-off-by: Mark Brown <broonie@kernel.org>
Diffstat (limited to 'sound/soc')
-rw-r--r--sound/soc/codecs/mt6358.c7
1 files changed, 3 insertions, 4 deletions
diff --git a/sound/soc/codecs/mt6358.c b/sound/soc/codecs/mt6358.c
index d4c4fee6d3d9..96547ae50a5d 100644
--- a/sound/soc/codecs/mt6358.c
+++ b/sound/soc/codecs/mt6358.c
@@ -405,10 +405,9 @@ static bool is_valid_hp_pga_idx(int reg_idx)
reg_idx == DL_GAIN_N_40DB;
}
-static void headset_volume_ramp(struct mt6358_priv *priv,
- int from, int to)
+static void headset_volume_ramp(struct mt6358_priv *priv, int from, int to)
{
- int offset = 0, count = 1, reg_idx;
+ int offset = 0, count = 0, reg_idx;
if (!is_valid_hp_pga_idx(from) || !is_valid_hp_pga_idx(to))
dev_warn(priv->dev, "%s(), volume index is not valid, from %d, to %d\n",
@@ -422,7 +421,7 @@ static void headset_volume_ramp(struct mt6358_priv *priv,
else
offset = from - to;
- while (offset > 0) {
+ while (offset >= 0) {
if (to > from)
reg_idx = from + count;
else