Re: [PATCH 2/4] USB: OTG: Make otg_get_transceiver() and otg_set_transceiver() generic

From: pHilipp Zabel
Date: Mon Aug 25 2008 - 09:35:24 EST


Hi,

On Sat, Jan 19, 2008 at 4:37 PM, Felipe Balbi <me@xxxxxxxxxxxxxxx> wrote:
> From: Tony Lidgren <tony@xxxxxxxxxxx>
>
> Move otg_get_transceiver() and otg_set_transceiver() from omap specific code
> to common otg.c so other upcoming drivers can share them.
>
> Signed-off-by: Tony Lindgren <tony@xxxxxxxxxxx>
> Signed-off-by: Felipe Balbi <me@xxxxxxxxxxxxxxx>
> ---
> arch/arm/plat-omap/usb.c | 32 --------------------------------
> drivers/usb/core/otg.c | 20 ++++++++++++++++++++
> 2 files changed, 20 insertions(+), 32 deletions(-)
>
> diff --git a/drivers/usb/core/otg.c b/drivers/usb/core/otg.c
> index 11967c0..531afa6 100644
> --- a/drivers/usb/core/otg.c
> +++ b/drivers/usb/core/otg.c
> @@ -14,9 +14,29 @@
> #include <linux/byteorder/generic.h>
> #include <linux/gfp.h>
> #include <linux/usb.h>
> +#include <linux/usb/otg.h>
>
> #include "otg_whitelist.h"
>
> +static struct otg_transceiver *xceiv;
> +
> +int otg_set_transceiver(struct otg_transceiver *x)
> +{
> + if (xceiv && x)
> + return -EBUSY;
> + xceiv = x;
> + return 0;
> +}
> +EXPORT_SYMBOL(otg_set_transceiver);
> +
> +struct otg_transceiver *otg_get_transceiver(void)
> +{
> + if (xceiv)
> + get_device(xceiv->dev);
> + return xceiv;
> +}
> +EXPORT_SYMBOL(otg_get_transceiver);
> +
> #ifdef CONFIG_USB_OTG_WHITELIST
>
> /*
> diff --git a/arch/arm/plat-omap/usb.c b/arch/arm/plat-omap/usb.c
> index a5aedf9..5cd39fa 100644
> --- a/arch/arm/plat-omap/usb.c
> +++ b/arch/arm/plat-omap/usb.c
> @@ -76,38 +76,6 @@
>
> /*-------------------------------------------------------------------------*/
>
> -#ifdef CONFIG_ARCH_OMAP_OTG
> -
> -static struct otg_transceiver *xceiv;
> -
> -/**
> - * otg_get_transceiver - find the (single) OTG transceiver driver
> - *
> - * Returns the transceiver driver, after getting a refcount to it; or
> - * null if there is no such transceiver. The caller is responsible for
> - * releasing that count.
> - */
> -struct otg_transceiver *otg_get_transceiver(void)
> -{
> - if (xceiv)
> - get_device(xceiv->dev);
> - return xceiv;
> -}
> -EXPORT_SYMBOL(otg_get_transceiver);
> -
> -int otg_set_transceiver(struct otg_transceiver *x)
> -{
> - if (xceiv && x)
> - return -EBUSY;
> - xceiv = x;
> - return 0;
> -}
> -EXPORT_SYMBOL(otg_set_transceiver);
> -
> -#endif
> -
> -/*-------------------------------------------------------------------------*/
> -
> #if defined(CONFIG_ARCH_OMAP_OTG) || defined(CONFIG_ARCH_OMAP15XX)
>
> static u32 __init omap_usb0_init(unsigned nwires, unsigned is_device)
> --
> 1.5.4.rc3.24.gb53139
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@xxxxxxxxxxxxxxx
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/
>

what is the status of this patch? I guess moving
otg_get/set_transceiver into usb core like this (and adding
otg_put_transceiver) is better than duplicating this code for PXA and
other architectures?

regards
Philipp
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/