[PATCH 11/11] ASoC: fsl_easrc: Change the type for iec958 channel status controls

Mark Brown broonie at kernel.org
Tue Mar 31 00:23:40 AEDT 2026


On Mon, Mar 30, 2026 at 07:25:55PM +0800, Shengjiu Wang wrote:
> Use the type SNDRV_CTL_ELEM_TYPE_IEC958 for iec958 channel status
> controls, the original type will cause mixer-test to iterate all 32bit
> values, which costs a lot of time. And using IEC958 type can reduce the
> control numbers.

> Also enable pm runtime before updating registers to make the regmap cache
> data align with the value in hardware.

> @@ -100,22 +130,52 @@ static int fsl_easrc_set_reg(struct snd_kcontrol *kcontrol,

> -	ret = regmap_update_bits_check(easrc->regmap, mc->regbase,
> -				       GENMASK(31, 0), regval, &changed);
> -	if (ret != 0)
> +	ret = pm_runtime_resume_and_get(component->dev);
> +	if (ret)
>  		return ret;
>  
> -	return changed;
> +	ret = regmap_update_bits(easrc->regmap, REG_EASRC_CS0(mc->regbase),
> +				 GENMASK(31, 0), regval[0]);
> +	if (ret != 0)
> +		goto err;

This drops all the checking for changed values that we used to do so we
won't generate notifications to userspace.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 488 bytes
Desc: not available
URL: <http://lists.ozlabs.org/pipermail/linuxppc-dev/attachments/20260330/f7e57734/attachment.sig>


More information about the Linuxppc-dev mailing list