summaryrefslogtreecommitdiff
path: root/nuttx/drivers/usbdev
diff options
context:
space:
mode:
authorpatacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3>2012-01-25 22:20:48 +0000
committerpatacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3>2012-01-25 22:20:48 +0000
commit4bd61ddb8690c76e3e1424cf16a43c678b0666da (patch)
treeafb4093dff7dc358f46f86bc70ab9781e3ee2abc /nuttx/drivers/usbdev
parent84ebd8284c5c2f190ee154e0124fc5ddccbb0361 (diff)
downloadpx4-nuttx-4bd61ddb8690c76e3e1424cf16a43c678b0666da.tar.gz
px4-nuttx-4bd61ddb8690c76e3e1424cf16a43c678b0666da.tar.bz2
px4-nuttx-4bd61ddb8690c76e3e1424cf16a43c678b0666da.zip
Fixes on reverification of USB mass storage class
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@4336 42af7a65-404d-4744-a932-0658087f49c3
Diffstat (limited to 'nuttx/drivers/usbdev')
-rw-r--r--nuttx/drivers/usbdev/cdcacm.c40
-rw-r--r--nuttx/drivers/usbdev/msc_descriptors.c8
2 files changed, 43 insertions, 5 deletions
diff --git a/nuttx/drivers/usbdev/cdcacm.c b/nuttx/drivers/usbdev/cdcacm.c
index c203d5415..aeea60ce8 100644
--- a/nuttx/drivers/usbdev/cdcacm.c
+++ b/nuttx/drivers/usbdev/cdcacm.c
@@ -2049,7 +2049,6 @@ errout_with_class:
int cdcser_initialize(int minor)
{
FAR struct usbdevclass_driver_s *drvr;
- FAR struct cdcser_dev_s *priv;
int ret;
/* Get an instance of the serial driver class object */
@@ -2068,3 +2067,42 @@ int cdcser_initialize(int minor)
return ret;
}
#endif
+
+/****************************************************************************
+ * Name: cdcser_uninitialize
+ *
+ * Description:
+ * Un-initialize the USB storage class driver
+ *
+ * Input Parameters:
+ * handle - The handle returned by a previous call to cdcser_configure().
+ *
+ * Returned Value:
+ * None
+ *
+ ****************************************************************************/
+
+#ifndef CONFIG_CDCSER_COMPOSITE
+void cdcser_uninitialize(FAR struct usbdevclass_driver_s *classdev)
+{
+ FAR struct cdcser_driver_s *drvr = (FAR struct cdcser_driver_s *)classdev;
+ FAR struct cdcser_dev_s *priv = drvr->dev;
+
+ /* Unbind the class (if still bound) */
+
+ if (priv->usbdev)
+ {
+ cdcser_unbind(Fpriv->usbdev);
+ }
+
+ /* Unregister the driver (unless we are a part of a composite device */
+
+#ifndef CONFIG_CDCSER_COMPOSITE
+ usbdev_unregister(&alloc->drvr.drvr);
+#endif
+
+ /* And free the driver structure */
+
+ kfree(priv);
+}
+#endif
diff --git a/nuttx/drivers/usbdev/msc_descriptors.c b/nuttx/drivers/usbdev/msc_descriptors.c
index 467eaced8..0c86eaba9 100644
--- a/nuttx/drivers/usbdev/msc_descriptors.c
+++ b/nuttx/drivers/usbdev/msc_descriptors.c
@@ -213,7 +213,7 @@ static const struct usb_epdesc_s g_hsepbulkindesc =
/* Strings ******************************************************************/
#ifndef CONFIG_USBMSC_COMPOSITE
-const char g_msccendorstr[] = CONFIG_USBMSC_VENDORSTR;
+const char g_mscvendorstr[] = CONFIG_USBMSC_VENDORSTR;
const char g_mscproductstr[] = CONFIG_USBMSC_PRODUCTSTR;
const char g_mscserialstr[] = CONFIG_USBMSC_SERIALSTR;
#endif
@@ -256,15 +256,15 @@ int usbmsc_mkstrdesc(uint8_t id, struct usb_strdesc_s *strdesc)
}
case USBMSC_MANUFACTURERSTRID:
- str = g_vendorstr;
+ str = g_mscvendorstr;
break;
case USBMSC_PRODUCTSTRID:
- str = g_productstr;
+ str = g_mscproductstr;
break;
case USBMSC_SERIALSTRID:
- str = g_serialstr;
+ str = g_mscserialstr;
break;
#endif