diff --git a/src/stm32/cdcacm.c b/src/stm32/cdcacm.c index 0be7cbf..5c61eb7 100644 --- a/src/stm32/cdcacm.c +++ b/src/stm32/cdcacm.c @@ -118,7 +118,7 @@ static const struct { .bFunctionLength = sizeof(struct usb_cdc_acm_descriptor), .bDescriptorType = CS_INTERFACE, .bDescriptorSubtype = USB_CDC_TYPE_ACM, - .bmCapabilities = 0, + .bmCapabilities = 2, /* SET_LINE_CODING supported */ }, .cdc_union = { .bFunctionLength = sizeof(struct usb_cdc_union_descriptor), @@ -222,7 +222,7 @@ static const struct { .bFunctionLength = sizeof(struct usb_cdc_acm_descriptor), .bDescriptorType = CS_INTERFACE, .bDescriptorSubtype = USB_CDC_TYPE_ACM, - .bmCapabilities = 0, + .bmCapabilities = 2, /* SET_LINE_CODING supported*/ }, .cdc_union = { .bFunctionLength = sizeof(struct usb_cdc_union_descriptor), @@ -399,6 +399,9 @@ static int cdcacm_control_request(struct usb_setup_data *req, uint8_t **buf, if(*len < sizeof(struct usb_cdc_line_coding)) return 0; + if(req->wIndex == 0) + return 1; /* Ignore on GDB Port */ + if(req->wIndex != 2) return 0;