Hi, On Tue, Mar 16, 2010 at 06:13:50PM +0800, wanghui wrote: > Thank you for your comments. > It is right that in this function, we should only change id pin rules > according to user's choice, and > leave mode transition to the ISR. > But things are different on omap platforms, because the id pin change > can't trigger ISR. > For example, when we configure the kernel, we choose musb working as OTG > mode. Then we plug a mini-A or a mini-B cable in the socket, after > that we execute insmod g_ether.ko, at this time, the musb will > initialize to A or B working mode. how to change > its working mode from A to B or B to A at this time? I think if the > platform can support id detection ISR, your method > is workable. But on omap platforms, we must change cable(id pin state) > manually first, then let the controller to re-initiate a session forcibly. > This action (clear/set session bit) don't 100% equal to send a SRP, and > i don't really want to send a SRP too. > > If without this function for omap platforms, we can change musb working > mode only through rebooting kernel or rmmod/insmod gadget driver module. it should be doable with the transceiver ISR. When you get id pin irq, you should put the transceiver into A_IDLE state and power up vbus. MUSB changes to host mode automatically. -- balbi -- 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