Commit bdb8fa6b authored by Tzung-Bi Shih's avatar Tzung-Bi Shih Committed by Mark Brown

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: default avatarTzung-Bi Shih <tzungbi@google.com>
Signed-off-by: default avatarMark Brown <broonie@kernel.org>
parent ce38a750
...@@ -405,10 +405,9 @@ static bool is_valid_hp_pga_idx(int reg_idx) ...@@ -405,10 +405,9 @@ static bool is_valid_hp_pga_idx(int reg_idx)
reg_idx == DL_GAIN_N_40DB; reg_idx == DL_GAIN_N_40DB;
} }
static void headset_volume_ramp(struct mt6358_priv *priv, static void headset_volume_ramp(struct mt6358_priv *priv, int from, int to)
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)) 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", 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, ...@@ -422,7 +421,7 @@ static void headset_volume_ramp(struct mt6358_priv *priv,
else else
offset = from - to; offset = from - to;
while (offset > 0) { while (offset >= 0) {
if (to > from) if (to > from)
reg_idx = from + count; reg_idx = from + count;
else else
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment