FreeBSD/sys/dev/usb/controller/uss820dci.c
/*------------------------------------------------------------------------*
 *	uss820dci_device_done
 *
 * NOTE: this function can be called more than one time on the
 * same USB transfer!
 *------------------------------------------------------------------------*/
uss820dci_device_done
NOTE: this function can be called more than one time on the
same USB transfer!
uss820dci_device_done NOTE : this function can be called more than one time on the same USB transfer!
static void
uss820dci_device_done(struct usb_xfer *xfer, usb_error_t error)
{
	struct uss820dci_softc *sc = USS820_DCI_BUS2SC(xfer->xroot->bus);
	USB_BUS_LOCK_ASSERT(xfer->xroot->bus, MA_OWNED);
	DPRINTFN(2, "xfer=%p, endpoint=%p, error=%d\n",
	    xfer, xfer->endpoint, error);
	USB_BUS_SPIN_LOCK(&sc->sc_bus);
	if (xfer->flags_int.usb_mode == USB_MODE_DEVICE) {
		uss820dci_intr_set(xfer, 0);
	}
	usbd_transfer_done(xfer, error);
	USB_BUS_SPIN_UNLOCK(&sc->sc_bus);
}
static void uss820dci_device_done ( struct usb_xfer * xfer , usb_error_t error ) { struct uss820dci_softc * sc = USS820_DCI_BUS2SC ( xfer -> xroot -> bus ) ; USB_BUS_LOCK_ASSERT ( xfer -> xroot -> bus , MA_OWNED ) ; DPRINTFN ( 2 , " \n " , xfer , xfer -> endpoint , error ) ; USB_BUS_SPIN_LOCK ( & sc -> sc_bus ) ; if ( xfer -> flags_int . usb_mode == USB_MODE_DEVICE ) { uss820dci_intr_set ( xfer , 0 ) ; } usbd_transfer_done ( xfer , error ) ; USB_BUS_SPIN_UNLOCK ( & sc -> sc_bus ) ; }
uss820dci_device_done
 NOTE: this function can be called more than one time on the
 same USB transfer!
uss820dci_device_done NOTE : this function can be called more than one time on the same USB transfer!
/* dequeue transfer and start next transfer */