On Fri, 22 Jan 2021 00:23:53 +0100, Ranjani Sridharan wrote:
Hi Takashi,
While exploring some power optimizations on Intel platforms, I noticed that the hdac_ext_link ref_count is incremented during codec probe in hdac_hda_codec_probe() and the ref_count is held until the codec device is removed.
I was wondering if it would be possible to call the get/put for the hdac_ext_link in the codec runtime suspend/resume callbacks so that the link is powered up only when the link is in use. Are there any downsides to doing this?
Wouldn't the snd_hdac_ext_bus_link_power_up() / down() calls do the runtime PM stuff? Maybe we need to revisit those link power management. The ext stuff isn't well managed, I'm afraid.
The get() and put() are obviously for fully enabling and disabling the device, hence it's not suitable for the runtime PM suspend/resume. The power_up() / down() should be adjusted to fit with the runtime PM call, if any.
thanks,
Takashi