Lines Matching refs:endpoint
54 static int udc_write_urb(struct usb_endpoint_instance *endpoint) in udc_write_urb() argument
56 struct urb *urb = endpoint->tx_urb; in udc_write_urb()
57 int ep_num = endpoint->endpoint_address & USB_ENDPOINT_NUMBER_MASK; in udc_write_urb()
66 n = min_t(unsigned int, urb->actual_length - endpoint->sent, in udc_write_urb()
67 endpoint->tx_packetSize); in udc_write_urb()
76 endpoint->sent, endpoint->tx_packetSize, endpoint->last); in udc_write_urb()
79 is_short = n != endpoint->tx_packetSize; in udc_write_urb()
83 udc_dump_buffer("urb write", data8 + endpoint->sent, n); in udc_write_urb()
90 writel(data32[endpoint->sent / 4 + i], UDCDN(ep_num)); in udc_write_urb()
93 writeb(data8[endpoint->sent + w * 4 + i], UDCDN(ep_num)); in udc_write_urb()
109 endpoint->last = n; in udc_write_urb()
112 usbd_tx_complete(endpoint); in udc_write_urb()
114 endpoint->sent += n; in udc_write_urb()
115 endpoint->last -= n; in udc_write_urb()
118 if (endpoint->sent >= urb->actual_length) { in udc_write_urb()
120 endpoint->sent = 0; in udc_write_urb()
121 endpoint->last = 0; in udc_write_urb()
124 if ((endpoint->sent >= urb->actual_length) && (!ep_num)) { in udc_write_urb()
135 static int udc_read_urb(struct usb_endpoint_instance *endpoint) in udc_read_urb() argument
137 struct urb *urb = endpoint->rcv_urb; in udc_read_urb()
138 int ep_num = endpoint->endpoint_address & USB_ENDPOINT_NUMBER_MASK; in udc_read_urb()
147 endpoint->rcv_packetSize); in udc_read_urb()
155 usbdbg("n %d%s", n, n != endpoint->rcv_packetSize ? "-s" : ""); in udc_read_urb()
160 usbd_rcv_complete(endpoint, n, 0); in udc_read_urb()
202 static void udc_handle_ep0(struct usb_endpoint_instance *endpoint) in udc_handle_ep0() argument
292 endpoint->tx_urb = ep0_urb; in udc_handle_ep0()
293 endpoint->sent = 0; in udc_handle_ep0()
296 if (udc_write_urb(endpoint) < 0) in udc_handle_ep0()
352 if (udc_write_urb(endpoint) < 0) { in udc_handle_ep0()
370 static void udc_handle_ep(struct usb_endpoint_instance *endpoint) in udc_handle_ep() argument
372 int ep_addr = endpoint->endpoint_address; in udc_handle_ep()
381 udc_read_urb(endpoint); in udc_handle_ep()
383 udc_write_urb(endpoint); in udc_handle_ep()
405 struct usb_endpoint_instance *endpoint; in udc_irq() local
451 endpoint = udc_device->bus->endpoint_array; in udc_irq()
453 ep_num = (endpoint[i].endpoint_address) & in udc_irq()
462 udc_handle_ep(&endpoint[i]); in udc_irq()
517 int udc_endpoint_write(struct usb_endpoint_instance *endpoint) in udc_endpoint_write() argument
519 return udc_write_urb(endpoint); in udc_endpoint_write()
524 struct usb_endpoint_instance *endpoint) in udc_setup_ep() argument
532 if (!endpoint) { in udc_setup_ep()
537 ep_num = endpoint->endpoint_address & USB_ENDPOINT_NUMBER_MASK; in udc_setup_ep()
556 ep_addr = endpoint->endpoint_address; in udc_setup_ep()
559 ep_type = ep_isout ? endpoint->rcv_attributes : endpoint->tx_attributes; in udc_setup_ep()
560 ep_size = ep_isout ? endpoint->rcv_packetSize : endpoint->tx_packetSize; in udc_setup_ep()