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:
parent
8b527a745d
commit
227126f75f
@ -3200,4 +3200,6 @@
|
|||||||
OFF, there are more NAKs occuring in more places than before and this
|
OFF, there are more NAKs occuring in more places than before and this
|
||||||
reveals a variety of errors. This check in improves NAK robustness
|
reveals a variety of errors. This check in improves NAK robustness
|
||||||
for control transfers but does not resolve all of the issues.
|
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.
|
||||||
|
|
||||||
|
@ -48,6 +48,10 @@
|
|||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
#include <debug.h>
|
#include <debug.h>
|
||||||
|
|
||||||
|
#if !defined(CONFIG_DEBUG_VERBOSE) && !defined(CONFIG_DEBUG_USB)
|
||||||
|
# include <debug.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
#include <nuttx/arch.h>
|
#include <nuttx/arch.h>
|
||||||
#include <nuttx/kmalloc.h>
|
#include <nuttx/kmalloc.h>
|
||||||
#include <nuttx/usb/usb.h>
|
#include <nuttx/usb/usb.h>
|
||||||
@ -1888,7 +1892,7 @@ static void stm32_gint_connected(FAR struct stm32_usbhost_s *priv)
|
|||||||
if (!priv->connected)
|
if (!priv->connected)
|
||||||
{
|
{
|
||||||
/* Yes.. then now we are connected */
|
/* Yes.. then now we are connected */
|
||||||
|
|
||||||
ullvdbg("Connected\n");
|
ullvdbg("Connected\n");
|
||||||
priv->connected = true;
|
priv->connected = true;
|
||||||
DEBUGASSERT(priv->smstate == SMSTATE_DETACHED);
|
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 */
|
/* Start the transfer */
|
||||||
|
|
||||||
stm32_transfer_start(priv, chidx);
|
stm32_transfer_start(priv, chidx);
|
||||||
|
|
||||||
/* Wait for the transfer to complete and get the result */
|
/* 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.
|
* Flush the selected Tx FIFO.
|
||||||
*
|
*
|
||||||
* Input Parameters:
|
* Input Parameters:
|
||||||
* priv -- USB host driver private data structure.
|
* txfnum -- USB host driver private data structure.
|
||||||
*
|
*
|
||||||
* Returned Value:
|
* Returned Value:
|
||||||
* None.
|
* None.
|
||||||
|
@ -75,7 +75,7 @@ CONFIG_ARCH_CHIP="stm32"
|
|||||||
CONFIG_ARCH_CHIP_STM32F207IG=y
|
CONFIG_ARCH_CHIP_STM32F207IG=y
|
||||||
CONFIG_ARCH_BOARD="stm3220g-eval"
|
CONFIG_ARCH_BOARD="stm3220g-eval"
|
||||||
CONFIG_ARCH_BOARD_STM3220G_EVAL=y
|
CONFIG_ARCH_BOARD_STM3220G_EVAL=y
|
||||||
CONFIG_BOARD_LOOPSPERMSEC=16717
|
CONFIG_BOARD_LOOPSPERMSEC=10926
|
||||||
CONFIG_DRAM_SIZE=0x00030000
|
CONFIG_DRAM_SIZE=0x00030000
|
||||||
CONFIG_DRAM_START=0x20000000
|
CONFIG_DRAM_START=0x20000000
|
||||||
CONFIG_ARCH_IRQPRIO=y
|
CONFIG_ARCH_IRQPRIO=y
|
||||||
|
@ -75,7 +75,7 @@ CONFIG_ARCH_CHIP="stm32"
|
|||||||
CONFIG_ARCH_CHIP_STM32F207IG=y
|
CONFIG_ARCH_CHIP_STM32F207IG=y
|
||||||
CONFIG_ARCH_BOARD="stm3220g-eval"
|
CONFIG_ARCH_BOARD="stm3220g-eval"
|
||||||
CONFIG_ARCH_BOARD_STM3220G_EVAL=y
|
CONFIG_ARCH_BOARD_STM3220G_EVAL=y
|
||||||
CONFIG_BOARD_LOOPSPERMSEC=16717
|
CONFIG_BOARD_LOOPSPERMSEC=10926
|
||||||
CONFIG_DRAM_SIZE=0x00030000
|
CONFIG_DRAM_SIZE=0x00030000
|
||||||
CONFIG_DRAM_START=0x20000000
|
CONFIG_DRAM_START=0x20000000
|
||||||
CONFIG_ARCH_IRQPRIO=y
|
CONFIG_ARCH_IRQPRIO=y
|
||||||
|
@ -75,7 +75,7 @@ CONFIG_ARCH_CHIP="stm32"
|
|||||||
CONFIG_ARCH_CHIP_STM32F207IG=y
|
CONFIG_ARCH_CHIP_STM32F207IG=y
|
||||||
CONFIG_ARCH_BOARD="stm3220g-eval"
|
CONFIG_ARCH_BOARD="stm3220g-eval"
|
||||||
CONFIG_ARCH_BOARD_STM3220G_EVAL=y
|
CONFIG_ARCH_BOARD_STM3220G_EVAL=y
|
||||||
CONFIG_BOARD_LOOPSPERMSEC=16717
|
CONFIG_BOARD_LOOPSPERMSEC=10926
|
||||||
CONFIG_DRAM_SIZE=0x00030000
|
CONFIG_DRAM_SIZE=0x00030000
|
||||||
CONFIG_DRAM_START=0x20000000
|
CONFIG_DRAM_START=0x20000000
|
||||||
CONFIG_ARCH_IRQPRIO=y
|
CONFIG_ARCH_IRQPRIO=y
|
||||||
|
@ -76,7 +76,7 @@ CONFIG_ARCH_CHIP="stm32"
|
|||||||
CONFIG_ARCH_CHIP_STM32F207IG=y
|
CONFIG_ARCH_CHIP_STM32F207IG=y
|
||||||
CONFIG_ARCH_BOARD="stm3220g-eval"
|
CONFIG_ARCH_BOARD="stm3220g-eval"
|
||||||
CONFIG_ARCH_BOARD_STM3220G_EVAL=y
|
CONFIG_ARCH_BOARD_STM3220G_EVAL=y
|
||||||
CONFIG_BOARD_LOOPSPERMSEC=16717
|
CONFIG_BOARD_LOOPSPERMSEC=10926
|
||||||
CONFIG_DRAM_SIZE=0x00030000
|
CONFIG_DRAM_SIZE=0x00030000
|
||||||
CONFIG_DRAM_START=0x20000000
|
CONFIG_DRAM_START=0x20000000
|
||||||
CONFIG_ARCH_IRQPRIO=y
|
CONFIG_ARCH_IRQPRIO=y
|
||||||
|
@ -75,7 +75,7 @@ CONFIG_ARCH_CHIP="stm32"
|
|||||||
CONFIG_ARCH_CHIP_STM32F207IG=y
|
CONFIG_ARCH_CHIP_STM32F207IG=y
|
||||||
CONFIG_ARCH_BOARD="stm3220g-eval"
|
CONFIG_ARCH_BOARD="stm3220g-eval"
|
||||||
CONFIG_ARCH_BOARD_STM3220G_EVAL=y
|
CONFIG_ARCH_BOARD_STM3220G_EVAL=y
|
||||||
CONFIG_BOARD_LOOPSPERMSEC=16717
|
CONFIG_BOARD_LOOPSPERMSEC=10926
|
||||||
CONFIG_DRAM_SIZE=0x00030000
|
CONFIG_DRAM_SIZE=0x00030000
|
||||||
CONFIG_DRAM_START=0x20000000
|
CONFIG_DRAM_START=0x20000000
|
||||||
CONFIG_ARCH_IRQPRIO=y
|
CONFIG_ARCH_IRQPRIO=y
|
||||||
|
@ -75,7 +75,7 @@ CONFIG_ARCH_CHIP="stm32"
|
|||||||
CONFIG_ARCH_CHIP_STM32F207IG=y
|
CONFIG_ARCH_CHIP_STM32F207IG=y
|
||||||
CONFIG_ARCH_BOARD="stm3220g-eval"
|
CONFIG_ARCH_BOARD="stm3220g-eval"
|
||||||
CONFIG_ARCH_BOARD_STM3220G_EVAL=y
|
CONFIG_ARCH_BOARD_STM3220G_EVAL=y
|
||||||
CONFIG_BOARD_LOOPSPERMSEC=16717
|
CONFIG_BOARD_LOOPSPERMSEC=10926
|
||||||
CONFIG_DRAM_SIZE=0x00030000
|
CONFIG_DRAM_SIZE=0x00030000
|
||||||
CONFIG_DRAM_START=0x20000000
|
CONFIG_DRAM_START=0x20000000
|
||||||
CONFIG_ARCH_IRQPRIO=y
|
CONFIG_ARCH_IRQPRIO=y
|
||||||
|
@ -75,7 +75,7 @@ CONFIG_ARCH_CHIP="stm32"
|
|||||||
CONFIG_ARCH_CHIP_STM32F207IG=y
|
CONFIG_ARCH_CHIP_STM32F207IG=y
|
||||||
CONFIG_ARCH_BOARD="stm3220g-eval"
|
CONFIG_ARCH_BOARD="stm3220g-eval"
|
||||||
CONFIG_ARCH_BOARD_STM3220G_EVAL=y
|
CONFIG_ARCH_BOARD_STM3220G_EVAL=y
|
||||||
CONFIG_BOARD_LOOPSPERMSEC=16717
|
CONFIG_BOARD_LOOPSPERMSEC=10926
|
||||||
CONFIG_DRAM_SIZE=0x00030000
|
CONFIG_DRAM_SIZE=0x00030000
|
||||||
CONFIG_DRAM_START=0x20000000
|
CONFIG_DRAM_START=0x20000000
|
||||||
CONFIG_ARCH_IRQPRIO=y
|
CONFIG_ARCH_IRQPRIO=y
|
||||||
|
@ -351,7 +351,7 @@ static inline int romfs_searchdir(struct romfs_mountpt_s *rm,
|
|||||||
}
|
}
|
||||||
while (next != 0);
|
while (next != 0);
|
||||||
|
|
||||||
/* There is nothing in this directoy with that name */
|
/* There is nothing in this directory with that name */
|
||||||
|
|
||||||
return -ENOENT;
|
return -ENOENT;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user