[Meego-kernel] [PATCH v2 9/10] usb: langwell_udc: cancel pending requests when controller is suspended

Wu, Hao hao.wu
Tue Sep 28 09:57:14 PDT 2010


>From 403d472d038dec125c708d4d2538d59a07908d61 Mon Sep 17 00:00:00 2001
From: Hao Wu <hao.wu at intel.com>
Date: Tue, 28 Sep 2010 20:06:01 +0800
Subject: [PATCH] usb: langwell_udc: cancel pending requests when controller is suspended.

It is safe that cancel pending requests before free dTD and dQH when
controller enters suspend state.

Signed-off-by: Philippe Skowronski <philippe.skowronski at intel.com>
Signed-off-by: Hao Wu <hao.wu at intel.com>
---
 drivers/usb/gadget/langwell_udc.c |    6 ++++++
 1 files changed, 6 insertions(+), 0 deletions(-)

diff --git a/drivers/usb/gadget/langwell_udc.c b/drivers/usb/gadget/langwell_udc.c
index 8f805b5..40784e8 100644
--- a/drivers/usb/gadget/langwell_udc.c
+++ b/drivers/usb/gadget/langwell_udc.c
@@ -3391,6 +3391,7 @@ error:
 static int langwell_udc_suspend(struct pci_dev *pdev, pm_message_t state)
 {
 	struct langwell_udc	*dev = the_controller;
+	unsigned long		flags;
 
 	dev_dbg(&dev->pdev->dev, "---> %s()\n", __func__);
 
@@ -3405,6 +3406,11 @@ static int langwell_udc_suspend(struct pci_dev *pdev, pm_message_t state)
 	/* save PCI state */
 	pci_save_state(pdev);
 
+	spin_lock_irqsave(&dev->lock, flags);
+	/* stop all usb activities */
+	stop_activity(dev, dev->driver);
+	spin_unlock_irqrestore(&dev->lock, flags);
+
 	/* free dTD dma_pool and dQH */
 	if (dev->dtd_pool)
 		dma_pool_destroy(dev->dtd_pool);
-- 
1.5.5

-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0009-usb-langwell_udc-cancel-pending-requests-when-cont.patch
Type: application/octet-stream
Size: 1375 bytes
Desc: 0009-usb-langwell_udc-cancel-pending-requests-when-cont.patch
URL: <http://lists.meego.com/pipermail/meego-kernel/attachments/20100929/f2aeb3f0/attachment.obj>




More information about the Meego-kernel mailing list