[alsa-devel] Question about pinctrl_pm_select_xxx()
Kuninori Morimoto
kuninori.morimoto.gx at renesas.com
Thu Jun 20 02:35:06 CEST 2019
Hi Mark
Thank you for your feedback
> > But, I can't find its paired pinctrl_pm_select_default_state().
> > It looks strange for me. Is this really needed ??
>
> It's in snd_soc_resume() for active DAIs, or otherwise when we open the
> PCM.
OK, I see.
Now, I double checked about it.
In my understanding, we need these at open/close/suspend/resume.
But for component, it only has for suspend.
If we need these, I think we want to have these at open/close/resume.
Now, it uses pinctrl_pm_select_xxx() with "component->dev".
pinctrl_pm_select_sleep_state(component->dev);
~~~~~~~~~~~~~~
But, this component->dev = dai->dev
static struct snd_soc_dai *soc_add_dai(...)
{
=> struct device *dev = component->dev;
...
=> dai->dev = dev;
...
}
Thus, calling it from DAI only is very enough, I think.
In my check, open/close/suspend/resume all has DAI pinctrl_pm_select_xxx()
except suspend:Codec.
I guess, because suspend doesn't have Codec pinctrl_pm_select_xxx() somehow,
thus, someone added Component pinctrl_pm_select_xxx() instead somehow ??
But, what do you think ?
|CPU |Codec |Component |
open |O |O | |
close |O |O | |
suspend |O | |O |
resume |O |O | |
More information about the Alsa-devel
mailing list