Hi, On 05.04.2013 11:58, Felipe Balbi wrote: > On Thu, Apr 04, 2013 at 09:50:06PM +0200, Daniel Mack wrote: >> Hi all, >> >> here are some patches to separate the HCD and gadget part of the musb >> driver so they can be deselected in Kconfig. They also make the driver >> keep track of the configured port mode that is set from DT, so the >> actual runtime configuration can be selected dynamically. >> >> One thing that is still broken is that once pm_suspend() was called on >> a musb device on a USB disconnect, the port won't wake up again when a >> device is plugged back in. I doubt this is related to my patches, but I >> might be wrong. If that effect rings a bell to anyone, please let me >> know. >> >> >> Thanks, >> Daniel >> >> >> Daniel Mack (7): >> usb: gadget: drop unused USB_GADGET_MUSB_HDRC >> usb: musb: move function declarations to musb_{host,gadget}.h >> usb: musb: factor out hcd initalization >> usb: musb: add Kconfig options for HOST, GAGDET or DUAL_ROLE modes >> usb: musb: add musb_host_setup() and musb_host_cleanup() >> usb: musb: re-introduce musb->port_mode >> usb: musb: eliminate musb_to_hcd > > pretty good, getting there. Here's what I'd to see though: > > introduce musb_gadget_init() and musb_host_init(). Those two should > contain everything necessary to initialize each side of the API. > > Then we can simply: > > switch(mode) { > case HOST: > musb_host_init(); > break; > case PERIPHERAL: > musb_gadget_init(); > break; > case OTG: > /* it's important to initialize gadget side first */ > musb_gadget_init(); > musb_host_init(); > break; > } > > code will look cleaner and initialization will be straight forward and a > lot easier to understand. Ok, thanks. I'll see how I can respin this. > This means that the call to usb_add_hcd() from musb_gadget_start() > should be removed. That's already done in "usb: musb: factor out hcd initalization". Or do I miss anything? Daniel -- 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