[alsa-devel] Is that reasonable to support pinctrl PM in ASoC core?

Nicolin Chen b42378 at freescale.com
Fri Oct 25 12:00:51 CEST 2013

On Thu, Oct 24, 2013 at 07:07:43PM +0800, Nicolin Chen wrote:
> Hi all,
> It's quite popular that more drivers are using pinctrl PM, for example:
> (Documentation/devicetree/bindings/arm/primecell.txt). Just like what
> runtime PM does, it would de-active and en-active pin group depending
> on whether it's being used or not.
> And I think this pinctrl PM might be also beneficial to cpu dai drivers
> since they might have actual pins, and they can hypnotize/wake them up
> along with runtime PM:
> @@ -183,6 +183,7 @@ static int soc_pcm_open(struct snd_pcm_substream *substream)
> 	struct snd_soc_dai_driver *codec_dai_drv = codec_dai->driver;
> 	int ret = 0;
> +       pinctrl_pm_select_default_state(cpu_dai->dev);
> 	pm_runtime_get_sync(cpu_dai->dev);
> 	pm_runtime_get_sync(codec_dai->dev);
> 	pm_runtime_get_sync(platform->dev);
> As pinctrl PM is also reference counted and would return 0 if there
> is no pinctrl settings, this would not break current ASoC subsystem
> and any cpu dai driver.

This was a mistake that pinctrl PM seems to be not reference counting.
So I have to correct it here.

And I'm sorry if I misguided anyone.

Nicolin Chen

> So I just want to ask if it's reasonable to add it. Or another one:
> is there anything similar to sleep pins? Although I've searched the
> whole ./sound directory, it seems no drivers under it is using this
> pinctrl PM.
> Best regards,
> Nicolin Chen

More information about the Alsa-devel mailing list