diff options
Diffstat (limited to 'drivers/usb/mtu3/mtu3_gadget.c')
-rw-r--r-- | drivers/usb/mtu3/mtu3_gadget.c | 20 |
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 | ||
12 | void mtu3_req_complete(struct mtu3_ep *mep, | 13 | void 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 | ||
249 | void mtu3_free_request(struct usb_ep *ep, struct usb_request *req) | 255 | void 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 | ||
254 | static int mtu3_gadget_queue(struct usb_ep *ep, | 263 | static 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 | ||
315 | error: | 326 | error: |
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 | ||
402 | done: | 415 | done: |
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 | } |