LPC31 EHCI: Make stream disable a configurable option

This commit is contained in:
Gregory Nutt
2013-11-28 13:30:06 -06:00
parent 2aa0809e8b
commit de797768cd
3 changed files with 16 additions and 4 deletions
+12
View File
@@ -253,6 +253,18 @@ if LPC31_USBOTG && USBHOST
menu "USB host controller driver (HCD) options"
config LPC31_EHCI_SDIS
bool "Stream disable"
default n
---help---
Selecting this option ensures that overruns/underruns of the latency
FIFO are eliminated for low bandwidth systems where the RX and TX
buffers are sufficient to contain the entire packet. Enabling stream
disable also has the effect of ensuring the the TX latency is filled
to capacity before the packet is launched onto the USB.
Note: Time duration to pre-fill the FIFO becomes significant when stream disable is active.
config LPC31_EHCI_NQHS
int "Number of Queue Head (QH) structures"
default 4
+1 -1
View File
@@ -4310,7 +4310,7 @@ FAR struct usbhost_connection_s *lpc31_ehci_initialize(int controller)
* VBPS = 1, off-chip power source
*/
putreg32(USBHOST_USBMODE_CMHOST | USBHOST_USBMODE_SDIS | USBHOST_USBMODE_VBPS,
putreg32(USBHOST_USBMODE_CMHOST /* | USBHOST_USBMODE_SDIS */ | USBHOST_USBMODE_VBPS,
LPC31_USBDEV_USBMODE);
/* Host Controller Initialization. Paragraph 4.1 */
+3 -3
View File
@@ -61,7 +61,7 @@
* because there can be cycles. For example, it may be necessary to destroy
* a block driver inode on umount() after a removable block device has been
* removed. In that case umount() hold the inode semaphore, but the block
* driver may callback to unregister_blockdriver() after the un-mount,
* driver may callback to unregister_blockdriver() after the un-mount,
* requiring the seamphore again.
*/
@@ -187,7 +187,7 @@ void fs_initialize(void)
(void)sem_init(&g_inode_sem.sem, 0, 1);
g_inode_sem.holder = NO_HOLDER;
g_inode_sem.count = 0;
/* Initialize files array (if it is used) */
#ifdef CONFIG_HAVE_WEAKFUNCTIONS
@@ -218,7 +218,7 @@ void inode_semtake(void)
/* Yes... just increment the count */
g_inode_sem.count++;
DEBUGASSERT(g_inode_sem.count > 0);
DEBUGASSERT(g_inode_sem.count > 0);
}
/* Take the semaphore (perhaps waiting) */