You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nuttx.apache.org by ac...@apache.org on 2020/01/10 10:03:36 UTC
[incubator-nuttx] 02/21: usb over ethernet working over usb 2.0 hs
This is an automated email from the ASF dual-hosted git repository.
acassis pushed a commit to branch pr68
in repository https://gitbox.apache.org/repos/asf/incubator-nuttx.git
commit 7ffb03a11a57ac3e18377335dc76ea956e3a40d7
Author: Adam Feuer <ad...@starcat.io>
AuthorDate: Wed Jan 8 17:34:24 2020 -0800
usb over ethernet working over usb 2.0 hs
---
drivers/usbdev/cdcecm.c | 20 ++++++++++++++++----
1 file changed, 16 insertions(+), 4 deletions(-)
diff --git a/drivers/usbdev/cdcecm.c b/drivers/usbdev/cdcecm.c
index 8c0d4f3..b16b18c 100644
--- a/drivers/usbdev/cdcecm.c
+++ b/drivers/usbdev/cdcecm.c
@@ -1299,7 +1299,9 @@ static int cdcecm_setconfig(FAR struct cdcecm_driver_s *self, uint8_t config)
self->epint->priv = self;
- cdcecm_mkepdesc(CDCECM_EP_BULKIN_IDX, &epdesc, &self->devinfo, false);
+ // af
+ bool is_high_speed = (self->usbdev.speed == USB_SPEED_HIGH);
+ cdcecm_mkepdesc(CDCECM_EP_BULKIN_IDX, &epdesc, &self->devinfo, is_high_speed);
ret = EP_CONFIGURE(self->epbulkin, &epdesc, false);
if (ret < 0)
@@ -1309,7 +1311,8 @@ static int cdcecm_setconfig(FAR struct cdcecm_driver_s *self, uint8_t config)
self->epbulkin->priv = self;
- cdcecm_mkepdesc(CDCECM_EP_BULKOUT_IDX, &epdesc, &self->devinfo, false);
+ // af
+ cdcecm_mkepdesc(CDCECM_EP_BULKOUT_IDX, &epdesc, &self->devinfo, is_high_speed);
ret = EP_CONFIGURE(self->epbulkout, &epdesc, true);
if (ret < 0)
@@ -1697,11 +1700,19 @@ static int16_t cdcecm_mkcfgdesc(FAR uint8_t *desc,
len += USB_SIZEOF_IFDESC;
+ // af
+ #ifdef CONFIG_USBDEV_DUALSPEED
+ bool is_high_speed = USB_SPEED_HIGH;
+ #else
+ bool is_high_speed = USB_SPEED_LOW;
+ #endif
+
if (desc)
{
FAR struct usb_epdesc_s *epdesc = (FAR struct usb_epdesc_s *)desc;
- cdcecm_mkepdesc(CDCECM_EP_BULKIN_IDX, epdesc, devinfo, false);
+ // af
+ cdcecm_mkepdesc(CDCECM_EP_BULKIN_IDX, epdesc, devinfo, is_high_speed);
desc += USB_SIZEOF_EPDESC;
}
@@ -1711,7 +1722,8 @@ static int16_t cdcecm_mkcfgdesc(FAR uint8_t *desc,
{
FAR struct usb_epdesc_s *epdesc = (FAR struct usb_epdesc_s *)desc;
- cdcecm_mkepdesc(CDCECM_EP_BULKOUT_IDX, epdesc, devinfo, false);
+ // af
+ cdcecm_mkepdesc(CDCECM_EP_BULKOUT_IDX, epdesc, devinfo, is_high_speed);
desc += USB_SIZEOF_EPDESC;
}