> -----Original Message----- > From: David Brownell [mailto:david-b@xxxxxxxxxxx] > Sent: Tuesday, April 07, 2009 12:01 AM > To: Gupta, Ajay Kumar > Cc: felipe.balbi@xxxxxxxxx; linux-usb@xxxxxxxxxxxxxxx; linux-omap@xxxxxxxxxxxxxxx; tony@xxxxxxxxxxx > Subject: Re: [PATCH] musb: refresh nop transceiver support for musb > > On Monday 06 April 2009, Gupta, Ajay Kumar wrote: > > David, what's your comment on this? > > It was wrong to try registering the transceiver in > the mach-map2/usb2.c file in any case. That's a > board-specific issue for OMAP3; and TUSB60x0 chips > have an integrated one. See I have updated the patch with below changes, -removed NOP transceiver code from arch/arm/mach-omap2/usb-musb.c -Added NOP transceiver at drivers/usb/musb/omap2430.c in musb_platform_init() same as done in davinci/BlackFin/tusb6010 in your queued patch. -Modified include/linux/usb/otg.h with Felipe's suggestion which removes the #ifdef from drivers/usb/musb/omap2430.c file. Please review this one attached below. ====== cut here ============== [PATCH] musb: refresh NOP transceiver support for OMAP35x EVM Removing NOP support code from usb-musb.c and adding its support at Drivers/usb/musb/omap2430.c. Signed-off-by: Ajay Kumar Gupta <ajay.gupta@xxxxxx> --- It is against latest l-o tree + Queued patches from David (21 patches). arch/arm/mach-omap2/usb-musb.c | 21 --------------------- drivers/usb/musb/omap2430.c | 4 ++++ include/linux/usb/otg.h | 6 +++++- 3 files changed, 9 insertions(+), 22 deletions(-) diff --git a/arch/arm/mach-omap2/usb-musb.c b/arch/arm/mach-omap2/usb-musb.c index 927c2d9..6f768d6 100644 --- a/arch/arm/mach-omap2/usb-musb.c +++ b/arch/arm/mach-omap2/usb-musb.c @@ -145,20 +145,6 @@ static struct platform_device musb_device = { .resource = musb_resources, }; -#ifdef CONFIG_NOP_USB_XCEIV -static u64 nop_xceiv_dmamask = DMA_32BIT_MASK; - -static struct platform_device nop_xceiv_device = { - .name = "nop_usb_xceiv", - .id = -1, - .dev = { - .dma_mask = &nop_xceiv_dmamask, - .coherent_dma_mask = DMA_32BIT_MASK, - .platform_data = NULL, - }, -}; -#endif - void __init usb_musb_init(void) { if (cpu_is_omap243x()) { @@ -171,13 +157,6 @@ void __init usb_musb_init(void) musb_resources[0].end = musb_resources[0].start + SZ_8K - 1; -#ifdef CONFIG_NOP_USB_XCEIV - if (platform_device_register(&nop_xceiv_device) < 0) { - printk(KERN_ERR "Unable to register NOP-XCEIV device\n"); - return; - } -#endif - if (platform_device_register(&musb_device) < 0) { printk(KERN_ERR "Unable to register HS-USB (MUSB) device\n"); return; diff --git a/drivers/usb/musb/omap2430.c b/drivers/usb/musb/omap2430.c index 3fbc807..abfe061 100644 --- a/drivers/usb/musb/omap2430.c +++ b/drivers/usb/musb/omap2430.c @@ -209,6 +209,9 @@ int __init musb_platform_init(struct musb *musb) omap_cfg_reg(AE5_2430_USB0HS_STP); #endif + /* OMAP35x EVM needs to regsiter NOP transceiver */ + usb_nop_xceiv_register(); + /* We require some kind of external transceiver, hooked * up through ULPI. TWL4030-family PMICs include one, * which needs a driver, drivers aren't always needed. @@ -313,5 +316,6 @@ int musb_platform_exit(struct musb *musb) clk_put(musb->clock); musb->clock = 0; + usb_nop_xceiv_unregister(); return 0; } diff --git a/include/linux/usb/otg.h b/include/linux/usb/otg.h index 2443c0e..9778268 100644 --- a/include/linux/usb/otg.h +++ b/include/linux/usb/otg.h @@ -82,9 +82,13 @@ struct otg_transceiver { extern int otg_set_transceiver(struct otg_transceiver *); /* sometimes transceivers are accessed only through e.g. ULPI */ +#ifdef CONFIG_NOP_USB_XCEIV extern void usb_nop_xceiv_register(void); extern void usb_nop_xceiv_unregister(void); - +#else +static inline void usb_nop_xceiv_register(void) {} +static inline void usb_nop_xceiv_unregister(void) {} +#endif /* for usb host and peripheral controller drivers */ extern struct otg_transceiver *otg_get_transceiver(void); -- 1.6.0.3 ============================== -- 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