This is an automated email from the ASF dual-hosted git repository. xiaoxiang pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/nuttx.git
commit 1a69d3c6ee8d868086b04679a304ccdd50f55e35 Author: dongjiuzhu1 <[email protected]> AuthorDate: Wed Aug 2 12:19:59 2023 +0800 cdcacm: Add cdcacm bulkout request buffer config Signed-off-by: dongjiuzhu1 <[email protected]> --- drivers/usbdev/Kconfig | 8 ++++++++ drivers/usbdev/cdcacm.c | 7 ++++++- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/drivers/usbdev/Kconfig b/drivers/usbdev/Kconfig index 49dd30472a..39ebe33ed8 100644 --- a/drivers/usbdev/Kconfig +++ b/drivers/usbdev/Kconfig @@ -649,6 +649,14 @@ config CDCACM_NWRREQS ---help--- The number of write/read requests that can be in flight +config CDCACM_BULKOUT_REQLEN + int "Size of one read request buffer" + default 512 if USBDEV_DUALSPEED + default 256 if !USBDEV_DUALSPEED + ---help--- + Read buffer size maybe larger than the maxpacket size. Increasing + the buffer size can effectively improve the transmission speed. + config CDCACM_BULKIN_REQLEN int "Size of one write request buffer" default 768 if USBDEV_DUALSPEED diff --git a/drivers/usbdev/cdcacm.c b/drivers/usbdev/cdcacm.c index ca7e6ea032..d0b8365d2a 100644 --- a/drivers/usbdev/cdcacm.c +++ b/drivers/usbdev/cdcacm.c @@ -626,7 +626,7 @@ static int cdcacm_requeue_rdrequest(FAR struct cdcacm_dev_s *priv, /* Requeue the read request */ ep = priv->epbulkout; - req->len = ep->maxpacket; + req->len = MAX(CONFIG_CDCACM_BULKOUT_REQLEN, ep->maxpacket); ret = EP_SUBMIT(ep, req); if (ret != OK) { @@ -1334,6 +1334,11 @@ static int cdcacm_bind(FAR struct usbdevclass_driver_s *driver, reqlen = CONFIG_CDCACM_EPBULKOUT_FSSIZE; } + if (CONFIG_CDCACM_BULKOUT_REQLEN > reqlen) + { + reqlen = CONFIG_CDCACM_BULKOUT_REQLEN; + } + for (i = 0; i < CONFIG_CDCACM_NRDREQS; i++) { rdcontainer = &priv->rdreqs[i];
