23 Oct
2020
23 Oct
'20
2:32 p.m.
On Fri, 23 Oct 2020 12:23:35 +0200, Kai-Heng Feng wrote:
+static void hda_codec_pm_complete(struct device *dev) { struct hda_codec *codec = dev_to_hda_codec(dev);
int ret;
ret = pm_runtime_force_resume(dev);
/* schedule jackpoll work for jack detection update */
if (codec->jackpoll_interval ||
(pm_runtime_suspended(dev) && hda_codec_need_resume(codec)))
schedule_delayed_work(&codec->jackpoll_work,
codec->jackpoll_interval);
return ret;
- if (pm_runtime_suspended(dev) &&
(hda_codec_need_resume(codec) || codec->forced_resume))
pm_request_resume(dev);
You shouldn't drop the check of codec->jackpoll_interval. If this field is set, the codec driver has to resume no matter what it was, so that the polling can start up again.
thanks,
Takashi