diff options
author | Philippe Skowronski <philippe.skowronski@intel.com> | 2010-10-01 09:59:16 -0400 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2010-10-22 13:22:00 -0400 |
commit | cf7d3c8e579a643ff81ff95d51babdaf4c55f5f4 (patch) | |
tree | c2890018e142e6f2f2da0dd73b6d21661b36ef1d /drivers/usb | |
parent | c8458d59d424fcba2456d6cba5811ce01c3aedb9 (diff) |
usb: langwell_udc: cancel pending requests when controller is suspended.
It is safer to cancel pending requests before free dTD and dQH when
controller enters suspend state.
Signed-off-by: Philippe Skowronski <philippe.skowronski@intel.com>
Signed-off-by: Hao Wu <hao.wu@intel.com>
[Switch to spin_lock_irq as suggested by Alan Stern]
Signed-off-by: Alan Cox <alan@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'drivers/usb')
-rw-r--r-- | drivers/usb/gadget/langwell_udc.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/drivers/usb/gadget/langwell_udc.c b/drivers/usb/gadget/langwell_udc.c index 064306046702..b8ec954c0692 100644 --- a/drivers/usb/gadget/langwell_udc.c +++ b/drivers/usb/gadget/langwell_udc.c | |||
@@ -3391,6 +3391,11 @@ static int langwell_udc_suspend(struct pci_dev *pdev, pm_message_t state) | |||
3391 | /* save PCI state */ | 3391 | /* save PCI state */ |
3392 | pci_save_state(pdev); | 3392 | pci_save_state(pdev); |
3393 | 3393 | ||
3394 | spin_lock_irq(&dev->lock); | ||
3395 | /* stop all usb activities */ | ||
3396 | stop_activity(dev, dev->driver); | ||
3397 | spin_unlock_irq(&dev->lock); | ||
3398 | |||
3394 | /* free dTD dma_pool and dQH */ | 3399 | /* free dTD dma_pool and dQH */ |
3395 | if (dev->dtd_pool) | 3400 | if (dev->dtd_pool) |
3396 | dma_pool_destroy(dev->dtd_pool); | 3401 | dma_pool_destroy(dev->dtd_pool); |