1
0
Fork 0
alistair23-linux/drivers/usb/cdns3
Peter Chen e11d2bf271
usb: cdns3: gadget: own the lock wrongly at the suspend routine
When the system goes to suspend, if the controller is at device mode with
cable connecting to host, the call stack is: cdns3_suspend->
cdns3_gadget_suspend -> cdns3_disconnect_gadget, after cdns3_disconnect_gadget
is called, it owns lock wrongly, it causes the system being deadlock after
resume due to at cdns3_device_thread_irq_handler, it tries to get the lock,
but can't get it forever.

To fix it, we delete the unlock-lock operations at cdns3_disconnect_gadget,
and do it at the caller.

Fixes: b1234e3b3b ("usb: cdns3: add runtime PM support")
Acked-by: Pawel Laszczak <pawell@cadence.com>
Signed-off-by: Peter Chen <peter.chen@nxp.com>
2020-10-30 11:40:54 +08:00
..
Kconfig usb: cdns3: add NXP imx8qm glue layer 2020-01-15 10:39:22 +01:00
Makefile usb: cdns3: add NXP imx8qm glue layer 2020-01-15 10:39:22 +01:00
cdns3-imx.c usb: cdns3: imx: add glue layer runtime pm implementation 2020-10-02 09:57:38 +03:00
cdns3-pci-wrap.c usb: cdns3: fix spelling mistake "wrapperr" -> "wrapper" 2020-03-19 15:14:48 +01:00
cdns3-ti.c USB: Replace HTTP links with HTTPS ones 2020-07-21 13:41:57 +02:00
core.c usb: cdns3: core: quit if it uses role switch class 2020-10-02 09:57:40 +03:00
core.h usb: cdns3: Enable workaround for USB2.0 PHY Rx compliance test PHY lockup 2020-10-02 09:57:39 +03:00
debug.h usb: cdns3: fix spelling mistake and rework grammar in text 2020-01-24 09:41:27 +01:00
drd.c usb: cdns3: drd: call PHY .set_mode accordingly 2020-10-02 09:57:40 +03:00
drd.h usb: cdns3: Enable workaround for USB2.0 PHY Rx compliance test PHY lockup 2020-10-02 09:57:39 +03:00
ep0.c usb: cdns3: Fix on-chip memory overflow issue 2020-10-30 11:40:54 +08:00
gadget-export.h
gadget.c usb: cdns3: gadget: own the lock wrongly at the suspend routine 2020-10-30 11:40:54 +08:00
gadget.h usb: cdns3: Fix on-chip memory overflow issue 2020-10-30 11:40:54 +08:00
host-export.h usb: cdns3: include host-export,h for cdns3_host_init 2019-10-27 08:58:44 +02:00
host.c usb: cdns3: add runtime PM support 2020-10-02 09:57:38 +03:00
trace.c
trace.h usb: cdns3: trace: fix some endian issues 2020-07-09 10:13:07 +03:00