• Ye Xiang's avatar
    HID: intel-ish-hid: use async resume function · e48bf29c
    Ye Xiang authored
    ISH IPC driver uses asynchronous workqueue to do resume now, but there is
    a potential timing issue: when child devices resume before bus driver, it
    will cause child devices resume failed and cannot be recovered until
    reboot. The current implementation in this case do wait for IPC to resume
    but fail to accommodate for a case when there is no ISH reboot and soft
    resume is taking time. This issue is apparent on Tiger Lake platform with
    5.11.13 kernel when doing suspend to idle then resume(s0ix) test. To
    resolve this issue, we change ISHTP HID client to use asynchronous resume
    callback too. In the asynchronous resume callback, it waits for the ISHTP
    resume done event, and then notify ISHTP HID client link ready.
    Signed-off-by: default avatarYe Xiang <xiang.ye@intel.com>
    Acked-by: default avatarSrinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
    Signed-off-by: default avatarJiri Kosina <jkosina@suse.cz>
    e48bf29c
ishtp-hid.h 5.16 KB