aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/usb/mtu3/mtu3_gadget.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/usb/mtu3/mtu3_gadget.c')
-rw-r--r--drivers/usb/mtu3/mtu3_gadget.c20
1 files changed, 17 insertions, 3 deletions
diff --git a/drivers/usb/mtu3/mtu3_gadget.c b/drivers/usb/mtu3/mtu3_gadget.c
index bbcd3332471d..f93732e53fd8 100644
--- a/drivers/usb/mtu3/mtu3_gadget.c
+++ b/drivers/usb/mtu3/mtu3_gadget.c
@@ -8,6 +8,7 @@
8 */ 8 */
9 9
10#include "mtu3.h" 10#include "mtu3.h"
11#include "mtu3_trace.h"
11 12
12void mtu3_req_complete(struct mtu3_ep *mep, 13void mtu3_req_complete(struct mtu3_ep *mep,
13 struct usb_request *req, int status) 14 struct usb_request *req, int status)
@@ -25,6 +26,8 @@ __acquires(mep->mtu->lock)
25 26
26 mtu = mreq->mtu; 27 mtu = mreq->mtu;
27 mep->busy = 1; 28 mep->busy = 1;
29
30 trace_mtu3_req_complete(mreq);
28 spin_unlock(&mtu->lock); 31 spin_unlock(&mtu->lock);
29 32
30 /* ep0 makes use of PIO, needn't unmap it */ 33 /* ep0 makes use of PIO, needn't unmap it */
@@ -201,6 +204,7 @@ error:
201 spin_unlock_irqrestore(&mtu->lock, flags); 204 spin_unlock_irqrestore(&mtu->lock, flags);
202 205
203 dev_dbg(mtu->dev, "%s active_ep=%d\n", __func__, mtu->active_ep); 206 dev_dbg(mtu->dev, "%s active_ep=%d\n", __func__, mtu->active_ep);
207 trace_mtu3_gadget_ep_enable(mep);
204 208
205 return ret; 209 return ret;
206} 210}
@@ -212,6 +216,7 @@ static int mtu3_gadget_ep_disable(struct usb_ep *ep)
212 unsigned long flags; 216 unsigned long flags;
213 217
214 dev_dbg(mtu->dev, "%s %s\n", __func__, mep->name); 218 dev_dbg(mtu->dev, "%s %s\n", __func__, mep->name);
219 trace_mtu3_gadget_ep_disable(mep);
215 220
216 if (!(mep->flags & MTU3_EP_ENABLED)) { 221 if (!(mep->flags & MTU3_EP_ENABLED)) {
217 dev_warn(mtu->dev, "%s is already disabled\n", mep->name); 222 dev_warn(mtu->dev, "%s is already disabled\n", mep->name);
@@ -242,13 +247,17 @@ struct usb_request *mtu3_alloc_request(struct usb_ep *ep, gfp_t gfp_flags)
242 mreq->request.dma = DMA_ADDR_INVALID; 247 mreq->request.dma = DMA_ADDR_INVALID;
243 mreq->epnum = mep->epnum; 248 mreq->epnum = mep->epnum;
244 mreq->mep = mep; 249 mreq->mep = mep;
250 trace_mtu3_alloc_request(mreq);
245 251
246 return &mreq->request; 252 return &mreq->request;
247} 253}
248 254
249void mtu3_free_request(struct usb_ep *ep, struct usb_request *req) 255void mtu3_free_request(struct usb_ep *ep, struct usb_request *req)
250{ 256{
251 kfree(to_mtu3_request(req)); 257 struct mtu3_request *mreq = to_mtu3_request(req);
258
259 trace_mtu3_free_request(mreq);
260 kfree(mreq);
252} 261}
253 262
254static int mtu3_gadget_queue(struct usb_ep *ep, 263static int mtu3_gadget_queue(struct usb_ep *ep,
@@ -278,10 +287,12 @@ static int mtu3_gadget_queue(struct usb_ep *ep,
278 __func__, mep->is_in ? "TX" : "RX", mreq->epnum, ep->name, 287 __func__, mep->is_in ? "TX" : "RX", mreq->epnum, ep->name,
279 mreq, ep->maxpacket, mreq->request.length); 288 mreq, ep->maxpacket, mreq->request.length);
280 289
281 if (req->length > GPD_BUF_SIZE) { 290 if (req->length > GPD_BUF_SIZE ||
291 (mtu->gen2cp && req->length > GPD_BUF_SIZE_EL)) {
282 dev_warn(mtu->dev, 292 dev_warn(mtu->dev,
283 "req length > supported MAX:%d requested:%d\n", 293 "req length > supported MAX:%d requested:%d\n",
284 GPD_BUF_SIZE, req->length); 294 mtu->gen2cp ? GPD_BUF_SIZE_EL : GPD_BUF_SIZE,
295 req->length);
285 return -EOPNOTSUPP; 296 return -EOPNOTSUPP;
286 } 297 }
287 298
@@ -314,6 +325,7 @@ static int mtu3_gadget_queue(struct usb_ep *ep,
314 325
315error: 326error:
316 spin_unlock_irqrestore(&mtu->lock, flags); 327 spin_unlock_irqrestore(&mtu->lock, flags);
328 trace_mtu3_gadget_queue(mreq);
317 329
318 return ret; 330 return ret;
319} 331}
@@ -331,6 +343,7 @@ static int mtu3_gadget_dequeue(struct usb_ep *ep, struct usb_request *req)
331 return -EINVAL; 343 return -EINVAL;
332 344
333 dev_dbg(mtu->dev, "%s : req=%p\n", __func__, req); 345 dev_dbg(mtu->dev, "%s : req=%p\n", __func__, req);
346 trace_mtu3_gadget_dequeue(mreq);
334 347
335 spin_lock_irqsave(&mtu->lock, flags); 348 spin_lock_irqsave(&mtu->lock, flags);
336 349
@@ -401,6 +414,7 @@ static int mtu3_gadget_ep_set_halt(struct usb_ep *ep, int value)
401 414
402done: 415done:
403 spin_unlock_irqrestore(&mtu->lock, flags); 416 spin_unlock_irqrestore(&mtu->lock, flags);
417 trace_mtu3_gadget_ep_set_halt(mep);
404 418
405 return ret; 419 return ret;
406} 420}