RE: Query - resetting and reenumerating root-hub

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

 



Alan Stern wrote:
> On Mon, 7 Jun 2010, Gadiyar, Anand wrote:
> > Hi all,
> >
> > On the OMAP3, we have a new hardware bug that causes the
> > EHCI controller to lock up under heavy stress. The only
> > known way to recover is to soft-reset the controller.
> >
> > I'm trying to implement some kind of recovery mechanism
> > for the ehci-omap driver. Is there a way to inform the
> > USB core that the root-hub and down-stream devices have
> > been reset and need to be re-enumerated?
> 
> There's usb_hc_died().  It tells the core that the controller has
> stopped working.  The core then removes all devices below the root hub
> and marks the root hub as non-operational (the state is set to
> USB_STATE_NOTATTACHED).  But there is no re-enumeration; from that
> point on the root hub is unusable.
> 
> This may not be exactly what you want.  Perhaps a better match would be
> usb_reset_device(), but that routine specifically excludes root hubs.
> You might be able to adjust it in some way, though.
> 
> Another alternative is simply to unregister the hcd and then
> re-register it.
> 

(Sorry, hit send before completing the mail)

Thanks! As a quick test, I built the driver as a module. And
in the remove path, we soft-reset the controller anyway.

After a rmmod-insmod sequence I am able to detect new
devices, but only if I unplug and plug them in again.

Some more debugging to be done - thanks for the pointer.

- Anand
--
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