Lines Matching full:endpoint
160 int udc_endpoint_write(struct usb_endpoint_instance *endpoint) in udc_endpoint_write() argument
162 struct urb *urb = endpoint->tx_urb; in udc_endpoint_write()
169 if (!endpoint) { in udc_endpoint_write()
170 usberr("Error input: endpoint\n"); in udc_endpoint_write()
174 ep_num = endpoint->endpoint_address & USB_ENDPOINT_NUMBER_MASK; in udc_endpoint_write()
176 remaining_packet = urb->actual_length - endpoint->sent; in udc_endpoint_write()
178 if (endpoint->tx_packetSize < remaining_packet) in udc_endpoint_write()
179 length = endpoint->tx_packetSize; in udc_endpoint_write()
184 // ep_num, length, endpoint->sent, urb->actual_length); in udc_endpoint_write()
187 data += endpoint->sent; in udc_endpoint_write()
195 endpoint->last = length; in udc_endpoint_write()
208 static void aspeed_udc_ep_handle(struct usb_endpoint_instance *endpoint) in aspeed_udc_ep_handle() argument
214 ep_isout = (endpoint->endpoint_address & USB_ENDPOINT_DIR_MASK) == in aspeed_udc_ep_handle()
216 ep_num = endpoint->endpoint_address & USB_ENDPOINT_NUMBER_MASK; in aspeed_udc_ep_handle()
222 usbd_rcv_complete(endpoint, nbytes, 0); in aspeed_udc_ep_handle()
228 usbd_tx_complete(endpoint); in aspeed_udc_ep_handle()
232 static void aspeed_udc_ep0_rx(struct usb_endpoint_instance *endpoint) in aspeed_udc_ep0_rx() argument
237 if (!endpoint) { in aspeed_udc_ep0_rx()
238 usberr("Error input: endpoint\n"); in aspeed_udc_ep0_rx()
242 urb = endpoint->rcv_urb; in aspeed_udc_ep0_rx()
255 static void aspeed_udc_ep0_out(struct usb_endpoint_instance *endpoint) in aspeed_udc_ep0_out() argument
271 static void aspeed_udc_ep0_tx(struct usb_endpoint_instance *endpoint) in aspeed_udc_ep0_tx() argument
276 if (!endpoint) { in aspeed_udc_ep0_tx()
277 usberr("Error input: endpoint\n"); in aspeed_udc_ep0_tx()
281 urb = endpoint->tx_urb; in aspeed_udc_ep0_tx()
289 urb->actual_length, endpoint->sent); in aspeed_udc_ep0_tx()
291 last = min((int)(urb->actual_length - endpoint->sent), in aspeed_udc_ep0_tx()
292 (int)endpoint->tx_packetSize); in aspeed_udc_ep0_tx()
295 u8 *cp = urb->buffer + endpoint->sent; in aspeed_udc_ep0_tx()
308 endpoint->sent, endpoint->tx_packetSize, last); in aspeed_udc_ep0_tx()
317 endpoint->last = last; in aspeed_udc_ep0_tx()
320 void aspeed_udc_ep0_in(struct usb_endpoint_instance *endpoint) in aspeed_udc_ep0_in() argument
345 endpoint->sent += endpoint->last; in aspeed_udc_ep0_in()
354 * multiple of the packet size endpoint->tx_packetSize. in aspeed_udc_ep0_in()
356 if (endpoint->sent == ep0_urb->actual_length && in aspeed_udc_ep0_in()
358 endpoint->last != endpoint->tx_packetSize)) { in aspeed_udc_ep0_in()
362 endpoint->rcv_urb = ep0_urb; in aspeed_udc_ep0_in()
363 endpoint->sent = 0; in aspeed_udc_ep0_in()
364 aspeed_udc_ep0_rx(endpoint); in aspeed_udc_ep0_in()
374 aspeed_udc_ep0_tx(endpoint); in aspeed_udc_ep0_in()
379 static void aspeed_udc_setup_handle(struct usb_endpoint_instance *endpoint) in aspeed_udc_setup_handle() argument
419 endpoint->rcv_urb = ep0_urb; in aspeed_udc_setup_handle()
420 endpoint->sent = 0; in aspeed_udc_setup_handle()
421 aspeed_udc_ep0_rx(endpoint); in aspeed_udc_setup_handle()
438 endpoint->tx_urb = ep0_urb; in aspeed_udc_setup_handle()
439 endpoint->sent = 0; in aspeed_udc_setup_handle()
440 aspeed_udc_ep0_tx(endpoint); in aspeed_udc_setup_handle()
549 * Suspend sending of NAK tokens for DATA OUT tokens on a given endpoint.
550 * Switch off NAKing on this endpoint to accept more data output from host.
567 /* Associate a physical endpoint with endpoint instance */
569 struct usb_endpoint_instance *endpoint) in udc_setup_ep() argument
575 usbdbg("setting up endpoint id: %d", id); in udc_setup_ep()
577 if (!endpoint) { in udc_setup_ep()
578 usberr("Error: invalid endpoint"); in udc_setup_ep()
582 ep_num = endpoint->endpoint_address & USB_ENDPOINT_NUMBER_MASK; in udc_setup_ep()
593 ep_addr = endpoint->endpoint_address; in udc_setup_ep()
595 ep_type = ep_isout ? endpoint->rcv_attributes : endpoint->tx_attributes; in udc_setup_ep()
596 ep_size = ep_isout ? endpoint->rcv_packetSize : endpoint->tx_packetSize; in udc_setup_ep()
643 ast_ep_write(ep_reg, endpoint->rcv_urb->buffer, AST_EP_DMA_BUFF); in udc_setup_ep()
647 ast_ep_write(ep_reg, endpoint->tx_urb->buffer, AST_EP_DMA_BUFF); in udc_setup_ep()