Lines Matching refs:uep
713 struct isp1760_ep *uep = ep_to_udc_ep(ep); in isp1760_ep_enable() local
714 struct isp1760_udc *udc = uep->udc; in isp1760_ep_enable()
718 dev_dbg(uep->udc->isp->dev, "%s\n", __func__); in isp1760_ep_enable()
726 desc->bEndpointAddress != uep->addr || in isp1760_ep_enable()
731 desc->bEndpointAddress, uep->addr, in isp1760_ep_enable()
755 uep->desc = desc; in isp1760_ep_enable()
756 uep->maxpacket = le16_to_cpu(desc->wMaxPacketSize); in isp1760_ep_enable()
757 uep->rx_pending = false; in isp1760_ep_enable()
758 uep->halted = false; in isp1760_ep_enable()
759 uep->wedged = false; in isp1760_ep_enable()
761 isp1760_udc_select_ep(uep); in isp1760_ep_enable()
762 isp1760_udc_write(udc, DC_EPMAXPKTSZ, uep->maxpacket); in isp1760_ep_enable()
763 isp1760_udc_write(udc, DC_BUFLEN, uep->maxpacket); in isp1760_ep_enable()
773 struct isp1760_ep *uep = ep_to_udc_ep(ep); in isp1760_ep_disable() local
774 struct isp1760_udc *udc = uep->udc; in isp1760_ep_disable()
783 if (!uep->desc) { in isp1760_ep_disable()
789 uep->desc = NULL; in isp1760_ep_disable()
790 uep->maxpacket = 0; in isp1760_ep_disable()
792 isp1760_udc_select_ep(uep); in isp1760_ep_disable()
797 list_splice_init(&uep->queue, &req_list); in isp1760_ep_disable()
803 isp1760_udc_request_complete(uep, req, -ESHUTDOWN); in isp1760_ep_disable()
830 struct isp1760_ep *uep = ep_to_udc_ep(ep); in isp1760_ep_queue() local
831 struct isp1760_udc *udc = uep->udc; in isp1760_ep_queue()
843 _req->length, _req->zero ? " (zlp)" : "", uep, uep->addr); in isp1760_ep_queue()
845 req->ep = uep; in isp1760_ep_queue()
847 if (uep->addr == 0) { in isp1760_ep_queue()
862 list_add_tail(&req->queue, &uep->queue); in isp1760_ep_queue()
863 isp1760_udc_transmit(uep, req); in isp1760_ep_queue()
867 list_add_tail(&req->queue, &uep->queue); in isp1760_ep_queue()
868 __isp1760_udc_select_ep(uep, USB_DIR_OUT); in isp1760_ep_queue()
882 } else if (uep->desc) { in isp1760_ep_queue()
883 bool empty = list_empty(&uep->queue); in isp1760_ep_queue()
885 list_add_tail(&req->queue, &uep->queue); in isp1760_ep_queue()
886 if ((uep->addr & USB_DIR_IN) && !uep->halted && empty) in isp1760_ep_queue()
887 isp1760_udc_transmit(uep, req); in isp1760_ep_queue()
888 else if (!(uep->addr & USB_DIR_IN) && uep->rx_pending) in isp1760_ep_queue()
889 complete = isp1760_udc_receive(uep, req); in isp1760_ep_queue()
893 __func__, uep->addr); in isp1760_ep_queue()
904 isp1760_udc_request_complete(uep, req, 0); in isp1760_ep_queue()
912 struct isp1760_ep *uep = ep_to_udc_ep(ep); in isp1760_ep_dequeue() local
913 struct isp1760_udc *udc = uep->udc; in isp1760_ep_dequeue()
916 dev_dbg(uep->udc->isp->dev, "%s(ep%02x)\n", __func__, uep->addr); in isp1760_ep_dequeue()
920 if (req->ep != uep) in isp1760_ep_dequeue()
930 isp1760_udc_request_complete(uep, req, -ECONNRESET); in isp1760_ep_dequeue()
934 static int __isp1760_ep_set_halt(struct isp1760_ep *uep, bool stall, bool wedge) in __isp1760_ep_set_halt() argument
936 struct isp1760_udc *udc = uep->udc; in __isp1760_ep_set_halt()
939 if (!uep->addr) { in __isp1760_ep_set_halt()
952 if (uep->addr && !uep->desc) { in __isp1760_ep_set_halt()
954 uep->addr); in __isp1760_ep_set_halt()
958 if (uep->addr & USB_DIR_IN) { in __isp1760_ep_set_halt()
960 if (!list_empty(&uep->queue)) { in __isp1760_ep_set_halt()
963 uep->addr); in __isp1760_ep_set_halt()
968 ret = __isp1760_udc_set_halt(uep, stall); in __isp1760_ep_set_halt()
972 if (!uep->addr) { in __isp1760_ep_set_halt()
982 uep->wedged = true; in __isp1760_ep_set_halt()
984 uep->wedged = false; in __isp1760_ep_set_halt()
991 struct isp1760_ep *uep = ep_to_udc_ep(ep); in isp1760_ep_set_halt() local
995 dev_dbg(uep->udc->isp->dev, "%s: %s halt on ep%02x\n", __func__, in isp1760_ep_set_halt()
996 value ? "set" : "clear", uep->addr); in isp1760_ep_set_halt()
998 spin_lock_irqsave(&uep->udc->lock, flags); in isp1760_ep_set_halt()
999 ret = __isp1760_ep_set_halt(uep, value, false); in isp1760_ep_set_halt()
1000 spin_unlock_irqrestore(&uep->udc->lock, flags); in isp1760_ep_set_halt()
1007 struct isp1760_ep *uep = ep_to_udc_ep(ep); in isp1760_ep_set_wedge() local
1011 dev_dbg(uep->udc->isp->dev, "%s: set wedge on ep%02x)\n", __func__, in isp1760_ep_set_wedge()
1012 uep->addr); in isp1760_ep_set_wedge()
1014 spin_lock_irqsave(&uep->udc->lock, flags); in isp1760_ep_set_wedge()
1015 ret = __isp1760_ep_set_halt(uep, true, true); in isp1760_ep_set_wedge()
1016 spin_unlock_irqrestore(&uep->udc->lock, flags); in isp1760_ep_set_wedge()
1023 struct isp1760_ep *uep = ep_to_udc_ep(ep); in isp1760_ep_fifo_flush() local
1024 struct isp1760_udc *udc = uep->udc; in isp1760_ep_fifo_flush()
1029 isp1760_udc_select_ep(uep); in isp1760_ep_fifo_flush()