[alsa-devel] [PATCH 2/5] ASoC: OMAP4: omap-dmic: Initial support for OMAP DMIC

Mark Brown broonie at opensource.wolfsonmicro.com
Tue Nov 22 17:01:05 CET 2011


On Tue, Nov 22, 2011 at 04:01:57PM +0200, Peter Ujfalusi wrote:

> +	switch (params_rate(params)) {
> +	case 96000:
> +	case 192000:
> +		break;

Why doesn't the driver need to tell the hardware what sample rate to run
at?

> +	dmic_clk = clk_get(dmic->dev, "dmic_fck");
> +	if (IS_ERR(dmic_clk)) {
> +		dev_err(dmic->dev, "cant get dmic_fck\n");
> +		return -ENODEV;
> +	}

Why aren't we getting and holding a reference to the clock over the
entire lifetime of the driver?

> +	/* disable clock while reparenting */
> +	pm_runtime_put_sync(dmic->dev);
> +	ret = clk_set_parent(dmic_clk, parent_clk);
> +	pm_runtime_get_sync(dmic->dev);

Since we're only allowing reclocking while idle shouldn't the clock
already be disabled?  Seems like it ought to be good for power if
nothing else...

> +static int omap_dmic_set_clkdiv(struct snd_soc_dai *dai,
> +				int div_id, int div)
> +{

DMIC clocking is usually fairly simple so it seems surprising that the
driver isn't able to figure this out for itself.


More information about the Alsa-devel mailing list