Lines Matching refs:req

410 	struct usb_request		req;  member
1446 static void complete_req(struct pch_udc_ep *ep, struct pch_udc_request *req, in complete_req() argument
1454 list_del_init(&req->queue); in complete_req()
1457 if (req->req.status == -EINPROGRESS) in complete_req()
1458 req->req.status = status; in complete_req()
1460 status = req->req.status; in complete_req()
1463 if (req->dma_mapped) { in complete_req()
1464 if (req->dma == DMA_ADDR_INVALID) { in complete_req()
1466 dma_unmap_single(&dev->pdev->dev, req->req.dma, in complete_req()
1467 req->req.length, in complete_req()
1470 dma_unmap_single(&dev->pdev->dev, req->req.dma, in complete_req()
1471 req->req.length, in complete_req()
1473 req->req.dma = DMA_ADDR_INVALID; in complete_req()
1476 dma_unmap_single(&dev->pdev->dev, req->dma, in complete_req()
1477 req->req.length, in complete_req()
1480 dma_unmap_single(&dev->pdev->dev, req->dma, in complete_req()
1481 req->req.length, in complete_req()
1483 memcpy(req->req.buf, req->buf, req->req.length); in complete_req()
1485 kfree(req->buf); in complete_req()
1486 req->dma = DMA_ADDR_INVALID; in complete_req()
1488 req->dma_mapped = 0; in complete_req()
1494 usb_gadget_giveback_request(&ep->ep, &req->req); in complete_req()
1505 struct pch_udc_request *req; in empty_req_queue() local
1509 req = list_entry(ep->queue.next, struct pch_udc_request, queue); in empty_req_queue()
1510 complete_req(ep, req, -ESHUTDOWN); /* Remove from list */ in empty_req_queue()
1524 struct pch_udc_request *req) in pch_udc_free_dma_chain() argument
1526 struct pch_udc_data_dma_desc *td = req->td_data; in pch_udc_free_dma_chain()
1527 unsigned i = req->chain_len; in pch_udc_free_dma_chain()
1540 req->chain_len = 1; in pch_udc_free_dma_chain()
1556 struct pch_udc_request *req, in pch_udc_create_dma_chain() argument
1560 struct pch_udc_data_dma_desc *td = req->td_data, *last; in pch_udc_create_dma_chain()
1561 unsigned long bytes = req->req.length, i = 0; in pch_udc_create_dma_chain()
1565 if (req->chain_len > 1) in pch_udc_create_dma_chain()
1566 pch_udc_free_dma_chain(ep->dev, req); in pch_udc_create_dma_chain()
1568 if (req->dma == DMA_ADDR_INVALID) in pch_udc_create_dma_chain()
1569 td->dataptr = req->req.dma; in pch_udc_create_dma_chain()
1571 td->dataptr = req->dma; in pch_udc_create_dma_chain()
1584 td->dataptr = req->td_data->dataptr + i; in pch_udc_create_dma_chain()
1588 req->td_data_last = td; in pch_udc_create_dma_chain()
1590 td->next = req->td_data_phys; in pch_udc_create_dma_chain()
1591 req->chain_len = len; in pch_udc_create_dma_chain()
1596 req->chain_len = len; in pch_udc_create_dma_chain()
1597 pch_udc_free_dma_chain(ep->dev, req); in pch_udc_create_dma_chain()
1599 req->chain_len = 1; in pch_udc_create_dma_chain()
1614 static int prepare_dma(struct pch_udc_ep *ep, struct pch_udc_request *req, in prepare_dma() argument
1620 retval = pch_udc_create_dma_chain(ep, req, ep->ep.maxpacket, gfp); in prepare_dma()
1626 req->td_data->status = (req->td_data->status & in prepare_dma()
1637 static void process_zlp(struct pch_udc_ep *ep, struct pch_udc_request *req) in process_zlp() argument
1642 complete_req(ep, req, 0); in process_zlp()
1664 struct pch_udc_request *req) in pch_udc_start_rxrequest() argument
1669 td_data = req->td_data; in pch_udc_start_rxrequest()
1679 pch_udc_ep_set_ddptr(ep, req->td_data_phys); in pch_udc_start_rxrequest()
1680 req->dma_going = 1; in pch_udc_start_rxrequest()
1770 struct pch_udc_request *req; in pch_udc_alloc_request() local
1779 req = kzalloc(sizeof *req, gfp); in pch_udc_alloc_request()
1780 if (!req) in pch_udc_alloc_request()
1782 req->req.dma = DMA_ADDR_INVALID; in pch_udc_alloc_request()
1783 req->dma = DMA_ADDR_INVALID; in pch_udc_alloc_request()
1784 INIT_LIST_HEAD(&req->queue); in pch_udc_alloc_request()
1786 return &req->req; in pch_udc_alloc_request()
1789 &req->td_data_phys); in pch_udc_alloc_request()
1791 kfree(req); in pch_udc_alloc_request()
1797 req->td_data = dma_desc; in pch_udc_alloc_request()
1798 req->td_data_last = dma_desc; in pch_udc_alloc_request()
1799 req->chain_len = 1; in pch_udc_alloc_request()
1800 return &req->req; in pch_udc_alloc_request()
1813 struct pch_udc_request *req; in pch_udc_free_request() local
1819 req = container_of(usbreq, struct pch_udc_request, req); in pch_udc_free_request()
1821 if (!list_empty(&req->queue)) in pch_udc_free_request()
1823 __func__, usbep->name, req); in pch_udc_free_request()
1824 if (req->td_data != NULL) { in pch_udc_free_request()
1825 if (req->chain_len > 1) in pch_udc_free_request()
1826 pch_udc_free_dma_chain(ep->dev, req); in pch_udc_free_request()
1827 pci_pool_free(ep->dev->data_requests, req->td_data, in pch_udc_free_request()
1828 req->td_data_phys); in pch_udc_free_request()
1830 kfree(req); in pch_udc_free_request()
1850 struct pch_udc_request *req; in pch_udc_pcd_queue() local
1859 req = container_of(usbreq, struct pch_udc_request, req); in pch_udc_pcd_queue()
1860 if (!list_empty(&req->queue)) in pch_udc_pcd_queue()
1880 req->buf = kzalloc(usbreq->length, GFP_ATOMIC); in pch_udc_pcd_queue()
1881 if (!req->buf) { in pch_udc_pcd_queue()
1886 memcpy(req->buf, usbreq->buf, usbreq->length); in pch_udc_pcd_queue()
1887 req->dma = dma_map_single(&dev->pdev->dev, in pch_udc_pcd_queue()
1888 req->buf, in pch_udc_pcd_queue()
1892 req->dma = dma_map_single(&dev->pdev->dev, in pch_udc_pcd_queue()
1893 req->buf, in pch_udc_pcd_queue()
1897 req->dma_mapped = 1; in pch_udc_pcd_queue()
1900 retval = prepare_dma(ep, req, GFP_ATOMIC); in pch_udc_pcd_queue()
1906 req->dma_done = 0; in pch_udc_pcd_queue()
1910 process_zlp(ep, req); in pch_udc_pcd_queue()
1915 pch_udc_start_rxrequest(ep, req); in pch_udc_pcd_queue()
1928 if (req != NULL) in pch_udc_pcd_queue()
1929 list_add_tail(&req->queue, &ep->queue); in pch_udc_pcd_queue()
1950 struct pch_udc_request *req; in pch_udc_pcd_dequeue() local
1959 req = container_of(usbreq, struct pch_udc_request, req); in pch_udc_pcd_dequeue()
1962 list_for_each_entry(req, &ep->queue, queue) { in pch_udc_pcd_dequeue()
1963 if (&req->req == usbreq) { in pch_udc_pcd_dequeue()
1965 if (!list_empty(&req->queue)) in pch_udc_pcd_dequeue()
1966 complete_req(ep, req, -ECONNRESET); in pch_udc_pcd_dequeue()
2112 struct pch_udc_request *req; in pch_udc_start_next_txrequest() local
2122 req = list_entry(ep->queue.next, struct pch_udc_request, queue); in pch_udc_start_next_txrequest()
2123 if (req->dma_going) in pch_udc_start_next_txrequest()
2125 if (!req->td_data) in pch_udc_start_next_txrequest()
2128 req->dma_going = 1; in pch_udc_start_next_txrequest()
2130 td_data = req->td_data; in pch_udc_start_next_txrequest()
2138 pch_udc_ep_set_ddptr(ep, req->td_data_phys); in pch_udc_start_next_txrequest()
2151 struct pch_udc_request *req; in pch_udc_complete_transfer() local
2156 req = list_entry(ep->queue.next, struct pch_udc_request, queue); in pch_udc_complete_transfer()
2157 if ((req->td_data_last->status & PCH_UDC_BUFF_STS) != in pch_udc_complete_transfer()
2160 if ((req->td_data_last->status & PCH_UDC_RXTX_STS) != in pch_udc_complete_transfer()
2164 (req->td_data_last->status & PCH_UDC_RXTX_STS), in pch_udc_complete_transfer()
2169 req->req.actual = req->req.length; in pch_udc_complete_transfer()
2170 req->td_data_last->status = PCH_UDC_BS_HST_BSY | PCH_UDC_DMA_LAST; in pch_udc_complete_transfer()
2171 req->td_data->status = PCH_UDC_BS_HST_BSY | PCH_UDC_DMA_LAST; in pch_udc_complete_transfer()
2172 complete_req(ep, req, 0); in pch_udc_complete_transfer()
2173 req->dma_going = 0; in pch_udc_complete_transfer()
2191 struct pch_udc_request *req; in pch_udc_complete_receiver() local
2200 req = list_entry(ep->queue.next, struct pch_udc_request, queue); in pch_udc_complete_receiver()
2203 if ((req->td_data_last->status & PCH_UDC_BUFF_STS) == in pch_udc_complete_receiver()
2205 td = req->td_data_last; in pch_udc_complete_receiver()
2207 td = req->td_data; in pch_udc_complete_receiver()
2213 (req->td_data->status & PCH_UDC_RXTX_STS), in pch_udc_complete_receiver()
2222 if (td == req->td_data_last) { in pch_udc_complete_receiver()
2230 if (!count && (req->req.length == UDC_DMA_MAXPACKET)) in pch_udc_complete_receiver()
2232 req->td_data->status |= PCH_UDC_DMA_LAST; in pch_udc_complete_receiver()
2235 req->dma_going = 0; in pch_udc_complete_receiver()
2236 req->req.actual = count; in pch_udc_complete_receiver()
2237 complete_req(ep, req, 0); in pch_udc_complete_receiver()
2240 req = list_entry(ep->queue.next, struct pch_udc_request, queue); in pch_udc_complete_receiver()
2241 pch_udc_start_rxrequest(ep, req); in pch_udc_complete_receiver()
2299 struct pch_udc_request *req = NULL; in pch_udc_svc_data_out() local
2307 req = list_entry(ep->queue.next, struct pch_udc_request, in pch_udc_svc_data_out()
2309 if ((req->td_data_last->status & PCH_UDC_BUFF_STS) != in pch_udc_svc_data_out()
2311 if (!req->dma_going) in pch_udc_svc_data_out()
2312 pch_udc_start_rxrequest(ep, req); in pch_udc_svc_data_out()
2476 struct pch_udc_request *req; in pch_udc_postsvc_epinters() local
2480 req = list_entry(ep->queue.next, struct pch_udc_request, queue); in pch_udc_postsvc_epinters()