usb: usb_bam: set activity state upon hsic consumer request
In the original design, upon hsic consumer request, the hsic core was
resumed, but the hsic bam state stayed in inactivity, waiting for a
packet to arrive through the bam pipes in order to get back to activity
state, ask for the hsic producer and notify the USB class driver.
However, since the resume of the hsic core upon hsic consumer request,
the USB class driver is notified about the resume by the ehci resume
callback. Therefore if we will wait for activity state the USB class
driver will get also the activity indication after the resume. On both
indications the class driver set a pm runtime vote. Therefore this
scenario lead to a double pm runtime vote that will prevent hsic suspend
from that point on.
Fix this by enter to activity state right when getting hsic consumer
request, therefore requesting the hsic producer and wait for inactivity
timer interrupt from the bam instead of activity wakeup interrupt.
CRs-Fixed: 499448
Change-Id: Iceec94c9585fc40b8341100658f4ca8093087db9
Signed-off-by:
Ido Shayevitz <idos@codeaurora.org>
Loading
Please register or sign in to comment