net: qrtr: support suspend/hibernation
authorBaochen Qiang <quic_bqiang@quicinc.com>
Mon, 8 Apr 2024 14:41:50 +0000 (17:41 +0300)
committerKalle Valo <quic_kvalo@quicinc.com>
Tue, 9 Apr 2024 11:43:28 +0000 (14:43 +0300)
commite0cd1185900e638d41d9cccb4c259051e05f69e9
tree948d0e116ee0627dce34bea78dc9aea58bf4c2ce
parentb34389c3978c3679954bb272ecec9365665365aa
net: qrtr: support suspend/hibernation

MHI devices may not be destroyed during suspend/hibernation, so need
to unprepare/prepare MHI channels throughout the transition, this is
done by adding suspend/resume callbacks.

The suspend callback is called in the late suspend stage, this means
MHI channels are still alive at suspend stage, and that makes it
possible for an MHI controller driver to communicate with others over
those channels at suspend stage. While the resume callback is called
in the early resume stage, for a similar reason.

Also note that we won't do unprepare/prepare when MHI device is in
suspend state because it's pointless if MHI is only meant to go through
a suspend/resume transition, instead of a complete power cycle.

Tested-on: WCN6855 hw2.0 PCI WLAN.HSP.1.1-03125-QCAHSPSWPL_V1_V2_SILICONZ_LITE-3.6510.30

Signed-off-by: Baochen Qiang <quic_bqiang@quicinc.com>
Reviewed-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
Reviewed-by: Jeff Johnson <quic_jjohnson@quicinc.com>
Signed-off-by: Kalle Valo <quic_kvalo@quicinc.com>
Link: https://msgid.link/20240305021320.3367-3-quic_bqiang@quicinc.com
net/qrtr/mhi.c