1 --- kernel-power-2.6.28.orig/drivers/usb/musb/musb_core.c
2 +++ kernel-power-2.6.28/drivers/usb/musb/musb_core.c
4 r = musb_readb(musb->mregs, MUSB_DEVCTL);
5 if ((r & MUSB_DEVCTL_VBUS)
6 == (3 << MUSB_DEVCTL_VBUS_SHIFT)) {
7 +#ifdef CONFIG_USB_MUSB_OTG
8 musb_save_ctx_and_suspend(&musb->g, 0);
9 musb_restore_ctx_and_resume(&musb->g);
11 if (musb->board && musb->board->set_pm_limits)
12 musb->board->set_pm_limits(
14 @@ -1980,7 +1982,11 @@
17 spin_lock_irqsave(&musb->lock, flags);
18 +#ifdef CONFIG_USB_MUSB_OTG
19 ret = sprintf(buf, "%d\n", musb->softconnect);
23 spin_unlock_irqrestore(&musb->lock, flags);
29 spin_lock_irqsave(&musb->lock, flags);
30 +#ifdef CONFIG_USB_MUSB_OTG
32 power = musb_readb(musb->mregs, MUSB_POWER);
36 musb->softconnect = !!val;
37 musb_writeb(musb->mregs, MUSB_POWER, power);
40 spin_unlock_irqrestore(&musb->lock, flags);
43 @@ -2462,8 +2469,10 @@
44 /* Resets the controller. Has to be done. Without this, most likely
45 * the state machine inside the transceiver doesn't get fixed properly
47 +#ifdef CONFIG_USB_MUSB_OTG
48 musb_save_ctx_and_suspend(&musb->g, 0);
49 musb_restore_ctx_and_resume(&musb->g);
54 --- kernel-power-2.6.28.orig/drivers/usb/musb/omap2430.c
55 +++ kernel-power-2.6.28/drivers/usb/musb/omap2430.c
58 void musb_platform_disable(struct musb *musb)
60 +#ifdef CONFIG_USB_MUSB_OTG
61 twl4030_upd_usb_suspended(musb->is_suspended);
64 static void omap_vbus_power(struct musb *musb, int is_on, int sleeping)
70 +#ifdef CONFIG_USB_MUSB_OTG
72 void musb_save_ctx_and_suspend(struct usb_gadget *gadget, int overwrite)
76 EXPORT_SYMBOL_GPL(musb_restore_ctx_and_resume);
79 --- kernel-power-2.6.28.orig/drivers/usb/otg/twl4030-usb.c
80 +++ kernel-power-2.6.28/drivers/usb/otg/twl4030-usb.c
85 +#ifdef CONFIG_USB_MUSB_OTG
87 extern void musb_save_ctx_and_suspend(struct usb_gadget *gadget, int overwrite);
88 extern void musb_restore_ctx_and_resume(struct usb_gadget *gadget);
91 static void twl4030_phy_suspend(struct twl4030_usb *twl, int controller_off)
97 +#ifdef CONFIG_USB_MUSB_OTG
99 musb_save_ctx_and_suspend(twl->otg.gadget, 0);
103 static void twl4030_phy_resume(struct twl4030_usb *twl)
105 if (twl->usb_mode == T2_USB_MODE_ULPI)
106 twl4030_i2c_access(twl, 0);
109 +#ifdef CONFIG_USB_MUSB_OTG
111 musb_restore_ctx_and_resume(twl->otg.gadget);
115 static int twl4030_usb_ldo_init(struct twl4030_usb *twl)