usb: gadget: gsi: Ensure the doorbell is blocked before suspend
The doorbell is blocked as part of gsi_suspend, but a continuous
resume and suspend calls can cause a race where resume
handling overwrites the blocking of doorbell leading
to the controller accessing IPA doorbell after suspend.
Here are the series of events that is causing the issue.
gsi_resume
queue_work with EVT_RESUME
gsi_suspend
Block the doorbell
queue_work with EVT_SUSPEND
resume_work_handler
xdci_resume
Unblock the doorbell
suspend_work_handler
xdci_suspend
Fix this by ensuring that the doorbell is blocked
before suspend call to IPA as part of suspend handling.
Change-Id: I4d0254c88ed3bec6338d040480b5df2e3f81251e
Signed-off-by:
Sriharsha Allenki <sallenki@codeaurora.org>
Loading
Please register or sign in to comment