UPL_ENDPT_RX
sc->sc_ed[UPL_ENDPT_RX] = ed->bEndpointAddress;
if (sc->sc_ed[UPL_ENDPT_RX] == 0 || sc->sc_ed[UPL_ENDPT_TX] == 0 ||
sc->sc_ep[UPL_ENDPT_RX] != NULL ||
usbd_clear_endpoint_stall_async(sc->sc_ep[UPL_ENDPT_RX]);
usbd_setup_xfer(c->upl_xfer, sc->sc_ep[UPL_ENDPT_RX],
if (sc->sc_ep[UPL_ENDPT_RX] == NULL) {
err = usbd_open_pipe(sc->sc_iface, sc->sc_ed[UPL_ENDPT_RX],
USBD_EXCLUSIVE_USE, &sc->sc_ep[UPL_ENDPT_RX]);
usbd_setup_xfer(c->upl_xfer, sc->sc_ep[UPL_ENDPT_RX],
usbd_clear_endpoint_stall_async(sc->sc_ep[UPL_ENDPT_RX]);
if (sc->sc_ep[UPL_ENDPT_RX] != NULL) {
err = usbd_close_pipe(sc->sc_ep[UPL_ENDPT_RX]);
sc->sc_ep[UPL_ENDPT_RX] = NULL;