Lines Matching refs:uep
710 struct isp1760_ep *uep = ep_to_udc_ep(ep); in isp1760_ep_enable() local
711 struct isp1760_udc *udc = uep->udc; in isp1760_ep_enable()
715 dev_dbg(uep->udc->isp->dev, "%s\n", __func__); in isp1760_ep_enable()
723 desc->bEndpointAddress != uep->addr || in isp1760_ep_enable()
728 desc->bEndpointAddress, uep->addr, in isp1760_ep_enable()
752 uep->desc = desc; in isp1760_ep_enable()
753 uep->maxpacket = le16_to_cpu(desc->wMaxPacketSize); in isp1760_ep_enable()
754 uep->rx_pending = false; in isp1760_ep_enable()
755 uep->halted = false; in isp1760_ep_enable()
756 uep->wedged = false; in isp1760_ep_enable()
758 isp1760_udc_select_ep(uep); in isp1760_ep_enable()
759 isp1760_udc_write(udc, DC_EPMAXPKTSZ, uep->maxpacket); in isp1760_ep_enable()
760 isp1760_udc_write(udc, DC_BUFLEN, uep->maxpacket); in isp1760_ep_enable()
770 struct isp1760_ep *uep = ep_to_udc_ep(ep); in isp1760_ep_disable() local
771 struct isp1760_udc *udc = uep->udc; in isp1760_ep_disable()
780 if (!uep->desc) { in isp1760_ep_disable()
786 uep->desc = NULL; in isp1760_ep_disable()
787 uep->maxpacket = 0; in isp1760_ep_disable()
789 isp1760_udc_select_ep(uep); in isp1760_ep_disable()
794 list_splice_init(&uep->queue, &req_list); in isp1760_ep_disable()
800 isp1760_udc_request_complete(uep, req, -ESHUTDOWN); in isp1760_ep_disable()
829 struct isp1760_ep *uep = ep_to_udc_ep(ep); in isp1760_ep_queue() local
830 struct isp1760_udc *udc = uep->udc; in isp1760_ep_queue()
842 _req->length, _req->zero ? " (zlp)" : "", uep, uep->addr); in isp1760_ep_queue()
844 req->ep = uep; in isp1760_ep_queue()
846 if (uep->addr == 0) { in isp1760_ep_queue()
861 list_add_tail(&req->queue, &uep->queue); in isp1760_ep_queue()
862 isp1760_udc_transmit(uep, req); in isp1760_ep_queue()
866 list_add_tail(&req->queue, &uep->queue); in isp1760_ep_queue()
867 __isp1760_udc_select_ep(uep, USB_DIR_OUT); in isp1760_ep_queue()
881 } else if (uep->desc) { in isp1760_ep_queue()
882 bool empty = list_empty(&uep->queue); in isp1760_ep_queue()
884 list_add_tail(&req->queue, &uep->queue); in isp1760_ep_queue()
885 if ((uep->addr & USB_DIR_IN) && !uep->halted && empty) in isp1760_ep_queue()
886 isp1760_udc_transmit(uep, req); in isp1760_ep_queue()
887 else if (!(uep->addr & USB_DIR_IN) && uep->rx_pending) in isp1760_ep_queue()
888 complete = isp1760_udc_receive(uep, req); in isp1760_ep_queue()
892 __func__, uep->addr); in isp1760_ep_queue()
903 isp1760_udc_request_complete(uep, req, 0); in isp1760_ep_queue()
911 struct isp1760_ep *uep = ep_to_udc_ep(ep); in isp1760_ep_dequeue() local
912 struct isp1760_udc *udc = uep->udc; in isp1760_ep_dequeue()
915 dev_dbg(uep->udc->isp->dev, "%s(ep%02x)\n", __func__, uep->addr); in isp1760_ep_dequeue()
919 if (req->ep != uep) in isp1760_ep_dequeue()
929 isp1760_udc_request_complete(uep, req, -ECONNRESET); in isp1760_ep_dequeue()
933 static int __isp1760_ep_set_halt(struct isp1760_ep *uep, bool stall, bool wedge) in __isp1760_ep_set_halt() argument
935 struct isp1760_udc *udc = uep->udc; in __isp1760_ep_set_halt()
938 if (!uep->addr) { in __isp1760_ep_set_halt()
951 if (uep->addr && !uep->desc) { in __isp1760_ep_set_halt()
953 uep->addr); in __isp1760_ep_set_halt()
957 if (uep->addr & USB_DIR_IN) { in __isp1760_ep_set_halt()
959 if (!list_empty(&uep->queue)) { in __isp1760_ep_set_halt()
962 uep->addr); in __isp1760_ep_set_halt()
967 ret = __isp1760_udc_set_halt(uep, stall); in __isp1760_ep_set_halt()
971 if (!uep->addr) { in __isp1760_ep_set_halt()
981 uep->wedged = true; in __isp1760_ep_set_halt()
983 uep->wedged = false; in __isp1760_ep_set_halt()
990 struct isp1760_ep *uep = ep_to_udc_ep(ep); in isp1760_ep_set_halt() local
994 dev_dbg(uep->udc->isp->dev, "%s: %s halt on ep%02x\n", __func__, in isp1760_ep_set_halt()
995 value ? "set" : "clear", uep->addr); in isp1760_ep_set_halt()
997 spin_lock_irqsave(&uep->udc->lock, flags); in isp1760_ep_set_halt()
998 ret = __isp1760_ep_set_halt(uep, value, false); in isp1760_ep_set_halt()
999 spin_unlock_irqrestore(&uep->udc->lock, flags); in isp1760_ep_set_halt()
1006 struct isp1760_ep *uep = ep_to_udc_ep(ep); in isp1760_ep_set_wedge() local
1010 dev_dbg(uep->udc->isp->dev, "%s: set wedge on ep%02x)\n", __func__, in isp1760_ep_set_wedge()
1011 uep->addr); in isp1760_ep_set_wedge()
1013 spin_lock_irqsave(&uep->udc->lock, flags); in isp1760_ep_set_wedge()
1014 ret = __isp1760_ep_set_halt(uep, true, true); in isp1760_ep_set_wedge()
1015 spin_unlock_irqrestore(&uep->udc->lock, flags); in isp1760_ep_set_wedge()
1022 struct isp1760_ep *uep = ep_to_udc_ep(ep); in isp1760_ep_fifo_flush() local
1023 struct isp1760_udc *udc = uep->udc; in isp1760_ep_fifo_flush()
1028 isp1760_udc_select_ep(uep); in isp1760_ep_fifo_flush()