Skip to contentSkip to conversation

OMAP support in mainline?

PATCH In review Nathan Monson 6 participants 14 messages Oct 3, 2008 – Oct 6, 2008

lore
Share & tools
lore
#0 lore raw
Quoted 3 lines · Felipe Balbi

Yeah, we lost some musb history when it went to mainline. I didn't test this patch yet cuz I've been quite busy at work, but it should make beagle work. Could you tell me if makes it work ?

This patch has been working for me until the latest round of twl4030 changes.

Commit fde13f8fc7de977e71304fd500fed029b41ceb19/"move twl4030-usb to platform-device" changed subsys_initcall to module_init in twl4030-usb.

Now, twl4030-usb is initialized after musb. This means otg_set_transceiver is called later in boot, so the patch below gets null back from otg_get_transceiver and oopses on *xceiv.

Unfortunately, without the patch, USB host doesn't work on the BeagleBoard.

Other than this, the new kernel seems to work pretty well for me.

- Nathan

Quoted 19 lines
drivers/usb/musb/omap2430.c +2 -0
index 9d2dcb1..f7fe91e 100644
@@ -215,12 +215,14 @@ void musb_platform_set_mode(struct musb *musb, u8 musb_mode)
 
 int __init musb_platform_init(struct musb *musb)
 {
+       struct otg_transceiver *xceiv = otg_get_transceiver();
 u32 l;
 
 #if defined(CONFIG_ARCH_OMAP2430)
 omap_cfg_reg(AE5_2430_USB0HS_STP);
 #endif
 
+       memcpy(musb->xceiv, xceiv, sizeof(*xceiv));
 musb_platform_resume(musb);
 
 l = omap_readl(OTG_SYSCONFIG);
#1 lore raw
Quoted 11 lines · Nathan Monson
Quoted 3 lines · Felipe Balbi

Yeah, we lost some musb history when it went to mainline. I didn't test this patch yet cuz I've been quite busy at work, but it should make beagle work. Could you tell me if makes it work ?

This patch has been working for me until the latest round of twl4030 changes.

Commit fde13f8fc7de977e71304fd500fed029b41ceb19/"move twl4030-usb to platform-device" changed subsys_initcall to module_init in twl4030-usb.

Quoted 7 lines

Now, twl4030-usb is initialized after musb. This means otg_set_transceiver is called later in boot, so the patch below gets null back from otg_get_transceiver and oopses on *xceiv.

Unfortunately, without the patch, USB host doesn't work on the BeagleBoard.

Other than this, the new kernel seems to work pretty well for me.

Dave, this will be fixed when i2c with your patch initializing i2c earlier on boot. Right ?

For now, let's keep subsys_initcall() on twl4030_usb. I'll prepare a patch and send it really soon.

Thanks for notifying me Nathan.

Signature · 1 line
balbi
#2 lore raw
Quoted 12 lines · Felipe Balbi
Quoted 11 lines · Nathan Monson
Quoted 3 lines · Felipe Balbi

Yeah, we lost some musb history when it went to mainline. I didn't test this patch yet cuz I've been quite busy at work, but it should make beagle work. Could you tell me if makes it work ?

This patch has been working for me until the latest round of twl4030 changes.

Commit fde13f8fc7de977e71304fd500fed029b41ceb19/"move twl4030-usb to platform-device" changed subsys_initcall to module_init in twl4030-usb.

Quoted 5 lines
Quoted 5 lines

Now, twl4030-usb is initialized after musb. This means otg_set_transceiver is called later in boot, so the patch below gets null back from otg_get_transceiver and oopses on *xceiv.

Unfortunately, without the patch, USB host doesn't work on the BeagleBoard.

I see it working ... there's a bit of oddness in a host-only config, devices have to be plugged in after boot, but "doesn't work" seems pretty wrong.

Quoted 4 lines
Quoted 1 line

Other than this, the new kernel seems to work pretty well for me.

Dave, this will be fixed when i2c with your patch initializing i2c earlier on boot. Right ?

That's just driver model init, allowing i2c drivers to register earlier, so subsys initcalls can rely on i2c to already have been initialized ... so, no.

Within a given initcall level -- like subsys, or (later) driver -- the initialization sequence is controlled by kernel link order, which is a function of location in the source tree.

Quoted 2 lines

For now, let's keep subsys_initcall() on twl4030_usb. I'll prepare a patch and send it really soon.

That's the right longer-term answer, I think.

- Dave

Quoted 7 lines

Thanks for notifying me Nathan.

Signature · 1 line
balbi
#3 lore raw

PATCH 1/1 i2c: change twl4030-usb back to subsys_initcall

without it, otg_get/set_transceiver won't be useful and twl4030-usb transceiver won't get to musb code.

---
 drivers/i2c/chips/twl4030-usb.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)
drivers/i2c/chips/twl4030-usb.c +1 -1
index 133cc0f..922d7d6 100644
@@ -774,7 +774,7 @@ static int __init twl4030_usb_init(void)
 {
 	return platform_driver_register(&twl4030_driver);
 }
-module_init(twl4030_usb_init);
+subsys_init(twl4030_usb_init);
 
 static void __exit twl4030_usb_exit(void)
 {
Signature · 1 line
1.6.0.2.307.gc427
#4 lore raw

Re: [PATCH] i2c: change twl4030-usb back to subsys_initcall

Op 3 okt 2008, om 11:45 heeft Felipe Balbi het volgende geschreven:

Quoted 2 lines

without it, otg_get/set_transceiver won't be useful and twl4030-usb transceiver won't get to musb code.

Is the 'fix-something' patch still needed, and if yes, why isn't it in l-o git yet?

regards,

Koen

Quoted 28 lines

---
drivers/i2c/chips/twl4030-usb.c | 2 +-

1 files changed, 1 insertions(+), 1 deletions(-)
drivers/i2c/chips/twl4030-usb.c +1 -1
index 133cc0f..922d7d6 100644
@@ -774,7 +774,7 @@ static int __init twl4030_usb_init(void)
 {
 	return platform_driver_register(&twl4030_driver);
 }
-module_init(twl4030_usb_init);
+subsys_init(twl4030_usb_init);
 
 static void __exit twl4030_usb_exit(void)
 {
Signature · 6 lines
1.6.0.2.307.gc427

--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
#5 lore raw

Re: [PATCH] i2c: change twl4030-usb back to subsys_initcall

Quoted 8 lines · ext Koen Kooi

Op 3 okt 2008, om 11:45 heeft Felipe Balbi het volgende geschreven:

Quoted 2 lines

without it, otg_get/set_transceiver won't be useful and twl4030-usb transceiver won't get to musb code.

Is the 'fix-something' patch still needed, and if yes, why isn't it in l-o git yet?

we need that otg_get/set_transceiver call, yes. But those are omap specifc. there's a patch pending in linux-usb making those calls generic.

I'd say we can keep a patch in l-o only untill otg_get/set_transceiver hooks get accepted.

What say you Tony ?

Signature · 1 line
balbi
#6 lore raw

Re: [PATCH] i2c: change twl4030-usb back to subsys_initcall

Quoted 10 lines · Felipe Balbi
Quoted 8 lines · ext Koen Kooi

Op 3 okt 2008, om 11:45 heeft Felipe Balbi het volgende geschreven:

Quoted 2 lines

without it, otg_get/set_transceiver won't be useful and twl4030-usb transceiver won't get to musb code.

Is the 'fix-something' patch still needed, and if yes, why isn't it in l-o git yet?

Quoted 8 lines

we need that otg_get/set_transceiver call, yes. But those are omap specifc. there's a patch pending in linux-usb making those calls generic.

I'd say we can keep a patch in l-o only untill otg_get/set_transceiver hooks get accepted.

What say you Tony ?

Sure, we should keep things working for all the omap users while waiting for the necessary stuff to get merged into mainline.

Felipe, just let me know what we need for l-o tree for musb.

Tony

#7 lore raw

Re: [PATCH] i2c: change twl4030-usb back to subsys_initcall

Quoted 18 lines · Tony Lindgren
Quoted 17 lines · Felipe Balbi
Quoted 8 lines · ext Koen Kooi

Op 3 okt 2008, om 11:45 heeft Felipe Balbi het volgende geschreven:

Quoted 2 lines

without it, otg_get/set_transceiver won't be useful and twl4030-usb transceiver won't get to musb code.

Is the 'fix-something' patch still needed, and if yes, why isn't it in l-o git yet?

we need that otg_get/set_transceiver call, yes. But those are omap specifc. there's a patch pending in linux-usb making those calls generic.

I'd say we can keep a patch in l-o only untill otg_get/set_transceiver hooks get accepted.

Quoted 6 lines
Quoted 1 line

What say you Tony ?

Sure, we should keep things working for all the omap users while waiting for the necessary stuff to get merged into mainline.

Felipe, just let me know what we need for l-o tree for musb.

I'll send you a patch in a jiffy

Signature · 1 line
balbi
#8 lore raw

Re: [PATCH] i2c: change twl4030-usb back to subsys_initcall

In reply to Felipe Balbi
Quoted 4 lines · Felipe Balbi

without it, otg_get/set_transceiver won't be useful and twl4030-usb transceiver won't get to musb code.

+subsys_init(twl4030_usb_init);

Should this be subsys_initcall?

- Nathan

#9 lore raw

Re: [PATCH] i2c: change twl4030-usb back to subsys_initcall

Quoted 7 lines · Nathan Monson
Quoted 4 lines · Felipe Balbi

without it, otg_get/set_transceiver won't be useful and twl4030-usb transceiver won't get to musb code.

+subsys_init(twl4030_usb_init);

Should this be subsys_initcall?

Crap... good catch. Sorry for that. new one coming.

Signature · 1 line
balbi
#10 lore raw

PATCH 1/1 i2c: change twl4030-usb back to subsys_initcall

In reply to Felipe Balbi

without it, otg_get/set_transceiver won't be useful and twl4030-usb transceiver won't get to musb code.

---
 drivers/i2c/chips/twl4030-usb.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)
drivers/i2c/chips/twl4030-usb.c +1 -1
index 133cc0f..922d7d6 100644
@@ -774,7 +774,7 @@ static int __init twl4030_usb_init(void)
 {
 	return platform_driver_register(&twl4030_driver);
 }
-module_init(twl4030_usb_init);
+subsys_initcall(twl4030_usb_init);
 
 static void __exit twl4030_usb_exit(void)
 {
Signature · 4 lines
1.6.0.2.307.gc427

-- 
balbi
#11 lore raw

Re: [PATCH] i2c: change twl4030-usb back to subsys_initcall

Quoted 2 lines · Felipe Balbi

without it, otg_get/set_transceiver won't be useful and twl4030-usb transceiver won't get to musb code.

Pushed to l-o tree.

Tony

Quoted 28 lines
---
 drivers/i2c/chips/twl4030-usb.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)
drivers/i2c/chips/twl4030-usb.c +1 -1
index 133cc0f..922d7d6 100644
@@ -774,7 +774,7 @@ static int __init twl4030_usb_init(void)
 {
 	return platform_driver_register(&twl4030_driver);
 }
-module_init(twl4030_usb_init);
+subsys_initcall(twl4030_usb_init);
 
 static void __exit twl4030_usb_exit(void)
 {
Signature · 8 lines
1.6.0.2.307.gc427

-- 
balbi
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
#12 lore raw
In reply to David Brownell
Quoted 5 lines · David Brownell
Quoted 1 line
Quoted 1 line

Unfortunately, without the patch, USB host doesn't work on the BeagleBoard.

I see it working ... there's a bit of oddness in a host-only config, devices have to be plugged in after boot, but "doesn't work" seems pretty wrong.

The secret is to unplug the A cable from the mini-AB port on the Beagleboard. I was un/replugging my cable from the hub repeatedly, thinking it was broken. But un/replugging from the mini-AB port makes everything appear. Thanks for the hint -- I was ready to give up.

- Nathan

#13 lore raw
Quoted 11 lines · Nathan Monson
Quoted 5 lines · David Brownell
Quoted 1 line
Quoted 1 line

Unfortunately, without the patch, USB host doesn't work on the BeagleBoard.

I see it working ... there's a bit of oddness in a host-only config, devices have to be plugged in after boot, but "doesn't work" seems pretty wrong.

The secret is to unplug the A cable from the mini-AB port on the Beagleboard. I was un/replugging my cable from the hub repeatedly, thinking it was broken. But un/replugging from the mini-AB port makes everything appear. Thanks for the hint -- I was ready to give up.

Yeah, I was pleased to discover that trick!

Of course, it's supposed to work without the unplug step too. :)

- Dave