CDC ACM fixes

git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@3981 42af7a65-404d-4744-a932-0658087f49c3
This commit is contained in:
patacongo
2011-09-27 17:05:24 +00:00
parent ea30c3816b
commit 884f9e2533
5 changed files with 45 additions and 16 deletions
+5 -2
View File
@@ -4816,10 +4816,13 @@ build
Default 4. Default 4.
</li> </li>
<li> <li>
<code>CONFIG_CDCSER_VENDORID</code> and <code>CONFIG_CDCSER_VENDORSTR</code>: The vendor ID code/string. Default 0x03eb and &quot;NuttX&quot; <code>CONFIG_CDCSER_VENDORID</code> and <code>CONFIG_CDCSER_VENDORSTR</code>: The vendor ID code/string. Default 0x0525 and &quot;NuttX,&quot;
0x0525 is the Netchip vendor and should not be used in any products.
This default VID was selected for compatibility with the Linux CDC ACM default VID.
</li> </li>
<li> <li>
<code>CONFIG_CDCSER_PRODUCTID</code> and <code>CONFIG_CDCSER_PRODUCTSTR</code>: The product ID code/string. Default 0x204b and &quot;CDC/ACM Serial&quot; <code>CONFIG_CDCSER_PRODUCTID</code> and <code>CONFIG_CDCSER_PRODUCTSTR</code>: The product ID code/string. Default 0xa4a7 and &quot;CDC/ACM Serial&quot;
0xa4a7 was selected for compatibility with the Linux CDC ACM default PID.
</li> </li>
<li> <li>
<code>CONFIG_CDCSER_RXBUFSIZE</code> and <code>CONFIG_CDCSER_TXBUFSIZE</code>: Size of the serial receive/transmit buffers. Default 256. <code>CONFIG_CDCSER_RXBUFSIZE</code> and <code>CONFIG_CDCSER_TXBUFSIZE</code>: Size of the serial receive/transmit buffers. Default 256.
+7 -2
View File
@@ -982,9 +982,14 @@ defconfig -- This is a configuration file similar to the Linux
CONFIG_CDCSER_NWRREQS includes write requests used for both the CONFIG_CDCSER_NWRREQS includes write requests used for both the
interrupt and bulk IN endpoints. Default 4. interrupt and bulk IN endpoints. Default 4.
CONFIG_CDCSER_VENDORID and CONFIG_CDCSER_VENDORSTR CONFIG_CDCSER_VENDORID and CONFIG_CDCSER_VENDORSTR
The vendor ID code/string. Default 0x03eb and "NuttX" The vendor ID code/string. Default 0x0525 and "NuttX"
0x0525 is the Netchip vendor and should not be used in any
products. This default VID was selected for compatibility with
the Linux CDC ACM default VID.
CONFIG_CDCSER_PRODUCTID and CONFIG_CDCSER_PRODUCTSTR CONFIG_CDCSER_PRODUCTID and CONFIG_CDCSER_PRODUCTSTR
The product ID code/string. Default 0x204b and "CDC/ACM Serial" The product ID code/string. Default 0xa4a7 and "CDC/ACM Serial"
0xa4a7 was selected for compatibility with the Linux CDC ACM
default PID.
CONFIG_CDCSER_RXBUFSIZE and CONFIG_CDCSER_TXBUFSIZE CONFIG_CDCSER_RXBUFSIZE and CONFIG_CDCSER_TXBUFSIZE
Size of the serial receive/transmit buffers. Default 256. Size of the serial receive/transmit buffers. Default 256.
+7 -2
View File
@@ -706,9 +706,14 @@ CONFIG_USBSER_TXBUFSIZE=512
# The number of write/read requests that can be in flight. # The number of write/read requests that can be in flight.
# Default 256. # Default 256.
# CONFIG_CDCSER_VENDORID and CONFIG_CDCSER_VENDORSTR # CONFIG_CDCSER_VENDORID and CONFIG_CDCSER_VENDORSTR
# The vendor ID code/string. Default 0x03eb and "NuttX" # The vendor ID code/string. Default 0x0525 and "NuttX"
# 0x0525 is the Netchip vendor and should not be used in any
# products. This default VID was selected for compatibility with
# the Linux CDC ACM default VID.
# CONFIG_CDCSER_PRODUCTID and CONFIG_CDCSER_PRODUCTSTR # CONFIG_CDCSER_PRODUCTID and CONFIG_CDCSER_PRODUCTSTR
# The product ID code/string. Default 0x204b and "CDC/ACM Serial" # The product ID code/string. Default 0xara7 and "CDC/ACM Serial"
# 0xa4a7 was selected for compatibility with the Linux CDC ACM
# default PID.
# CONFIG_CDCSER_RXBUFSIZE and CONFIG_CDCSER_TXBUFSIZE # CONFIG_CDCSER_RXBUFSIZE and CONFIG_CDCSER_TXBUFSIZE
# Size of the serial receive/transmit buffers. Default 256. # Size of the serial receive/transmit buffers. Default 256.
# #
+13 -4
View File
@@ -338,13 +338,16 @@ static const struct usb_devdesc_s g_devdesc =
CDC_SUBCLASS_NONE, /* subclass */ CDC_SUBCLASS_NONE, /* subclass */
CDC_PROTO_NONE, /* protocol */ CDC_PROTO_NONE, /* protocol */
CONFIG_CDCSER_EP0MAXPACKET, /* maxpacketsize */ CONFIG_CDCSER_EP0MAXPACKET, /* maxpacketsize */
{ LSBYTE(CONFIG_CDCSER_VENDORID), /* vendor */ {
LSBYTE(CONFIG_CDCSER_VENDORID), /* vendor */
MSBYTE(CONFIG_CDCSER_VENDORID) MSBYTE(CONFIG_CDCSER_VENDORID)
}, },
{ LSBYTE(CONFIG_CDCSER_PRODUCTID), /* product */ {
LSBYTE(CONFIG_CDCSER_PRODUCTID), /* product */
MSBYTE(CONFIG_CDCSER_PRODUCTID) MSBYTE(CONFIG_CDCSER_PRODUCTID)
}, },
{ LSBYTE(CDCSER_VERSIONNO), /* device */ {
LSBYTE(CDCSER_VERSIONNO), /* device */
MSBYTE(CDCSER_VERSIONNO) MSBYTE(CDCSER_VERSIONNO)
}, },
CDCSER_MANUFACTURERSTRID, /* imfgr */ CDCSER_MANUFACTURERSTRID, /* imfgr */
@@ -550,7 +553,10 @@ static const struct usb_qualdesc_s g_qualdesc =
{ {
USB_SIZEOF_QUALDESC, /* len */ USB_SIZEOF_QUALDESC, /* len */
USB_DESC_TYPE_DEVICEQUALIFIER, /* type */ USB_DESC_TYPE_DEVICEQUALIFIER, /* type */
{LSBYTE(0x0200), MSBYTE(0x0200) }, /* USB */ { /* usb */
LSBYTE(0x0200),
MSBYTE(0x0200)
},
USB_CLASS_VENDOR_SPEC, /* class */ USB_CLASS_VENDOR_SPEC, /* class */
0, /* subclass */ 0, /* subclass */
0, /* protocol */ 0, /* protocol */
@@ -733,6 +739,9 @@ static inline int usbclass_recvpacket(FAR struct usbser_dev_s *priv,
uint16_t nexthead; uint16_t nexthead;
uint16_t nbytes = 0; uint16_t nbytes = 0;
uvdbg("head=%d tail=%d nrdq=%d reqlen=%d\n",
priv->serdev.recv.head, priv->serdev.recv.tail, priv->nrdq, reqlen);
/* Get the next head index. During the time that RX interrupts are disabled, the /* Get the next head index. During the time that RX interrupts are disabled, the
* the serial driver will be extracting data from the circular buffer and modifying * the serial driver will be extracting data from the circular buffer and modifying
* recv.tail. During this time, we should avoid modifying recv.head; Instead we will * recv.tail. During this time, we should avoid modifying recv.head; Instead we will
+13 -6
View File
@@ -84,9 +84,14 @@
* CONFIG_CDCSER_NWRREQS includes write requests used for both the * CONFIG_CDCSER_NWRREQS includes write requests used for both the
* interrupt and bulk IN endpoints. Default 4. * interrupt and bulk IN endpoints. Default 4.
* CONFIG_CDCSER_VENDORID and CONFIG_CDCSER_VENDORSTR * CONFIG_CDCSER_VENDORID and CONFIG_CDCSER_VENDORSTR
* The vendor ID code/string. Default 0x03eb and "NuttX" * The vendor ID code/string. Default 0x0525 and "NuttX"
* 0x0525 is the Netchip vendor and should not be used in any
* products. This default VID was selected for compatibility with
* the Linux CDC ACM default VID.
* CONFIG_CDCSER_PRODUCTID and CONFIG_CDCSER_PRODUCTSTR * CONFIG_CDCSER_PRODUCTID and CONFIG_CDCSER_PRODUCTSTR
* The product ID code/string. Default 0x204b and "CDC/ACM Serial" * The product ID code/string. Default 0xa4a7 and "CDC/ACM Serial"
* 0xa4a7 was selected for compatibility with the Linux CDC ACM
* default PID.
* CONFIG_CDCSER_RXBUFSIZE and CONFIG_CDCSER_TXBUFSIZE * CONFIG_CDCSER_RXBUFSIZE and CONFIG_CDCSER_TXBUFSIZE
* Size of the serial receive/transmit buffers. Default 256. * Size of the serial receive/transmit buffers. Default 256.
*/ */
@@ -171,14 +176,16 @@
# define CONFIG_CDCSER_TXBUFSIZE 256 # define CONFIG_CDCSER_TXBUFSIZE 256
#endif #endif
/* Vendor and product IDs and strings */ /* Vendor and product IDs and strings. The default is the Linux Netchip
* CDC ACM VID and PID.
*/
#ifndef CONFIG_CDCSER_VENDORID #ifndef CONFIG_CDCSER_VENDORID
# define CONFIG_CDCSER_VENDORID 0x03eb # define CONFIG_CDCSER_VENDORID 0x0525
#endif #endif
#ifndef CONFIG_CDCSER_PRODUCTID #ifndef CONFIG_CDCSER_PRODUCTID
# define CONFIG_CDCSER_PRODUCTID 0x204b # define CONFIG_CDCSER_PRODUCTID 0xa4a7
#endif #endif
#ifndef CONFIG_CDCSER_VENDORSTR #ifndef CONFIG_CDCSER_VENDORSTR
@@ -186,7 +193,7 @@
#endif #endif
#ifndef CONFIG_CDCSER_PRODUCTSTR #ifndef CONFIG_CDCSER_PRODUCTSTR
# define CONFIG_CDCSER_PRODUCTSTR "USBdev Serial" # define CONFIG_CDCSER_PRODUCTSTR "CDC ACM Serial"
#endif #endif
#undef CONFIG_CDCSER_SERIALSTR #undef CONFIG_CDCSER_SERIALSTR