Re: [PATCH] ASoC: fsl_audmix: make clock and output src write only

From: Nicolin Chen
Date: Wed Sep 16 2020 - 20:23:10 EST


On Mon, Sep 14, 2020 at 08:24:34PM +0300, Viorel Suman (OSS) wrote:
> From: Viorel Suman <viorel.suman@xxxxxxx>
>
> "alsactl -f state.conf store/restore" sequence fails because setting
> "mixing clock source" and "output source" requires active TDM clock
> being started for configuration propagation. Make these two controls
> write only so that their values are not stored at "alsactl store".
>
> Signed-off-by: Viorel Suman <viorel.suman@xxxxxxx>

Acked-by: Nicolin Chen <nicoleotsuka@xxxxxxxxx>

> ---
> sound/soc/fsl/fsl_audmix.c | 16 ++++++++++++----
> 1 file changed, 12 insertions(+), 4 deletions(-)
>
> diff --git a/sound/soc/fsl/fsl_audmix.c b/sound/soc/fsl/fsl_audmix.c
> index a447baf..7ad5925 100644
> --- a/sound/soc/fsl/fsl_audmix.c
> +++ b/sound/soc/fsl/fsl_audmix.c
> @@ -199,10 +199,18 @@ static int fsl_audmix_put_out_src(struct snd_kcontrol *kcontrol,
>
> static const struct snd_kcontrol_new fsl_audmix_snd_controls[] = {
> /* FSL_AUDMIX_CTR controls */
> - SOC_ENUM_EXT("Mixing Clock Source", fsl_audmix_enum[0],
> - snd_soc_get_enum_double, fsl_audmix_put_mix_clk_src),
> - SOC_ENUM_EXT("Output Source", fsl_audmix_enum[1],
> - snd_soc_get_enum_double, fsl_audmix_put_out_src),
> + { .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
> + .name = "Mixing Clock Source",
> + .info = snd_soc_info_enum_double,
> + .access = SNDRV_CTL_ELEM_ACCESS_WRITE,
> + .put = fsl_audmix_put_mix_clk_src,
> + .private_value = (unsigned long)&fsl_audmix_enum[0] },
> + { .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
> + .name = "Output Source",
> + .info = snd_soc_info_enum_double,
> + .access = SNDRV_CTL_ELEM_ACCESS_WRITE,
> + .put = fsl_audmix_put_out_src,
> + .private_value = (unsigned long)&fsl_audmix_enum[1] },
> SOC_ENUM("Output Width", fsl_audmix_enum[2]),
> SOC_ENUM("Frame Rate Diff Error", fsl_audmix_enum[3]),
> SOC_ENUM("Clock Freq Diff Error", fsl_audmix_enum[4]),
> --
> 2.7.4
>