USB: Prevent system suspend when HSIC device is active
Some buses like HSIC would like to keep device in suspend state after system resume. The remote wakeup or interface activity later will auto resume the device. This will work only if the device is auto suspended before system suspend. If the device runtime state had been active during system suspend and system suspend routine put the device in suspend, it will not be resumed during system resume. When remote wakeup happen for this device, the runtime resume will not bring the device to active as runtime core think it is already active. The HSIC bus ensure that device is auto suspended prior to system suspend by holding a wakelock till the bus is suspended. HSIC bus is not handling the case where device is auto resumed immediately after system suspend begins. HSIC bus simply put the device into suspend in system suspend routine. This patch fixes above issue by returning an error code if the device is not auto suspended during system suspend. Also add a safe guard check in HSIC system resume routine to skip device resume only if it is auto suspended prior to system suspend. (cherry picked from commit 41d004c4eaa5565cb8d9113862c3cef1e51be648) CRs-Fixed: 422876 Change-Id: I07063d1fe2ef054adc5c593691d417272e66221e Signed-off-by:Pavankumar Kondeti <pkondeti@codeaurora.org> Signed-off-by:
Neha Pandey <nehap@codeaurora.org>
Loading
Please sign in to comment