SAMA5: Major restructuring of the the OHCI driver drivers to better handle the multiple root hub ports and concureent transfers on each port.

This commit is contained in:
Gregory Nutt 2013-08-13 16:48:14 -06:00
parent 1700d06d89
commit 3f4b90cc3b
5 changed files with 257 additions and 242 deletions

View File

@ -5396,3 +5396,11 @@
to new interface, struct usbhost_connection_s. This is part of the
necessary restructuring of the USB host interface to support multiple
root hub ports (2013-8-13).
* arch/arm/src/sama5/sam_ohci.c: Major restructuring of the driver due
in order to handle multiple root hub ports. Basically instead of one
driver structure with an arrayof root hub port structures, there is no
one container structure with an array of driver structures, one for
each root hub port. The advantage is that each class->driver call not
passes information associated with the RHport implicitly. The klugey,
procedural alternative was to add the function address to every
interface method (which I started to do but backed above) (2013-8-13).

View File

@ -350,7 +350,7 @@ static struct lpc17_usbhost_s g_usbhost =
.class = NULL,
};
/* This is the connection/enumeration interact */
/* This is the connection/enumeration interface */
static struct usbhost_connection_s g_usbconn =
{

File diff suppressed because it is too large Load Diff

View File

@ -1204,8 +1204,6 @@ void up_serialinit(void)
int up_putc(int ch)
{
#ifdef HAVE_CONSOLE
struct up_dev_s *priv = (struct up_dev_s*)CONSOLE_DEV.priv;
/* This logic does not work. Apparently re-entrancy problems cause the
* loss of serial interrupts (a bad, zero IMR gets set). My attempts to
* make this function fully re-entrant have not been successful but the
@ -1213,6 +1211,7 @@ int up_putc(int ch)
*/
#if 0
struct up_dev_s *priv = (struct up_dev_s*)CONSOLE_DEV.priv;
uint32_t imr;
/* Disable serial interrupts */

View File

@ -422,7 +422,7 @@ static struct stm32_usbhost_s g_usbhost =
.class = NULL,
};
/* This is the connection/enumeration interact */
/* This is the connection/enumeration interface */
static struct usbhost_connection_s g_usbconn =
{