Lines Matching refs:req
256 static void f_midi_handle_out_data(struct usb_ep *ep, struct usb_request *req)
259 u8 *buf = req->buf;
261 for (i = 0; i + 3 < req->actual; i += 4)
270 f_midi_complete(struct usb_ep *ep, struct usb_request *req)
274 int status = req->status;
279 /* We received stuff. req is queued again, below */
280 f_midi_handle_out_data(ep, req);
283 * f_midi_transmit eats req, don't queue it again. */
284 req->length = 0;
295 req->actual, req->length);
297 f_midi_handle_out_data(ep, req);
300 free_ep_req(ep, req);
309 status, req->actual, req->length);
315 status = usb_ep_queue(ep, req, GFP_ATOMIC);
318 ep->name, req->length, status);
383 struct usb_request *req =
386 if (req == NULL)
389 req->length = 0;
390 req->complete = f_midi_complete;
392 kfifo_put(&midi->in_req_fifo, req);
397 struct usb_request *req =
400 if (req == NULL)
403 req->complete = f_midi_complete;
404 err = usb_ep_queue(midi->out_ep, req, GFP_ATOMIC);
408 if (req->buf != NULL)
409 free_ep_req(midi->out_ep, req);
421 struct usb_request *req = NULL;
433 while (kfifo_get(&midi->in_req_fifo, &req))
434 free_ep_req(midi->in_ep, req);
447 static void f_midi_transmit_byte(struct usb_request *req,
591 unsigned int length = req->length;
592 u8 *buf = (u8 *)req->buf + length;
595 req->length = length + sizeof(p);
608 struct usb_request *req = NULL;
617 len = kfifo_peek(&midi->in_req_fifo, &req);
629 if (req->length > 0)
639 while (req->length + 3 < midi->buflen) {
646 f_midi_transmit_byte(req, port, b);
655 if (req->length <= 0)
658 err = usb_ep_queue(ep, req, GFP_ATOMIC);
660 ERROR(midi, "%s failed to queue req: %d\n",
662 req->length = 0; /* Re-use request next time. */
666 kfifo_put(&midi->in_req_fifo, req);