FreeBSD/sys/mips/cavium/usb/octusb.c
/*------------------------------------------------------------------------*
 *	octusb_device_done - OCTUSB transfers done code
 *
 * NOTE: This function can be called more than one time in a row.
 *------------------------------------------------------------------------*/
OCTUSB transfers done code
NOTE: This function can be called more than one time in a row.
OCTUSB transfers done code NOTE : This function can be called more than one time in a row .
static void
octusb_device_done(struct usb_xfer *xfer, usb_error_t error)
{
	USB_BUS_LOCK_ASSERT(xfer->xroot->bus, MA_OWNED);
	DPRINTFN(2, "xfer=%p, endpoint=%p, error=%d\n",
	    xfer, xfer->endpoint, error);
	if ((xfer->flags_int.control_act == 0) || (error != 0)) {
		struct octusb_td *td;
		td = xfer->td_start[0];
		octusb_host_free_endpoint(td);
	}
	usbd_transfer_done(xfer, error);
}
static void octusb_device_done ( struct usb_xfer * xfer , usb_error_t error ) { USB_BUS_LOCK_ASSERT ( xfer -> xroot -> bus , MA_OWNED ) ; DPRINTFN ( 2 , " \n " , xfer , xfer -> endpoint , error ) ; if ( ( xfer -> flags_int . control_act == 0 ) || ( error != 0 ) ) { struct octusb_td * td ; td = xfer -> td_start [ 0 ] ; octusb_host_free_endpoint ( td ) ; } usbd_transfer_done ( xfer , error ) ; }
octusb_device_done - OCTUSB transfers done code
 NOTE: This function can be called more than one time in a row.
octusb_device_done - OCTUSB transfers done code NOTE : This function can be called more than one time in a row .
/*
	 * 1) Free any endpoints.
	 * 2) Control transfers can be split and we should not re-open
	 *    the data pipe between transactions unless there is an error.
	 */ /* dequeue transfer and start next transfer */