Re: [PATCH v3 04/11] usb: otg: nop: add support for multiple tranceiver

2012-07-19 Thread ABRAHAM, KISHON VIJAY
Hi,

On Thu, Jul 19, 2012 at 11:11 AM, Ajay Kumar Gupta ajay.gu...@ti.com wrote:
 Currently we have one single nop transceiver support as same is
 defined as a global variable in drivers/usb/otg/nop-usb-xceiv.c.
 This need to be changed to support multiple otg controller each
 using nop transceiver on a platform such as am335x.

 Signed-off-by: Ajay Kumar Gupta ajay.gu...@ti.com
 ---
  arch/arm/mach-omap2/board-omap3evm.c |2 +-
  drivers/usb/musb/am35x.c |4 ++--
  drivers/usb/musb/blackfin.c  |4 ++--
  drivers/usb/musb/da8xx.c |4 ++--
  drivers/usb/musb/davinci.c   |6 +++---
  drivers/usb/musb/musb_dsps.c |   10 +-
  drivers/usb/musb/tusb6010.c  |6 +++---
  drivers/usb/otg/nop-usb-xceiv.c  |   20 
  include/linux/usb/otg.h  |9 +
  9 files changed, 35 insertions(+), 30 deletions(-)

 diff --git a/arch/arm/mach-omap2/board-omap3evm.c 
 b/arch/arm/mach-omap2/board-omap3evm.c
 index ef230a0..a3393bc 100644
 --- a/arch/arm/mach-omap2/board-omap3evm.c
 +++ b/arch/arm/mach-omap2/board-omap3evm.c
 @@ -704,7 +704,7 @@ static void __init omap3_evm_init(void)
 omap_sdrc_init(mt46h32m32lf6_sdrc_params, NULL);

 /* OMAP3EVM uses ISP1504 phy and so register nop transceiver */
 -   usb_nop_xceiv_register();
 +   usb_nop_xceiv_register(0);

 if (get_omap3_evm_rev() = OMAP3EVM_BOARD_GEN_2) {
 /* enable EHCI VBUS using GPIO22 */
 diff --git a/drivers/usb/musb/am35x.c b/drivers/usb/musb/am35x.c
 index 01203eb..eb6220f 100644
 --- a/drivers/usb/musb/am35x.c
 +++ b/drivers/usb/musb/am35x.c
 @@ -364,7 +364,7 @@ static int am35x_musb_init(struct musb *musb)
 if (!rev)
 return -ENODEV;

 -   usb_nop_xceiv_register();
 +   usb_nop_xceiv_register(musb-id);
 musb-xceiv = usb_get_phy(USB_PHY_TYPE_USB2);
 if (IS_ERR_OR_NULL(musb-xceiv))
 return -ENODEV;
 @@ -408,7 +408,7 @@ static int am35x_musb_exit(struct musb *musb)
 data-set_phy_power(0);

 usb_put_phy(musb-xceiv);
 -   usb_nop_xceiv_unregister();
 +   usb_nop_xceiv_unregister(musb-xceiv);

 return 0;
  }
 diff --git a/drivers/usb/musb/blackfin.c b/drivers/usb/musb/blackfin.c
 index c848b82..03d081c 100644
 --- a/drivers/usb/musb/blackfin.c
 +++ b/drivers/usb/musb/blackfin.c
 @@ -415,7 +415,7 @@ static int bfin_musb_init(struct musb *musb)
 }
 gpio_direction_output(musb-config-gpio_vrsel, 0);

 -   usb_nop_xceiv_register();
 +   usb_nop_xceiv_register(musb-id);
 musb-xceiv = usb_get_phy(USB_PHY_TYPE_USB2);
 if (IS_ERR_OR_NULL(musb-xceiv)) {
 gpio_free(musb-config-gpio_vrsel);
 @@ -442,7 +442,7 @@ static int bfin_musb_exit(struct musb *musb)
 gpio_free(musb-config-gpio_vrsel);

 usb_put_phy(musb-xceiv);
 -   usb_nop_xceiv_unregister();
 +   usb_nop_xceiv_unregister(musb-xceiv);
 return 0;
  }

 diff --git a/drivers/usb/musb/da8xx.c b/drivers/usb/musb/da8xx.c
 index cebd9d7..3ce4a92 100644
 --- a/drivers/usb/musb/da8xx.c
 +++ b/drivers/usb/musb/da8xx.c
 @@ -425,7 +425,7 @@ static int da8xx_musb_init(struct musb *musb)
 if (!rev)
 goto fail;

 -   usb_nop_xceiv_register();
 +   usb_nop_xceiv_register(musb-id);
 musb-xceiv = usb_get_phy(USB_PHY_TYPE_USB2);
 if (IS_ERR_OR_NULL(musb-xceiv))
 goto fail;
 @@ -460,7 +460,7 @@ static int da8xx_musb_exit(struct musb *musb)
 phy_off();

 usb_put_phy(musb-xceiv);
 -   usb_nop_xceiv_unregister();
 +   usb_nop_xceiv_unregister(musb-xceiv);

 return 0;
  }
 diff --git a/drivers/usb/musb/davinci.c b/drivers/usb/musb/davinci.c
 index 3f094f2..d5156b3 100644
 --- a/drivers/usb/musb/davinci.c
 +++ b/drivers/usb/musb/davinci.c
 @@ -385,7 +385,7 @@ static int davinci_musb_init(struct musb *musb)
 void __iomem*tibase = musb-ctrl_base;
 u32 revision;

 -   usb_nop_xceiv_register();
 +   usb_nop_xceiv_register(musb-id);
 musb-xceiv = usb_get_phy(USB_PHY_TYPE_USB2);
 if (IS_ERR_OR_NULL(musb-xceiv))
 goto unregister;
 @@ -447,7 +447,7 @@ static int davinci_musb_init(struct musb *musb)
  fail:
 usb_put_phy(musb-xceiv);
  unregister:
 -   usb_nop_xceiv_unregister();
 +   usb_nop_xceiv_unregister(musb-xceiv);
 return -ENODEV;
  }

 @@ -496,7 +496,7 @@ static int davinci_musb_exit(struct musb *musb)
 phy_off();

 usb_put_phy(musb-xceiv);
 -   usb_nop_xceiv_unregister();
 +   usb_nop_xceiv_unregister(musb-xceiv);

 return 0;
  }
 diff --git a/drivers/usb/musb/musb_dsps.c b/drivers/usb/musb/musb_dsps.c
 index a2c8a06..9fcacff 100644
 --- a/drivers/usb/musb/musb_dsps.c
 +++ b/drivers/usb/musb/musb_dsps.c
 @@ -420,8 +420,8 @@ static int dsps_musb_init(struct musb *musb)
  

RE: [PATCH v3 04/11] usb: otg: nop: add support for multiple tranceiver

2012-07-19 Thread Gupta, Ajay Kumar
Hi,
  Currently we have one single nop transceiver support as same is
  defined as a global variable in drivers/usb/otg/nop-usb-xceiv.c.
  This need to be changed to support multiple otg controller each
  using nop transceiver on a platform such as am335x.
 
  Signed-off-by: Ajay Kumar Gupta ajay.gu...@ti.com
  ---
   arch/arm/mach-omap2/board-omap3evm.c |2 +-
   drivers/usb/musb/am35x.c |4 ++--
   drivers/usb/musb/blackfin.c  |4 ++--
   drivers/usb/musb/da8xx.c |4 ++--
   drivers/usb/musb/davinci.c   |6 +++---
   drivers/usb/musb/musb_dsps.c |   10 +-
   drivers/usb/musb/tusb6010.c  |6 +++---
   drivers/usb/otg/nop-usb-xceiv.c  |   20 
   include/linux/usb/otg.h  |9 +
   9 files changed, 35 insertions(+), 30 deletions(-)
 
  diff --git a/arch/arm/mach-omap2/board-omap3evm.c b/arch/arm/mach-
 omap2/board-omap3evm.c
  index ef230a0..a3393bc 100644
[...]
  diff --git a/include/linux/usb/otg.h b/include/linux/usb/otg.h
  index 4636d39..36cc791 100644
  --- a/include/linux/usb/otg.h
  +++ b/include/linux/usb/otg.h
  @@ -95,6 +95,7 @@ struct usb_phy {
  struct device   *dev;
  const char  *label;
  unsigned int flags;
  +   u8  id;
 
 Do we really need to have *id* in phy??

I will update the patches dropping this.

 
  enum usb_phy_type   type;
  enum usb_otg_state  state;
  @@ -137,14 +138,14 @@ extern void usb_remove_phy(struct usb_phy *);
 
   #if defined(CONFIG_NOP_USB_XCEIV) ||
 (defined(CONFIG_NOP_USB_XCEIV_MODULE)  defined(MODULE))
   /* sometimes transceivers are accessed only through e.g. ULPI */

  -extern void usb_nop_xceiv_register(void);
  -extern void usb_nop_xceiv_unregister(void);
  +extern void usb_nop_xceiv_register(int id);
  +extern void usb_nop_xceiv_unregister(struct usb_phy *);

 IMHO,  these declarations shouldn't be in usb/otg.h. It can be in a
 header file specific to usb_nop?

They were in otg.h and just definition getting changed so I think they
need to be in otg.h only as a logical change of this patch.

Location can be changed as a separate patch later.

Thanks,
Ajay
 
 Thanks
 Kishon
--
To unsubscribe from this list: send the line unsubscribe linux-usb in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html