/* Handle TX transaction on non-ISO endpoint. The ep argument is a physical endpoint number for a non-ISO IN endpoint in the range 16 to 30.  */
static void spear_udc_epn_tx(int ep)
/* Handle TX transaction on non-ISO endpoint. The ep argument is a physical endpoint number for a non-ISO IN endpoint in the range 16 to 30.  */
static void spear_udc_epn_tx(int ep)
{
	struct usb_endpoint_instance *endpoint = spear_find_ep(ep);
	if (endpoint && endpoint->tx_urb && endpoint->tx_urb->actual_length) {
		if (endpoint->last == endpoint->tx_packetSize) {
			writel(0x0, &inep_regs_p[ep].write_done);
		}
		usbd_tx_complete(endpoint);
		if (endpoint->tx_urb && endpoint->tx_urb->actual_length) {
			spear_write_noniso_tx_fifo(endpoint);
			writel(0x0, &inep_regs_p[ep].write_done);
		} else if (endpoint->tx_urb
			   && (endpoint->tx_urb->actual_length == 0)) {
		}
	}
}