Re: [PATCH] ASoC: tlv320aic3x: add dmic widget support

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, Mar 11, 2022 at 11:06:27AM +0100, Gregory CLEMENT wrote:

> +static const char * const aic3x_dmic_rates[] = { "off", "128x", "64x", "32x" };
> +static SOC_ENUM_SINGLE_DECL(aic3x_dmic_rates_enum, AIC3X_ASD_INTF_CTRLA, 0,
> +			    aic3x_dmic_rates);
> +static const struct snd_kcontrol_new aic3x_dmic_rates_controls =
> +	SOC_DAPM_ENUM("Route", aic3x_dmic_rates_enum);

...

> +	{"GPIO1 dmic modclk", NULL, "DMic Rate"},
> +	{"DMic Rate", "128x", "DMIC"},
> +	{"DMic Rate", "64x", "DMIC"},
> +	{"DMic Rate", "32x", "DMIC"},
> +	{"DMic Rate", "off", "DMIC"},

This isn't really idiomatic and won't be power efficient since we don't
automatically manage the power so we'll have the DMIC clock running even
when no recording is in progress.  What would be better would be to have
an enum equivalent of the _AUTODISABLE() controls, providing an enum
with the clock rates backed by a field in the driver data and then a
DAPM widget which writes the value to the hardware when the widget is
enabled and sets it back to off on disable.  It'd be fine to open code
that in the driver for now rather than actually implementing a generic
thing if that's too much hassle.

Attachment: signature.asc
Description: PGP signature


[Index of Archives]     [ALSA User]     [Linux Audio Users]     [Pulse Audio]     [Kernel Archive]     [Asterisk PBX]     [Photo Sharing]     [Linux Sound]     [Video 4 Linux]     [Gimp]     [Yosemite News]

  Powered by Linux