Some STM32 USB OTG FS driver fixes

git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5059 42af7a65-404d-4744-a932-0658087f49c3
This commit is contained in:
patacongo 2012-08-27 22:27:03 +00:00
parent 8b527a745d
commit 227126f75f
10 changed files with 28 additions and 11 deletions

View File

@ -3200,4 +3200,6 @@
OFF, there are more NAKs occuring in more places than before and this
reveals a variety of errors. This check in improves NAK robustness
for control transfers but does not resolve all of the issues.
* configs/stm3220g-eval/*/defconfig: Calibrated delay loop. It had
never been calibrated was was way off.

View File

@ -48,6 +48,10 @@
#include <errno.h>
#include <debug.h>
#if !defined(CONFIG_DEBUG_VERBOSE) && !defined(CONFIG_DEBUG_USB)
# include <debug.h>
#endif
#include <nuttx/arch.h>
#include <nuttx/kmalloc.h>
#include <nuttx/usb/usb.h>
@ -1888,7 +1892,7 @@ static void stm32_gint_connected(FAR struct stm32_usbhost_s *priv)
if (!priv->connected)
{
/* Yes.. then now we are connected */
ullvdbg("Connected\n");
priv->connected = true;
DEBUGASSERT(priv->smstate == SMSTATE_DETACHED);
@ -3595,8 +3599,19 @@ static int stm32_transfer(FAR struct usbhost_driver_s *drvr, usbhost_ep_t ep,
}
}
/* There is a bug in the code at present. With debug OFF, this driver
* overruns the typical FLASH device and there are many problems with
* NAKS sticking a big delay here allows the driver to work but with
* very poor performance when debug is off.
*/
#if !defined(CONFIG_DEBUG_VERBOSE) && !defined(CONFIG_DEBUG_USB)
#warning "REVISIT this delay"
usleep(100*1000);
#endif
/* Start the transfer */
stm32_transfer_start(priv, chidx);
/* Wait for the transfer to complete and get the result */
@ -3696,7 +3711,7 @@ static void stm32_portreset(FAR struct stm32_usbhost_s *priv)
* Flush the selected Tx FIFO.
*
* Input Parameters:
* priv -- USB host driver private data structure.
* txfnum -- USB host driver private data structure.
*
* Returned Value:
* None.

View File

@ -75,7 +75,7 @@ CONFIG_ARCH_CHIP="stm32"
CONFIG_ARCH_CHIP_STM32F207IG=y
CONFIG_ARCH_BOARD="stm3220g-eval"
CONFIG_ARCH_BOARD_STM3220G_EVAL=y
CONFIG_BOARD_LOOPSPERMSEC=16717
CONFIG_BOARD_LOOPSPERMSEC=10926
CONFIG_DRAM_SIZE=0x00030000
CONFIG_DRAM_START=0x20000000
CONFIG_ARCH_IRQPRIO=y

View File

@ -75,7 +75,7 @@ CONFIG_ARCH_CHIP="stm32"
CONFIG_ARCH_CHIP_STM32F207IG=y
CONFIG_ARCH_BOARD="stm3220g-eval"
CONFIG_ARCH_BOARD_STM3220G_EVAL=y
CONFIG_BOARD_LOOPSPERMSEC=16717
CONFIG_BOARD_LOOPSPERMSEC=10926
CONFIG_DRAM_SIZE=0x00030000
CONFIG_DRAM_START=0x20000000
CONFIG_ARCH_IRQPRIO=y

View File

@ -75,7 +75,7 @@ CONFIG_ARCH_CHIP="stm32"
CONFIG_ARCH_CHIP_STM32F207IG=y
CONFIG_ARCH_BOARD="stm3220g-eval"
CONFIG_ARCH_BOARD_STM3220G_EVAL=y
CONFIG_BOARD_LOOPSPERMSEC=16717
CONFIG_BOARD_LOOPSPERMSEC=10926
CONFIG_DRAM_SIZE=0x00030000
CONFIG_DRAM_START=0x20000000
CONFIG_ARCH_IRQPRIO=y

View File

@ -76,7 +76,7 @@ CONFIG_ARCH_CHIP="stm32"
CONFIG_ARCH_CHIP_STM32F207IG=y
CONFIG_ARCH_BOARD="stm3220g-eval"
CONFIG_ARCH_BOARD_STM3220G_EVAL=y
CONFIG_BOARD_LOOPSPERMSEC=16717
CONFIG_BOARD_LOOPSPERMSEC=10926
CONFIG_DRAM_SIZE=0x00030000
CONFIG_DRAM_START=0x20000000
CONFIG_ARCH_IRQPRIO=y

View File

@ -75,7 +75,7 @@ CONFIG_ARCH_CHIP="stm32"
CONFIG_ARCH_CHIP_STM32F207IG=y
CONFIG_ARCH_BOARD="stm3220g-eval"
CONFIG_ARCH_BOARD_STM3220G_EVAL=y
CONFIG_BOARD_LOOPSPERMSEC=16717
CONFIG_BOARD_LOOPSPERMSEC=10926
CONFIG_DRAM_SIZE=0x00030000
CONFIG_DRAM_START=0x20000000
CONFIG_ARCH_IRQPRIO=y

View File

@ -75,7 +75,7 @@ CONFIG_ARCH_CHIP="stm32"
CONFIG_ARCH_CHIP_STM32F207IG=y
CONFIG_ARCH_BOARD="stm3220g-eval"
CONFIG_ARCH_BOARD_STM3220G_EVAL=y
CONFIG_BOARD_LOOPSPERMSEC=16717
CONFIG_BOARD_LOOPSPERMSEC=10926
CONFIG_DRAM_SIZE=0x00030000
CONFIG_DRAM_START=0x20000000
CONFIG_ARCH_IRQPRIO=y

View File

@ -75,7 +75,7 @@ CONFIG_ARCH_CHIP="stm32"
CONFIG_ARCH_CHIP_STM32F207IG=y
CONFIG_ARCH_BOARD="stm3220g-eval"
CONFIG_ARCH_BOARD_STM3220G_EVAL=y
CONFIG_BOARD_LOOPSPERMSEC=16717
CONFIG_BOARD_LOOPSPERMSEC=10926
CONFIG_DRAM_SIZE=0x00030000
CONFIG_DRAM_START=0x20000000
CONFIG_ARCH_IRQPRIO=y

View File

@ -351,7 +351,7 @@ static inline int romfs_searchdir(struct romfs_mountpt_s *rm,
}
while (next != 0);
/* There is nothing in this directoy with that name */
/* There is nothing in this directory with that name */
return -ENOENT;
}