On Mon, Sep 13, 2010 at 02:38:10PM -0700, Sarah Sharp wrote: > On Mon, Sep 13, 2010 at 10:08:39AM -0400, Alan Stern wrote: > > On Mon, 13 Sep 2010, Pavan Kondeti wrote: > > > > > Hi > > > > > > I am developing HCD for MSM USB hardware. The controller is compliant to EHCI. > > > But we need to initialize non-EHCI registers after controller is reset. This > > > also include workarounds like disabling streaming mode etc. > > > > > > Due to this, we can not initialize .start method of struct hc_driver to > > > ehci_run. This function call ehci_reset (after this hardware register settings > > > are lost) and continue initialization of controller. > > > > > > Is it okay to introduce a callback function in ehci_hcd struct that gets called > > > right after ehci_reset()? I have added this method to ehci_hcd instead of hc_driver > > > struct thinking that this is more like a silicon quirk. > > > > Maybe you can simply remove the ehci_reset call from ehci_run. I don't > > see any reason why it is needed there. > > Don't you need to clear out any old state that the BIOS has left around > by resetting the host controller? It's probably not great to just start > using the host on a cold boot. > Alan was saying controller can be reset in ->reset method, which gets called before ehci_run (if HCD sets ->start = ehci_run). Right? This really helps HCDs which requires additional hardware initialization after controller reset. HCD can register it's own function for ->reset method and use ehci_run for ->start method. -- Sent by a consultant of the Qualcomm Innovation Center, Inc. The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum. -- 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