All of lore.kernel.org
 help / color / mirror / Atom feed
From: Amit Kucheria <amit.kucheria@verdurent.com>
To: Kevin Hilman <khilman@deeprootsystems.com>
Cc: me@felipebalbi.com, felipe.balbi@nokia.com, "Gupta,
	Ajay Kumar" <ajay.gupta@ti.com>,
	linux-omap@vger.kernel.org, tony@atomide.com
Subject: Re: usb_nop_xceiv_register() missing when OTG built as modules
Date: Sun, 23 May 2010 02:53:10 +0300	[thread overview]
Message-ID: <20100522235310.GA15859@matterhorn.lan> (raw)
In-Reply-To: <87y6i6zatj.fsf@deeprootsystems.com>

[-- Attachment #1: Type: text/plain, Size: 1790 bytes --]

On 10 Mar 05, Kevin Hilman wrote:
> <me@felipebalbi.com> writes:
> 
> > On Fri, 05 Mar 2010 09:59:52 -0800, Kevin Hilman
> >> It would be my fault if I wrote those board files.  ;)
> >
> > sure, sorry. Maybe I didn't express myself really well.
> >
> >>> I suggest you keep usb as a module, but keep nop xceiv built-in.
> >> 
> >> Yes, that's the workaround I'm already using, but it is not a fix.
> >> 
> >> This dependency breaks the ability to build a minimal kernel with
> >> everything as modules (allmodconfig)
> >
> > now this is a really good point. Haven't thought that way...
> >
> >> The nop xceiv needs a way for built-in code to register itself for
> >> the cases when no xceiv is built as a module.
> >
> > when way to do that is not to use usb_nop_xceiv_register() and
> > add the platform_device to the board-files. I never really liked
> > the whole usb_nop_xceiv_register() hackery. Almost all board-files
> > have a list of platform_devices which get added by platform_add_devices()
> > anyways, so why not using that ??
> >
> > to me the usb_nop_xceiv_register() thing is just a lazy way of
> > defining platform_devices. Specially one that takes some 3
> > lines of code only.
> 
> Completely agree.  I didn't take the time to look into the USB code to
> see if a simple plaform device creation would fix this.
> 
> If so, any chance of a patch for OMAP3EVM and 4430SDP?
> 
> I'll be happy to test on OMAP3EVM, but don't have a 4430.
> 
> Kevin

Here is a compile-tested patch since I haven't seen this fixed in mainline
yet.  It applies to the tip of Linus' tree.

Attempting to remove usb_nop_xceiv_register() completely will require someone
with more knowledge of davinci and blackfin archs to comment on what boards
need the platform_device defined.

Cheers,
Amit


[-- Attachment #2: 0001-omap-remove-calls-to-usb_nop_xceiv_register-from-boa.patch --]
[-- Type: text/x-diff, Size: 2856 bytes --]

>From 3df714f995b0895e905090760482194233f66a1d Mon Sep 17 00:00:00 2001
Message-Id: <3df714f995b0895e905090760482194233f66a1d.1274570700.git.amit.kucheria@canonical.com>
From: Amit Kucheria <amit.kucheria@canonical.com>
Date: Sun, 23 May 2010 01:35:00 +0300
Subject: [PATCH] omap: remove calls to usb_nop_xceiv_register from board files

This will allow the OMAP USB drivers to be compiled in as modules. At the
moment, CONFIG_NOP_USB_XCEIV cannot be a module.

Signed-off-by: Amit Kucheria <amit.kucheria@canonical.com>
---
 arch/arm/mach-omap2/board-4430sdp.c  |   10 ++++++++--
 arch/arm/mach-omap2/board-omap3evm.c |   11 ++++++++---
 2 files changed, 16 insertions(+), 5 deletions(-)

diff --git a/arch/arm/mach-omap2/board-4430sdp.c b/arch/arm/mach-omap2/board-4430sdp.c
index e4a5d66..131f0fd 100644
--- a/arch/arm/mach-omap2/board-4430sdp.c
+++ b/arch/arm/mach-omap2/board-4430sdp.c
@@ -110,8 +110,16 @@ static struct platform_device sdp4430_lcd_device = {
 	.id		= -1,
 };
 
+static struct platform_device sdp4430_nop_usb_device = {
+	.name		= "nop_usb_xceiv",
+	.id		= -1,
+	.resource	= NULL,
+	.num_resources	= 0,
+};
+
 static struct platform_device *sdp4430_devices[] __initdata = {
 	&sdp4430_lcd_device,
+	&sdp4430_nop_usb_device,
 };
 
 static struct omap_lcd_config sdp4430_lcd_config __initdata = {
@@ -374,8 +382,6 @@ static void __init omap_4430sdp_init(void)
 	platform_add_devices(sdp4430_devices, ARRAY_SIZE(sdp4430_devices));
 	omap_serial_init();
 	omap4_twl6030_hsmmc_init(mmc);
-	/* OMAP4 SDP uses internal transceiver so register nop transceiver */
-	usb_nop_xceiv_register();
 	/* FIXME: allow multi-omap to boot until musb is updated for omap4 */
 	if (!cpu_is_omap44xx())
 		usb_musb_init(&musb_board_data);
diff --git a/arch/arm/mach-omap2/board-omap3evm.c b/arch/arm/mach-omap2/board-omap3evm.c
index 81bba19..456e218 100644
--- a/arch/arm/mach-omap2/board-omap3evm.c
+++ b/arch/arm/mach-omap2/board-omap3evm.c
@@ -620,6 +620,13 @@ struct spi_board_info omap3evm_spi_board_info[] = {
 	},
 };
 
+static struct platform_device omap3_evm_nop_usb_device = {
+	.name		= "nop_usb_xceiv",
+	.id		= -1,
+	.resource	= NULL,
+	.num_resources	= 0,
+};
+
 static struct omap_board_config_kernel omap3_evm_config[] __initdata = {
 };
 
@@ -634,6 +641,7 @@ static void __init omap3_evm_init_irq(void)
 
 static struct platform_device *omap3_evm_devices[] __initdata = {
 	&omap3_evm_dss_device,
+	&omap3_evm_nop_usb_device,
 };
 
 static struct ehci_hcd_omap_platform_data ehci_pdata __initdata = {
@@ -682,9 +690,6 @@ static void __init omap3_evm_init(void)
 
 	omap_serial_init();
 
-	/* OMAP3EVM uses ISP1504 phy and so register nop transceiver */
-	usb_nop_xceiv_register();
-
 	if (get_omap3_evm_rev() >= OMAP3EVM_BOARD_GEN_2) {
 		/* enable EHCI VBUS using GPIO22 */
 		omap_mux_init_gpio(22, OMAP_PIN_INPUT_PULLUP);
-- 
1.7.0.4


  reply	other threads:[~2010-05-22 23:52 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-03-04  0:09 usb_nop_xceiv_register() missing when OTG built as modules Kevin Hilman
2010-03-04  4:29 ` Gupta, Ajay Kumar
2010-03-04 17:32   ` Kevin Hilman
2010-03-05  3:50     ` Gupta, Ajay Kumar
2010-03-05  9:04     ` Felipe Balbi
2010-03-05 17:59       ` Kevin Hilman
2010-03-05 19:54         ` me
2010-03-05 22:02           ` Kevin Hilman
2010-05-22 23:53             ` Amit Kucheria [this message]
2010-05-24  7:07               ` Gupta, Ajay Kumar
2010-05-26  6:03                 ` Felipe Balbi
2010-05-26  6:20                   ` Gupta, Ajay Kumar
2010-05-26  6:53                   ` Gupta, Ajay Kumar
2010-05-26  6:02               ` Felipe Balbi

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20100522235310.GA15859@matterhorn.lan \
    --to=amit.kucheria@verdurent.com \
    --cc=ajay.gupta@ti.com \
    --cc=felipe.balbi@nokia.com \
    --cc=khilman@deeprootsystems.com \
    --cc=linux-omap@vger.kernel.org \
    --cc=me@felipebalbi.com \
    --cc=tony@atomide.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.