X-Git-Url: https://codewiz.org/gitweb?a=blobdiff_plain;f=bertos%2Fcpu%2Fcortex-m3%2Fdrv%2Fusb_stm32.c;h=794aa8916f2e050461d5858b2972ca36964170e0;hb=039caa9fe6ff6a0a0aa1b0bc7644e41e1a1c0689;hp=879b2d6f0a828bd5724fe8dd6839e9c6fbc2cf35;hpb=9cf2fc1005bdee354b8b79ab96302afdbe1dcb53;p=bertos.git diff --git a/bertos/cpu/cortex-m3/drv/usb_stm32.c b/bertos/cpu/cortex-m3/drv/usb_stm32.c index 879b2d6f..794aa891 100644 --- a/bertos/cpu/cortex-m3/drv/usb_stm32.c +++ b/bertos/cpu/cortex-m3/drv/usb_stm32.c @@ -117,7 +117,7 @@ static const UsbEndpointDesc USB_CtrlEpDescr1 = static UsbCtrlRequest setup_packet; /* USB device controller: max supported interfaces */ -#define USB_MAX_INTERFACE 1 +#define USB_MAX_INTERFACE CONFIG_USB_INTERFACE_MAX /* USB device controller features */ #define STM32_UDC_FEATURE_SELFPOWERED BV(0) @@ -814,22 +814,27 @@ static int usb_ep_configure(const UsbEndpointDesc *epd, bool enable) switch (ep_hw->type) { case USB_ENDPOINT_XFER_CONTROL: - LOG_INFO("EP%d: CONTROL IN\n", EP >> 1); + LOG_INFO("EP%d: CONTROL %s\n", EP >> 1, + EP & 1 ? "IN" : "OUT"); ep_ctrl_set_ep_type(hw, EP_CTRL); ep_ctrl_set_ep_kind(hw, 0); break; case USB_ENDPOINT_XFER_INT: - LOG_INFO("EP%d: INTERRUPT IN\n", EP >> 1); + LOG_INFO("EP%d: INTERRUPT %s\n", EP >> 1, + EP & 1 ? "IN" : "OUT"); ep_ctrl_set_ep_type(hw, EP_INTERRUPT); ep_ctrl_set_ep_kind(hw, 0); break; case USB_ENDPOINT_XFER_BULK: - LOG_INFO("EP%d: BULK IN\n", EP >> 1); + LOG_INFO("EP%d: BULK %s\n", EP >> 1, + EP & 1 ? "IN" : "OUT"); ep_ctrl_set_ep_type(hw, EP_BULK); ep_ctrl_set_ep_kind(hw, 0); break; case USB_ENDPOINT_XFER_ISOC: - LOG_ERR("EP%d: ISOCHRONOUS IN: not supported\n", EP >> 1); + LOG_ERR("EP%d: ISOCHRONOUS %s: not supported\n", + EP >> 1, + EP & 1 ? "IN" : "OUT"); /* Fallback to default */ default: ASSERT(0); @@ -1490,11 +1495,8 @@ static void usb_get_descriptor_handler(void) if ((setup_packet.mRequestType & USB_RECIP_MASK) == USB_RECIP_DEVICE) usb_get_descriptor(); - /* Getting descriptor for a device is a standard request */ - else if ((setup_packet.mRequestType & USB_DIR_MASK) == USB_DIR_IN) - usb_event_handler(usb_dev); else - ep_cnfg[CTRL_ENP_OUT].status = STALLED; + usb_event_handler(usb_dev); } /* USB setup packet: SET_ADDRESS handler */