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 | | _______________________________________________ Alsa-devel mailing list Alsa-devel@xxxxxxxxxxxxxxxx https://mailman.alsa-project.org/mailman/listinfo/alsa-devel