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. > This is better than introducing another callback. The rule is that HCD must ensure controller is reset before ->start method is called. > But if you do then you will have to add calls to ehci_reset in drivers > like ehci-au1xxx, ehci-omap, and ehci-w90x900, which otherwise wouldn't > call it. > ehci-orion HCD calls ehci_halt after ehci_reset in ->reset method. This should also be fixed before removing ehci_reset from ehci_run(). Right? -- 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