diff options
author | David Brownell <david-b@pacbell.net> | 2007-07-01 15:21:00 -0400 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2007-07-12 19:34:42 -0400 |
commit | c67ab134ba9f83f9de86e58adfeaa14a9efa6e00 (patch) | |
tree | df9022b4a38e955abbf254d71e00ac1fecce6420 /drivers/usb/gadget/lh7a40x_udc.c | |
parent | 9d8bab58b758cd5a96d368a8cc64111c9ab50407 (diff) |
usb gadget stack: remove usb_ep_*_buffer(), part 2
This patch removes controller driver infrastructure which supported
the now-removed usb_ep_{alloc,free}_buffer() calls.
As can be seen, many of the implementations of this were broken to
various degrees. Many didn't properly return dma-coherent mappings;
those which did so were necessarily ugly because of bogosity in the
underlying dma_free_coherent() calls ... which on many platforms
can't be called from the same contexts (notably in_irq) from which
their dma_alloc_coherent() sibling can be called.
The main potential downside of removing this is that gadget drivers
wouldn't have specific knowledge that the controller drivers have:
endpoints that aren't dma-capable don't need any dma mappings at all.
Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'drivers/usb/gadget/lh7a40x_udc.c')
-rw-r--r-- | drivers/usb/gadget/lh7a40x_udc.c | 27 |
1 files changed, 0 insertions, 27 deletions
diff --git a/drivers/usb/gadget/lh7a40x_udc.c b/drivers/usb/gadget/lh7a40x_udc.c index a0a73c08a344..e78c2ddc1f88 100644 --- a/drivers/usb/gadget/lh7a40x_udc.c +++ b/drivers/usb/gadget/lh7a40x_udc.c | |||
@@ -75,10 +75,6 @@ static int lh7a40x_ep_enable(struct usb_ep *ep, | |||
75 | static int lh7a40x_ep_disable(struct usb_ep *ep); | 75 | static int lh7a40x_ep_disable(struct usb_ep *ep); |
76 | static struct usb_request *lh7a40x_alloc_request(struct usb_ep *ep, gfp_t); | 76 | static struct usb_request *lh7a40x_alloc_request(struct usb_ep *ep, gfp_t); |
77 | static void lh7a40x_free_request(struct usb_ep *ep, struct usb_request *); | 77 | static void lh7a40x_free_request(struct usb_ep *ep, struct usb_request *); |
78 | static void *lh7a40x_alloc_buffer(struct usb_ep *ep, unsigned, dma_addr_t *, | ||
79 | gfp_t); | ||
80 | static void lh7a40x_free_buffer(struct usb_ep *ep, void *, dma_addr_t, | ||
81 | unsigned); | ||
82 | static int lh7a40x_queue(struct usb_ep *ep, struct usb_request *, gfp_t); | 78 | static int lh7a40x_queue(struct usb_ep *ep, struct usb_request *, gfp_t); |
83 | static int lh7a40x_dequeue(struct usb_ep *ep, struct usb_request *); | 79 | static int lh7a40x_dequeue(struct usb_ep *ep, struct usb_request *); |
84 | static int lh7a40x_set_halt(struct usb_ep *ep, int); | 80 | static int lh7a40x_set_halt(struct usb_ep *ep, int); |
@@ -104,9 +100,6 @@ static struct usb_ep_ops lh7a40x_ep_ops = { | |||
104 | .alloc_request = lh7a40x_alloc_request, | 100 | .alloc_request = lh7a40x_alloc_request, |
105 | .free_request = lh7a40x_free_request, | 101 | .free_request = lh7a40x_free_request, |
106 | 102 | ||
107 | .alloc_buffer = lh7a40x_alloc_buffer, | ||
108 | .free_buffer = lh7a40x_free_buffer, | ||
109 | |||
110 | .queue = lh7a40x_queue, | 103 | .queue = lh7a40x_queue, |
111 | .dequeue = lh7a40x_dequeue, | 104 | .dequeue = lh7a40x_dequeue, |
112 | 105 | ||
@@ -1134,26 +1127,6 @@ static void lh7a40x_free_request(struct usb_ep *ep, struct usb_request *_req) | |||
1134 | kfree(req); | 1127 | kfree(req); |
1135 | } | 1128 | } |
1136 | 1129 | ||
1137 | static void *lh7a40x_alloc_buffer(struct usb_ep *ep, unsigned bytes, | ||
1138 | dma_addr_t * dma, gfp_t gfp_flags) | ||
1139 | { | ||
1140 | char *retval; | ||
1141 | |||
1142 | DEBUG("%s (%p, %d, %d)\n", __FUNCTION__, ep, bytes, gfp_flags); | ||
1143 | |||
1144 | retval = kmalloc(bytes, gfp_flags & ~(__GFP_DMA | __GFP_HIGHMEM)); | ||
1145 | if (retval) | ||
1146 | *dma = virt_to_bus(retval); | ||
1147 | return retval; | ||
1148 | } | ||
1149 | |||
1150 | static void lh7a40x_free_buffer(struct usb_ep *ep, void *buf, dma_addr_t dma, | ||
1151 | unsigned bytes) | ||
1152 | { | ||
1153 | DEBUG("%s, %p\n", __FUNCTION__, ep); | ||
1154 | kfree(buf); | ||
1155 | } | ||
1156 | |||
1157 | /** Queue one request | 1130 | /** Queue one request |
1158 | * Kickstart transfer if needed | 1131 | * Kickstart transfer if needed |
1159 | * NOTE: Sets INDEX register | 1132 | * NOTE: Sets INDEX register |