Re: [PATCH v2 7/7] ASoC: codecs: aw88261: make volume control usable
From: Mark Brown
Date: Tue May 19 2026 - 12:49:10 EST
On Mon, May 18, 2026 at 06:44:36PM -0300, Val Packett wrote:
> @@ -424,17 +415,7 @@ static int aw88261_dev_reg_update(struct aw88261 *aw88261,
> break;
> }
>
> - ret = aw88261_dev_set_vcalb(aw_dev);
> - if (ret)
> - return ret;
> -
> - if (aw_dev->prof_cur != aw_dev->prof_index)
> - vol_desc->ctl_volume = 0;
> -
> - /* keep min volume */
> - aw88261_dev_set_volume(aw_dev, vol_desc->mute_volume);
> -
> - return ret;
> + return aw88261_dev_set_vcalb(aw_dev);
> }
This looks like it was intentional in order to ensure that things are
muted until we power up (there's an unmute in _dev_start())?
> @@ -983,13 +965,13 @@ static int aw88261_volume_set(struct snd_kcontrol *kcontrol,
> struct aw_volume_desc *vol_desc = &aw88261->aw_pa->volume_desc;
> struct soc_mixer_control *mc =
> (struct soc_mixer_control *)kcontrol->private_value;
> - int value;
> -
> - value = ucontrol->value.integer.value[0];
> + int value = ucontrol->value.integer.value[0];
>
> if (value < mc->min || value > mc->max)
> return -EINVAL;
>
> + value = AW88261_MUTE_VOL - (value * 2);
> +
We're doing the invert of the value scale before we store it, currently
the default value is defined as 0 in the header so we'll default to
maximum volume which is likely to lead to some distress at some point.
The default should be updated as well.
Attachment:
signature.asc
Description: PGP signature