On Fri, Nov 28, 2008 at 10:58:24AM +0530, ext Manikandan Pillai wrote: > MUSB on OMAP3EVM uses ISP1504 phy and doesn't need twl4030. > OMAP35xx Beagle board MUSB uses twl4030 phy thus uses it and > it also sets xceiv global field using otg_set_transceiver(). > As OMAP3EVM MUSB doesn't require twl4030 so otg_set_transceiver() > part is being done in this patch. > > This is a temporary patch and the updated patch will come soon. musb patches should go to linux-usb mailing list. > Signed-off-by: Manikandan Pillai <mani.pillai@xxxxxx> > --- > drivers/usb/musb/omap2430.c | 53 +++++++++++++++++++++++++++++++++++++++++- > 1 files changed, 51 insertions(+), 2 deletions(-) > > diff --git a/drivers/usb/musb/omap2430.c b/drivers/usb/musb/omap2430.c > index 03fc864..9aa4518 100644 > --- a/drivers/usb/musb/omap2430.c > +++ b/drivers/usb/musb/omap2430.c > @@ -215,13 +215,60 @@ void musb_platform_set_mode(struct musb *musb, u8 musb_mode) > } > } > > +#ifdef CONFIG_MACH_OMAP3EVM > +static int omap3_evm_otg_set_host(struct otg_transceiver *xceiv, > + struct usb_bus *host) > +{ > + if (!xceiv) > + return -ENODEV; > + > + if (!host) { > + xceiv->host = NULL; > + return -ENODEV; > + } > + DBG(2, "xceiv in host\n"); > + xceiv->host = host; > + return 0; > +} > +static int omap3_evm_otg_set_peripheral(struct otg_transceiver *xceiv, > + struct usb_gadget *gadget) > +{ > + if (!xceiv) > + return -ENODEV; > + > + if (!gadget) { > + xceiv->gadget = NULL; > + return -ENODEV; > + } > + DBG(2, "xceiv in peripheral\n"); > + xceiv->gadget = gadget; > + xceiv->state = OTG_STATE_B_IDLE; > + return 0; > + > +} > +static int omap3_evm_otg_set_suspend(struct otg_transceiver *x, int suspend) > +{ > + DBG(2, "xceiv suspend\n"); > + return 0; > +} > +#endif sorry, no. I won't add ifdefs to any of those files since it breaks multiomap support. > + > int __init musb_platform_init(struct musb *musb) > { > - struct otg_transceiver *x = otg_get_transceiver(); > + struct otg_transceiver *x; > u32 l; > > #if defined(CONFIG_ARCH_OMAP2430) what about 3430 ? > omap_cfg_reg(AE5_2430_USB0HS_STP); > + x = otg_get_transceiver(); > +#elif defined(CONFIG_MACH_OMAP3EVM) > + x = kzalloc(sizeof *x, GFP_KERNEL); > + if (!x) > + return 0; > + x->set_host = omap3_evm_otg_set_host; > + x->set_peripheral = omap3_evm_otg_set_peripheral; > + x->set_suspend = omap3_evm_otg_set_suspend; > + otg_set_transceiver(x); > #endif > > musb->xceiv = *x; > @@ -323,6 +370,8 @@ int musb_platform_exit(struct musb *musb) > > clk_put(musb->clock); > musb->clock = 0; > - > +#if defined(CONFIG_MACH_OMAP3EVM) > + kfree(&musb->xceiv); > +#endif no. I could even live with if (machine_is_xxx()) code, although I don't want to. But ifdefs are an automatic NAK. -- balbi -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html