usb: langwell_udc: cancel pending requests when controller is suspended.
authorPhilippe Skowronski <philippe.skowronski@intel.com>
Fri, 1 Oct 2010 13:59:16 +0000 (14:59 +0100)
committerGreg Kroah-Hartman <gregkh@suse.de>
Fri, 22 Oct 2010 17:22:00 +0000 (10:22 -0700)
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>
drivers/usb/gadget/langwell_udc.c

index 064306046702dce6bb05ddfb60d4cadfe3a9a95e..b8ec954c06926a4c4a6e02d5ff7913f2315d35ba 100644 (file)
@@ -3391,6 +3391,11 @@ static int langwell_udc_suspend(struct pci_dev *pdev, pm_message_t state)
        /* save PCI state */
        pci_save_state(pdev);
 
+       spin_lock_irq(&dev->lock);
+       /* stop all usb activities */
+       stop_activity(dev, dev->driver);
+       spin_unlock_irq(&dev->lock);
+
        /* free dTD dma_pool and dQH */
        if (dev->dtd_pool)
                dma_pool_destroy(dev->dtd_pool);