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()
832 struct isp1760_ep *uep = ep_to_udc_ep(ep); in isp1760_ep_queue() local
833 struct isp1760_udc *udc = uep->udc; in isp1760_ep_queue()
845 _req->length, _req->zero ? " (zlp)" : "", uep, uep->addr); in isp1760_ep_queue()
847 req->ep = uep; in isp1760_ep_queue()
849 if (uep->addr == 0) { in isp1760_ep_queue()
864 list_add_tail(&req->queue, &uep->queue); in isp1760_ep_queue()
865 isp1760_udc_transmit(uep, req); in isp1760_ep_queue()
869 list_add_tail(&req->queue, &uep->queue); in isp1760_ep_queue()
870 __isp1760_udc_select_ep(uep, USB_DIR_OUT); in isp1760_ep_queue()
884 } else if (uep->desc) { in isp1760_ep_queue()
885 bool empty = list_empty(&uep->queue); in isp1760_ep_queue()
887 list_add_tail(&req->queue, &uep->queue); in isp1760_ep_queue()
888 if ((uep->addr & USB_DIR_IN) && !uep->halted && empty) in isp1760_ep_queue()
889 isp1760_udc_transmit(uep, req); in isp1760_ep_queue()
890 else if (!(uep->addr & USB_DIR_IN) && uep->rx_pending) in isp1760_ep_queue()
891 complete = isp1760_udc_receive(uep, req); in isp1760_ep_queue()
895 __func__, uep->addr); in isp1760_ep_queue()
906 isp1760_udc_request_complete(uep, req, 0); in isp1760_ep_queue()
914 struct isp1760_ep *uep = ep_to_udc_ep(ep); in isp1760_ep_dequeue() local
915 struct isp1760_udc *udc = uep->udc; in isp1760_ep_dequeue()
918 dev_dbg(uep->udc->isp->dev, "%s(ep%02x)\n", __func__, uep->addr); in isp1760_ep_dequeue()
922 if (req->ep != uep) in isp1760_ep_dequeue()
932 isp1760_udc_request_complete(uep, req, -ECONNRESET); in isp1760_ep_dequeue()
936 static int __isp1760_ep_set_halt(struct isp1760_ep *uep, bool stall, bool wedge) in __isp1760_ep_set_halt() argument
938 struct isp1760_udc *udc = uep->udc; in __isp1760_ep_set_halt()
941 if (!uep->addr) { in __isp1760_ep_set_halt()
954 if (uep->addr && !uep->desc) { in __isp1760_ep_set_halt()
956 uep->addr); in __isp1760_ep_set_halt()
960 if (uep->addr & USB_DIR_IN) { in __isp1760_ep_set_halt()
962 if (!list_empty(&uep->queue)) { in __isp1760_ep_set_halt()
965 uep->addr); in __isp1760_ep_set_halt()
970 ret = __isp1760_udc_set_halt(uep, stall); in __isp1760_ep_set_halt()
974 if (!uep->addr) { in __isp1760_ep_set_halt()
984 uep->wedged = true; in __isp1760_ep_set_halt()
986 uep->wedged = false; in __isp1760_ep_set_halt()
993 struct isp1760_ep *uep = ep_to_udc_ep(ep); in isp1760_ep_set_halt() local
997 dev_dbg(uep->udc->isp->dev, "%s: %s halt on ep%02x\n", __func__, in isp1760_ep_set_halt()
998 value ? "set" : "clear", uep->addr); in isp1760_ep_set_halt()
1000 spin_lock_irqsave(&uep->udc->lock, flags); in isp1760_ep_set_halt()
1001 ret = __isp1760_ep_set_halt(uep, value, false); in isp1760_ep_set_halt()
1002 spin_unlock_irqrestore(&uep->udc->lock, flags); in isp1760_ep_set_halt()
1009 struct isp1760_ep *uep = ep_to_udc_ep(ep); in isp1760_ep_set_wedge() local
1013 dev_dbg(uep->udc->isp->dev, "%s: set wedge on ep%02x)\n", __func__, in isp1760_ep_set_wedge()
1014 uep->addr); in isp1760_ep_set_wedge()
1016 spin_lock_irqsave(&uep->udc->lock, flags); in isp1760_ep_set_wedge()
1017 ret = __isp1760_ep_set_halt(uep, true, true); in isp1760_ep_set_wedge()
1018 spin_unlock_irqrestore(&uep->udc->lock, flags); in isp1760_ep_set_wedge()
1025 struct isp1760_ep *uep = ep_to_udc_ep(ep); in isp1760_ep_fifo_flush() local
1026 struct isp1760_udc *udc = uep->udc; in isp1760_ep_fifo_flush()
1031 isp1760_udc_select_ep(uep); in isp1760_ep_fifo_flush()