diff options
author | Vernon Sauder <vsauder@inhand.com> | 2009-03-20 04:44:50 -0400 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2009-03-24 19:20:45 -0400 |
commit | 4c24b6d045a9d355c95ca4e6beb10ce2fd263390 (patch) | |
tree | 6195af438de3c2d0cc89fdd3b7c18cdf9cadce58 /drivers/usb/gadget | |
parent | ab943a2e125b098489ccaa0166c2c52f8266d9ed (diff) |
USB: pxa27x_udc: typo fixes and code cleanups
This patch is a merge of patches :
- fix function doc and debug
- cleanup loop count
- optimize code to remove local variable and extra check
- init 'req' before use
- add missing iounmap call
[dbrownell@users.sourceforge.net: capitalize IN/OUT directions in doc]
Signed-off-by: Vernon Sauder <vsauder@inhand.com>
[folded by Robert Jarzmik <robert.jarzmik@free.fr>
Signed-off-by: Robert Jarzmik <robert.jarzmik@free.fr>
Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'drivers/usb/gadget')
-rw-r--r-- | drivers/usb/gadget/pxa27x_udc.c | 54 |
1 files changed, 24 insertions, 30 deletions
diff --git a/drivers/usb/gadget/pxa27x_udc.c b/drivers/usb/gadget/pxa27x_udc.c index 91ba1e939475..8cc676ecbb23 100644 --- a/drivers/usb/gadget/pxa27x_udc.c +++ b/drivers/usb/gadget/pxa27x_udc.c | |||
@@ -748,13 +748,13 @@ static void req_done(struct pxa_ep *ep, struct pxa27x_request *req, int status) | |||
748 | } | 748 | } |
749 | 749 | ||
750 | /** | 750 | /** |
751 | * ep_end_out_req - Ends control endpoint in request | 751 | * ep_end_out_req - Ends endpoint OUT request |
752 | * @ep: physical endpoint | 752 | * @ep: physical endpoint |
753 | * @req: pxa request | 753 | * @req: pxa request |
754 | * | 754 | * |
755 | * Context: ep->lock held | 755 | * Context: ep->lock held |
756 | * | 756 | * |
757 | * Ends endpoint in request (completes usb request). | 757 | * Ends endpoint OUT request (completes usb request). |
758 | */ | 758 | */ |
759 | static void ep_end_out_req(struct pxa_ep *ep, struct pxa27x_request *req) | 759 | static void ep_end_out_req(struct pxa_ep *ep, struct pxa27x_request *req) |
760 | { | 760 | { |
@@ -763,13 +763,13 @@ static void ep_end_out_req(struct pxa_ep *ep, struct pxa27x_request *req) | |||
763 | } | 763 | } |
764 | 764 | ||
765 | /** | 765 | /** |
766 | * ep0_end_out_req - Ends control endpoint in request (ends data stage) | 766 | * ep0_end_out_req - Ends control endpoint OUT request (ends data stage) |
767 | * @ep: physical endpoint | 767 | * @ep: physical endpoint |
768 | * @req: pxa request | 768 | * @req: pxa request |
769 | * | 769 | * |
770 | * Context: ep->lock held | 770 | * Context: ep->lock held |
771 | * | 771 | * |
772 | * Ends control endpoint in request (completes usb request), and puts | 772 | * Ends control endpoint OUT request (completes usb request), and puts |
773 | * control endpoint into idle state | 773 | * control endpoint into idle state |
774 | */ | 774 | */ |
775 | static void ep0_end_out_req(struct pxa_ep *ep, struct pxa27x_request *req) | 775 | static void ep0_end_out_req(struct pxa_ep *ep, struct pxa27x_request *req) |
@@ -780,13 +780,13 @@ static void ep0_end_out_req(struct pxa_ep *ep, struct pxa27x_request *req) | |||
780 | } | 780 | } |
781 | 781 | ||
782 | /** | 782 | /** |
783 | * ep_end_in_req - Ends endpoint out request | 783 | * ep_end_in_req - Ends endpoint IN request |
784 | * @ep: physical endpoint | 784 | * @ep: physical endpoint |
785 | * @req: pxa request | 785 | * @req: pxa request |
786 | * | 786 | * |
787 | * Context: ep->lock held | 787 | * Context: ep->lock held |
788 | * | 788 | * |
789 | * Ends endpoint out request (completes usb request). | 789 | * Ends endpoint IN request (completes usb request). |
790 | */ | 790 | */ |
791 | static void ep_end_in_req(struct pxa_ep *ep, struct pxa27x_request *req) | 791 | static void ep_end_in_req(struct pxa_ep *ep, struct pxa27x_request *req) |
792 | { | 792 | { |
@@ -795,20 +795,18 @@ static void ep_end_in_req(struct pxa_ep *ep, struct pxa27x_request *req) | |||
795 | } | 795 | } |
796 | 796 | ||
797 | /** | 797 | /** |
798 | * ep0_end_in_req - Ends control endpoint out request (ends data stage) | 798 | * ep0_end_in_req - Ends control endpoint IN request (ends data stage) |
799 | * @ep: physical endpoint | 799 | * @ep: physical endpoint |
800 | * @req: pxa request | 800 | * @req: pxa request |
801 | * | 801 | * |
802 | * Context: ep->lock held | 802 | * Context: ep->lock held |
803 | * | 803 | * |
804 | * Ends control endpoint out request (completes usb request), and puts | 804 | * Ends control endpoint IN request (completes usb request), and puts |
805 | * control endpoint into status state | 805 | * control endpoint into status state |
806 | */ | 806 | */ |
807 | static void ep0_end_in_req(struct pxa_ep *ep, struct pxa27x_request *req) | 807 | static void ep0_end_in_req(struct pxa_ep *ep, struct pxa27x_request *req) |
808 | { | 808 | { |
809 | struct pxa_udc *udc = ep->dev; | 809 | set_ep0state(ep->dev, IN_STATUS_STAGE); |
810 | |||
811 | set_ep0state(udc, IN_STATUS_STAGE); | ||
812 | ep_end_in_req(ep, req); | 810 | ep_end_in_req(ep, req); |
813 | } | 811 | } |
814 | 812 | ||
@@ -1168,7 +1166,7 @@ static int pxa_ep_queue(struct usb_ep *_ep, struct usb_request *_req, | |||
1168 | ep_end_in_req(ep, req); | 1166 | ep_end_in_req(ep, req); |
1169 | } else { | 1167 | } else { |
1170 | ep_err(ep, "got a request of %d bytes while" | 1168 | ep_err(ep, "got a request of %d bytes while" |
1171 | "in state WATI_ACK_SET_CONF_INTERF\n", | 1169 | "in state WAIT_ACK_SET_CONF_INTERF\n", |
1172 | length); | 1170 | length); |
1173 | ep_del_request(ep, req); | 1171 | ep_del_request(ep, req); |
1174 | rc = -EL2HLT; | 1172 | rc = -EL2HLT; |
@@ -1214,30 +1212,26 @@ static int pxa_ep_dequeue(struct usb_ep *_ep, struct usb_request *_req) | |||
1214 | struct udc_usb_ep *udc_usb_ep; | 1212 | struct udc_usb_ep *udc_usb_ep; |
1215 | struct pxa27x_request *req; | 1213 | struct pxa27x_request *req; |
1216 | unsigned long flags; | 1214 | unsigned long flags; |
1217 | int rc; | 1215 | int rc = -EINVAL; |
1218 | 1216 | ||
1219 | if (!_ep) | 1217 | if (!_ep) |
1220 | return -EINVAL; | 1218 | return rc; |
1221 | udc_usb_ep = container_of(_ep, struct udc_usb_ep, usb_ep); | 1219 | udc_usb_ep = container_of(_ep, struct udc_usb_ep, usb_ep); |
1222 | ep = udc_usb_ep->pxa_ep; | 1220 | ep = udc_usb_ep->pxa_ep; |
1223 | if (!ep || is_ep0(ep)) | 1221 | if (!ep || is_ep0(ep)) |
1224 | return -EINVAL; | 1222 | return rc; |
1225 | 1223 | ||
1226 | spin_lock_irqsave(&ep->lock, flags); | 1224 | spin_lock_irqsave(&ep->lock, flags); |
1227 | 1225 | ||
1228 | /* make sure it's actually queued on this endpoint */ | 1226 | /* make sure it's actually queued on this endpoint */ |
1229 | list_for_each_entry(req, &ep->queue, queue) { | 1227 | list_for_each_entry(req, &ep->queue, queue) { |
1230 | if (&req->req == _req) | 1228 | if (&req->req == _req) { |
1229 | req_done(ep, req, -ECONNRESET); | ||
1230 | rc = 0; | ||
1231 | break; | 1231 | break; |
1232 | } | ||
1232 | } | 1233 | } |
1233 | 1234 | ||
1234 | rc = -EINVAL; | ||
1235 | if (&req->req != _req) | ||
1236 | goto out; | ||
1237 | |||
1238 | rc = 0; | ||
1239 | req_done(ep, req, -ECONNRESET); | ||
1240 | out: | ||
1241 | spin_unlock_irqrestore(&ep->lock, flags); | 1235 | spin_unlock_irqrestore(&ep->lock, flags); |
1242 | return rc; | 1236 | return rc; |
1243 | } | 1237 | } |
@@ -1706,10 +1700,9 @@ static __init void udc_init_data(struct pxa_udc *dev) | |||
1706 | } | 1700 | } |
1707 | 1701 | ||
1708 | /* USB endpoints init */ | 1702 | /* USB endpoints init */ |
1709 | for (i = 0; i < NR_USB_ENDPOINTS; i++) | 1703 | for (i = 1; i < NR_USB_ENDPOINTS; i++) |
1710 | if (i != 0) | 1704 | list_add_tail(&dev->udc_usb_ep[i].usb_ep.ep_list, |
1711 | list_add_tail(&dev->udc_usb_ep[i].usb_ep.ep_list, | 1705 | &dev->gadget.ep_list); |
1712 | &dev->gadget.ep_list); | ||
1713 | } | 1706 | } |
1714 | 1707 | ||
1715 | /** | 1708 | /** |
@@ -1994,14 +1987,14 @@ static void handle_ep0(struct pxa_udc *udc, int fifo_irq, int opc_irq) | |||
1994 | struct pxa27x_request *req = NULL; | 1987 | struct pxa27x_request *req = NULL; |
1995 | int completed = 0; | 1988 | int completed = 0; |
1996 | 1989 | ||
1990 | if (!list_empty(&ep->queue)) | ||
1991 | req = list_entry(ep->queue.next, struct pxa27x_request, queue); | ||
1992 | |||
1997 | udccsr0 = udc_ep_readl(ep, UDCCSR); | 1993 | udccsr0 = udc_ep_readl(ep, UDCCSR); |
1998 | ep_dbg(ep, "state=%s, req=%p, udccsr0=0x%03x, udcbcr=%d, irq_msk=%x\n", | 1994 | ep_dbg(ep, "state=%s, req=%p, udccsr0=0x%03x, udcbcr=%d, irq_msk=%x\n", |
1999 | EP0_STNAME(udc), req, udccsr0, udc_ep_readl(ep, UDCBCR), | 1995 | EP0_STNAME(udc), req, udccsr0, udc_ep_readl(ep, UDCBCR), |
2000 | (fifo_irq << 1 | opc_irq)); | 1996 | (fifo_irq << 1 | opc_irq)); |
2001 | 1997 | ||
2002 | if (!list_empty(&ep->queue)) | ||
2003 | req = list_entry(ep->queue.next, struct pxa27x_request, queue); | ||
2004 | |||
2005 | if (udccsr0 & UDCCSR0_SST) { | 1998 | if (udccsr0 & UDCCSR0_SST) { |
2006 | ep_dbg(ep, "clearing stall status\n"); | 1999 | ep_dbg(ep, "clearing stall status\n"); |
2007 | nuke(ep, -EPIPE); | 2000 | nuke(ep, -EPIPE); |
@@ -2473,6 +2466,7 @@ static int __exit pxa_udc_remove(struct platform_device *_dev) | |||
2473 | platform_set_drvdata(_dev, NULL); | 2466 | platform_set_drvdata(_dev, NULL); |
2474 | the_controller = NULL; | 2467 | the_controller = NULL; |
2475 | clk_put(udc->clk); | 2468 | clk_put(udc->clk); |
2469 | iounmap(udc->regs); | ||
2476 | 2470 | ||
2477 | return 0; | 2471 | return 0; |
2478 | } | 2472 | } |