Lines Matching refs:req

381  * @req:		embedded ep request
391 struct usb_request req;
1419 * @req: Reference to the request structure
1422 static void complete_req(struct pch_udc_ep *ep, struct pch_udc_request *req,
1430 list_del_init(&req->queue);
1433 if (req->req.status == -EINPROGRESS)
1434 req->req.status = status;
1436 status = req->req.status;
1439 usb_gadget_unmap_request(&dev->gadget, &req->req, ep->in);
1444 usb_gadget_giveback_request(&ep->ep, &req->req);
1455 struct pch_udc_request *req;
1459 req = list_entry(ep->queue.next, struct pch_udc_request, queue);
1460 complete_req(ep, req, -ESHUTDOWN); /* Remove from list */
1468 * @req: Reference to the request to be freed
1474 struct pch_udc_request *req)
1476 struct pch_udc_data_dma_desc *td = req->td_data;
1477 unsigned i = req->chain_len;
1489 req->chain_len = 1;
1496 * @req: Reference to the request
1505 struct pch_udc_request *req,
1509 struct pch_udc_data_dma_desc *td = req->td_data, *last;
1510 unsigned long bytes = req->req.length, i = 0;
1514 if (req->chain_len > 1)
1515 pch_udc_free_dma_chain(ep->dev, req);
1517 td->dataptr = req->req.dma;
1530 td->dataptr = req->td_data->dataptr + i;
1534 req->td_data_last = td;
1536 td->next = req->td_data_phys;
1537 req->chain_len = len;
1542 req->chain_len = len;
1543 pch_udc_free_dma_chain(ep->dev, req);
1545 req->chain_len = 1;
1553 * @req: Reference to the request
1560 static int prepare_dma(struct pch_udc_ep *ep, struct pch_udc_request *req,
1566 retval = pch_udc_create_dma_chain(ep, req, ep->ep.maxpacket, gfp);
1572 req->td_data->status = (req->td_data->status &
1581 * @req: Reference to the request
1583 static void process_zlp(struct pch_udc_ep *ep, struct pch_udc_request *req)
1588 complete_req(ep, req, 0);
1607 * @req: Reference to the request structure
1610 struct pch_udc_request *req)
1615 td_data = req->td_data;
1625 pch_udc_ep_set_ddptr(ep, req->td_data_phys);
1626 req->dma_going = 1;
1714 struct pch_udc_request *req;
1721 req = kzalloc(sizeof *req, gfp);
1722 if (!req)
1724 req->req.dma = DMA_ADDR_INVALID;
1725 INIT_LIST_HEAD(&req->queue);
1727 return &req->req;
1730 &req->td_data_phys);
1732 kfree(req);
1738 req->td_data = dma_desc;
1739 req->td_data_last = dma_desc;
1740 req->chain_len = 1;
1741 return &req->req;
1754 struct pch_udc_request *req;
1760 req = container_of(usbreq, struct pch_udc_request, req);
1762 if (!list_empty(&req->queue))
1763 dev_err(&dev->pdev->dev, "%s: %s req=0x%p queue not empty\n",
1764 __func__, usbep->name, req);
1765 if (req->td_data != NULL) {
1766 if (req->chain_len > 1)
1767 pch_udc_free_dma_chain(ep->dev, req);
1768 dma_pool_free(ep->dev->data_requests, req->td_data,
1769 req->td_data_phys);
1771 kfree(req);
1791 struct pch_udc_request *req;
1800 req = container_of(usbreq, struct pch_udc_request, req);
1801 if (!list_empty(&req->queue))
1811 retval = prepare_dma(ep, req, GFP_ATOMIC);
1817 req->dma_done = 0;
1819 /* no pending transfer, so start this req */
1821 process_zlp(ep, req);
1826 pch_udc_start_rxrequest(ep, req);
1839 if (req != NULL)
1840 list_add_tail(&req->queue, &ep->queue);
1861 struct pch_udc_request *req;
1868 req = container_of(usbreq, struct pch_udc_request, req);
1871 list_for_each_entry(req, &ep->queue, queue) {
1872 if (&req->req == usbreq) {
1874 if (!list_empty(&req->queue))
1875 complete_req(ep, req, -ECONNRESET);
2015 struct pch_udc_request *req;
2025 req = list_entry(ep->queue.next, struct pch_udc_request, queue);
2026 if (req->dma_going)
2028 if (!req->td_data)
2031 req->dma_going = 1;
2033 td_data = req->td_data;
2041 pch_udc_ep_set_ddptr(ep, req->td_data_phys);
2054 struct pch_udc_request *req;
2059 req = list_entry(ep->queue.next, struct pch_udc_request, queue);
2060 if ((req->td_data_last->status & PCH_UDC_BUFF_STS) !=
2063 if ((req->td_data_last->status & PCH_UDC_RXTX_STS) !=
2067 (req->td_data_last->status & PCH_UDC_RXTX_STS),
2072 req->req.actual = req->req.length;
2073 req->td_data_last->status = PCH_UDC_BS_HST_BSY | PCH_UDC_DMA_LAST;
2074 req->td_data->status = PCH_UDC_BS_HST_BSY | PCH_UDC_DMA_LAST;
2075 complete_req(ep, req, 0);
2076 req->dma_going = 0;
2094 struct pch_udc_request *req;
2103 req = list_entry(ep->queue.next, struct pch_udc_request, queue);
2106 if ((req->td_data_last->status & PCH_UDC_BUFF_STS) ==
2108 td = req->td_data_last;
2110 td = req->td_data;
2116 (req->td_data->status & PCH_UDC_RXTX_STS),
2125 if (td == req->td_data_last) {
2133 if (!count && (req->req.length == UDC_DMA_MAXPACKET))
2135 req->td_data->status |= PCH_UDC_DMA_LAST;
2138 req->dma_going = 0;
2139 req->req.actual = count;
2140 complete_req(ep, req, 0);
2143 req = list_entry(ep->queue.next, struct pch_udc_request, queue);
2144 pch_udc_start_rxrequest(ep, req);
2202 struct pch_udc_request *req = NULL;
2210 req = list_entry(ep->queue.next, struct pch_udc_request,
2212 if ((req->td_data_last->status & PCH_UDC_BUFF_STS) !=
2214 if (!req->dma_going)
2215 pch_udc_start_rxrequest(ep, req);
2498 /* disable ep to empty req queue. Skip the control EP's */