RE: iMX25PDK - Problems with USB gadget

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Peter, thanks for your comments. I'll came back next Wednesday and will
give it a try. I'll let you know the results.

> 
> 
> 
> > Problem #1.- Continuous reset of the USB controller
> > To check if the hardware is fine, I've run the BSP
FSL-2.6.31_09.12.01
> > from Freescale and I can load any gadget driver with positive
results.
> >
> > The problem appears on new kernels when fsl_udc_core is compiled
with
> > VERBOSE and DEBUG defined. I've tried 3.2.2, 3.3.2 and 3.4-rc3
kernels,
> > all of them with the same results; if I load -any- gadget driver and
> > plug the USB cord into my Linux Host, I get the following error
> > messages, continuously, non stopping:
> >
------------------------------------------------------------------------
> > --- [fsl_udc_irq]  reset int
> > [reset_irq]  Controller reset
> > [dr_controller_setup]  vir[qh_base] is ffdf9000 phy[qh_base] is
> > 0x838c4000 reg is 0x838c4000
> > [fsl_udc_irq]  reset int
> > [reset_irq]  Controller reset
> > [dr_controller_setup]  vir[qh_base] is ffdf9000 phy[qh_base] is
> > 0x838c4000 reg is 0x838c4000
> > ..........
> > ..........
> >
------------------------------------------------------------------------
> > ---
> > If fsl_udc_core is compiled with VERBOSE -OR- DEBUG undefined, I can
> > load any gadget driver with no "reset" problem.
> >
> PORTSCX_PORT_RESET is cleared by hardware automatically when the reset
> is completed, if you have inserted too many debug message after reset
> occurs, the PORTSCX_PORT_RESET will be 0.
> 
> The code at upstream may have some problems, you may not need below
code:
> 1833         } else {
> 1834                 VDBG("Controller reset");
> 1835                 /* initialize usb hw reg except for regs for EP,
not
> 1836                  * touch usbintr reg */
> 1837                 dr_controller_setup(udc);
> 1838
> 1839                 /* Reset all internal used Queues */
> 1840                 reset_queues(udc);
> 1841
> 1842                 ep0_setup(udc);
> 1843
> 1844                 /* Enable DR IRQ reg, Set Run bit, change udc
state
> */
> 1845                 dr_controller_run(udc);
> 1846                 udc->usb_state = USB_STATE_ATTACHED;
> 1847         }
> 
> >
> >
> > Problem #2.- g_webcam enumeration
> > The enumeration starts as soon as the USB cord is plugged into my
Linux
> > Host, but with no user space support (the device /dev/video0 hasn't
been
> > opened).
> >
> > With the USB cord unplugged I've traced the call chain when g_webcam
is
> > modprobed down to "fsl_pullup". This function is only called once
and,
> > as expected, "is_on" parameter is 0 so the pullup should disabled,
but
> > when I plug the USB cord ..... enumeration starts :(
> >
> Some logic about controlling controller run/stop is incomplete at
current
> i.mx framework (lack of vbus interrupt to trigger fsl_vbus_session)
> 
> Temp solution for let your thing work (only for g_webcam):
> 1. Does not set USB_CMD_RUN_STOP at dr_controller_run
> 2. Change fsl_pullup:
> 
> 1234         if (can_pullup(udc))
> -->
> 1234         if (is_on)
> 
> > Any advice is really appreciated  !!!
> >
> > TIA for your help,
> > Gonzalo.
> >
> >
> > --
> > To unsubscribe from this list: send the line "unsubscribe linux-usb"
in
> > the body of a message to majordomo@xxxxxxxxxxxxxxx
> > More majordomo info at  http://vger.kernel.org/majordomo-info.html
> 

--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux