USB host CDC/ACM driver requires CONFIG_SERIAL_REMOVABLE

This commit is contained in:
Gregory Nutt
2015-05-11 15:10:41 -06:00
parent 980763be6f
commit 9df6bd0543
3 changed files with 11 additions and 1 deletions
-1
View File
@@ -1126,7 +1126,6 @@ o USB (drivers/usbdev, drivers/usbhost)
the RX reception logic probably should be moved to its own the RX reception logic probably should be moved to its own
dedicated thread. dedicated thread.
Most of these problems are unique to the Olimex LPC1766STK Most of these problems are unique to the Olimex LPC1766STK
DCD; some are probably design problems in the CDC/ACM host DCD; some are probably design problems in the CDC/ACM host
driver. The bottom line is that the host CDC/ACM driver is driver. The bottom line is that the host CDC/ACM driver is
+1
View File
@@ -90,6 +90,7 @@ config USBHOST_CDCACM
default n default n
depends on USBHOST_HAVE_ASYNCH && !USBHOST_BULK_DISABLE && !USBHOST_INT_DISABLE depends on USBHOST_HAVE_ASYNCH && !USBHOST_BULK_DISABLE && !USBHOST_INT_DISABLE
select USBHOST_ASYNCH select USBHOST_ASYNCH
select SERIAL_REMOVABLE
---help--- ---help---
Select this option to build in host support for CDC/ACM serial Select this option to build in host support for CDC/ACM serial
devices. devices.
+10
View File
@@ -99,6 +99,10 @@
# warning Asynchronous transfer support is required (CONFIG_USBHOST_ASYNCH) # warning Asynchronous transfer support is required (CONFIG_USBHOST_ASYNCH)
#endif #endif
#ifndef CONFIG_SERIAL_REMOVABLE
# warning Removable serial device support is required (CONFIG_SERIAL_REMOVABLE)
#endif
#ifdef CONFIG_USBHOST_CDCACM_NTDELAY #ifdef CONFIG_USBHOST_CDCACM_NTDELAY
# define USBHOST_CDCACM_NTDELAY MSEC2TICK(CONFIG_USBHOST_CDCACM_NTDELAY) # define USBHOST_CDCACM_NTDELAY MSEC2TICK(CONFIG_USBHOST_CDCACM_NTDELAY)
#else #else
@@ -2102,6 +2106,12 @@ static int usbhost_disconnected(struct usbhost_class_s *usbclass)
flags = irqsave(); flags = irqsave();
priv->disconnected = true; priv->disconnected = true;
/* Let the upper half driver know that serial device is no longer
* connected.
*/
uart_connected(&priv->uartdev, false);
/* Cancel any ongoing Bulk transfers */ /* Cancel any ongoing Bulk transfers */
ret = DRVR_CANCEL(hport->drvr, priv->bulkin); ret = DRVR_CANCEL(hport->drvr, priv->bulkin);