mirror of
				https://github.com/torvalds/linux.git
				synced 2025-11-04 10:40:15 +02:00 
			
		
		
		
	
				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: 
		
	
					 | 
			||
|---|---|---|
| .. | ||
| cdns3-imx.c | ||
| cdns3-pci-wrap.c | ||
| cdns3-ti.c | ||
| core.c | ||
| core.h | ||
| debug.h | ||
| drd.c | ||
| drd.h | ||
| ep0.c | ||
| gadget-export.h | ||
| gadget.c | ||
| gadget.h | ||
| host-export.h | ||
| host.c | ||
| Kconfig | ||
| Makefile | ||
| trace.c | ||
| trace.h | ||