FreeBSD/sys/dev/usb/controller/avr32dci.c
/*------------------------------------------------------------------------*
 *	avr32dci_device_done
 *
 * NOTE: this function can be called more than one time on the
 * same USB transfer!
 *------------------------------------------------------------------------*/
avr32dci_device_done
NOTE: this function can be called more than one time on the
same USB transfer!
avr32dci_device_done NOTE : this function can be called more than one time on the same USB transfer!
static void
avr32dci_device_done(struct usb_xfer *xfer, usb_error_t error)
{
	struct avr32dci_softc *sc = AVR32_BUS2SC(xfer->xroot->bus);
	uint8_t ep_no;
	USB_BUS_LOCK_ASSERT(&sc->sc_bus, MA_OWNED);
	DPRINTFN(9, "xfer=%p, pipe=%p, error=%d\n",
	    xfer, xfer->endpoint, error);
	if (xfer->flags_int.usb_mode == USB_MODE_DEVICE) {
		ep_no = (xfer->endpointno & UE_ADDR);
		avr32dci_mod_ien(sc, 0, AVR32_INT_EPT_INT(ep_no));
		DPRINTFN(15, "disabled interrupts!\n");
	}
	usbd_transfer_done(xfer, error);
}
static void avr32dci_device_done ( struct usb_xfer * xfer , usb_error_t error ) { struct avr32dci_softc * sc = AVR32_BUS2SC ( xfer -> xroot -> bus ) ; uint8_t ep_no ; USB_BUS_LOCK_ASSERT ( & sc -> sc_bus , MA_OWNED ) ; DPRINTFN ( 9 , " \n " , xfer , xfer -> endpoint , error ) ; if ( xfer -> flags_int . usb_mode == USB_MODE_DEVICE ) { ep_no = ( xfer -> endpointno & UE_ADDR ) ; avr32dci_mod_ien ( sc , 0 , AVR32_INT_EPT_INT ( ep_no ) ) ; DPRINTFN ( 15 , " \n " ) ; } usbd_transfer_done ( xfer , error ) ; }
avr32dci_device_done
 NOTE: this function can be called more than one time on the
 same USB transfer!
avr32dci_device_done NOTE : this function can be called more than one time on the same USB transfer!
/* disable endpoint interrupt */ /* dequeue transfer and start next transfer */