In the case where the xhci_suspend failed because the
controller is not halted within the delay, we see that
the xhc interrupts are not acked and is leading to
a storm of unwanted dwc3_interrupt calls.
Fix this by setting the HCD_FLAG_HW_ACCESSIBLE so that
the interrupts are acked by the xhci_irq.
Once the suspend failure happens, the device does not
respond to any new device connect/disconnect.
So, fix this by restarting the host stack by notifying
the hc_died to the dwc3 glue driver.
Change-Id: Ie383d5eacca428b123c1a071a304df54e087c42e
Signed-off-by: Sriharsha Allenki <sallenki@codeaurora.org>
Commit ("f068090426 xhci: Fix leaking USB3 shared_hcd
at xhci removal") sets xhci_shared_hcd to NULL without
stopping xhci host. This results into a race condition
where shared_hcd (super speed roothub) related interrupts
are being handled with xhci_irq happens when the
xhci_plat_remove is called and shared_hcd is set to NULL.
Fix this by setting the shared_hcd to NULL only after the
controller is halted and no interrupts are generated.
Change-Id: I2c7e460c171eacbf26d0bf7185d563ddb9efb504
Signed-off-by: Sriharsha Allenki <sallenki@codeaurora.org>
When the core is coming up online during hotplug, set pmu cache
status flag to PMU_MAP_INVALID until new pmu map is updated
to RIMPS. This update is needed to discard the cached pmu
values until new pmu map is sent to RIMPS and pmu cache flag
is updated to PMU_CACHE_INVALID.
Change-Id: I24fe117c4cb0e20a154b0dfe6b0af04d244d0bdc
Signed-off-by: Santosh Mardi <gsantosh@codeaurora.org>
Fix buffer overflow on memcpy().
memcpy size of u32 on bool variable.
memcpy() to "is_ssr_disabled" overwrites "is_iar_active" to zero.
Change-Id: If7b9ca9149feb54a37fbb0eef7300fa8021d4e54
Signed-off-by: Amir Samuelov <amirs@codeaurora.org>
Read ref count in soc event work to avoid race between
reading and updating ref count.
Change-Id: Ife9249cc4c76577a0ccd7113d17cef3fd703215a
Signed-off-by: Naman Padhiar <npadhiar@codeaurora.org>