[oe-commits] Graeme Gregory : linux-omap-zoomsync_2.6.32.bb : OTG support without gadget

git version control git at git.openembedded.org
Wed Apr 21 10:38:58 UTC 2010


Module: openembedded.git
Branch: org.openembedded.dev
Commit: cb025b960eb52ad834b3df588d8352d071b863b6
URL:    http://gitweb.openembedded.net/?p=openembedded.git&a=commit;h=cb025b960eb52ad834b3df588d8352d071b863b6

Author: Graeme Gregory <dp at xora.org.uk>
Date:   Wed Apr 21 11:37:53 2010 +0100

linux-omap-zoomsync_2.6.32.bb : OTG support without gadget

Taken from linux-omap-psp patches, makes zoom2 much more user friendly

---

 ...-musb-allow-host-io-without-gadget-module.patch |   90 ++++++++++++++++++++
 recipes/linux/linux-omap-zoomsync_2.6.32.bb        |   12 ++-
 2 files changed, 97 insertions(+), 5 deletions(-)

diff --git a/recipes/linux/linux-omap-zoomsync-2.6.32/0042-musb-allow-host-io-without-gadget-module.patch b/recipes/linux/linux-omap-zoomsync-2.6.32/0042-musb-allow-host-io-without-gadget-module.patch
new file mode 100644
index 0000000..5e6a0e2
--- /dev/null
+++ b/recipes/linux/linux-omap-zoomsync-2.6.32/0042-musb-allow-host-io-without-gadget-module.patch
@@ -0,0 +1,90 @@
+From 856e80e1411ff5fad939545b0b7d2c50676ce5c9 Mon Sep 17 00:00:00 2001
+From: Ajay Kumar Gupta <ajay.gupta at ti.com>
+Date: Wed, 14 Apr 2010 16:08:37 +0530
+Subject: [PATCH 42/43] musb: allow host io without gadget module
+
+Signed-off-by: Ajay Kumar Gupta <ajay.gupta at ti.com>
+---
+ drivers/usb/musb/musb_core.c   |   14 +++++++++-----
+ drivers/usb/musb/musb_gadget.c |   26 --------------------------
+ 2 files changed, 9 insertions(+), 31 deletions(-)
+
+diff --git a/drivers/usb/musb/musb_core.c b/drivers/usb/musb/musb_core.c
+index 2c1400f..a80e9f9 100644
+--- a/drivers/usb/musb/musb_core.c
++++ b/drivers/usb/musb/musb_core.c
+@@ -2101,10 +2101,12 @@ bad_config:
+ 	 * (We expect the ID pin to be forcibly grounded!!)
+ 	 * Otherwise, wait till the gadget driver hooks up.
+ 	 */
+-	if (!is_otg_enabled(musb) && is_host_enabled(musb)) {
+-		MUSB_HST_MODE(musb);
+-		musb->xceiv->default_a = 1;
+-		musb->xceiv->state = OTG_STATE_A_IDLE;
++	if (is_host_enabled(musb)) {
++		if (!is_otg_enabled(musb)) {
++			MUSB_HST_MODE(musb);
++			musb->xceiv->default_a = 1;
++			musb->xceiv->state = OTG_STATE_A_IDLE;
++		}
+ 
+ 		status = usb_add_hcd(musb_to_hcd(musb), -1, 0);
+ 
+@@ -2115,7 +2117,9 @@ bad_config:
+ 					& MUSB_DEVCTL_BDEVICE
+ 				? 'B' : 'A'));
+ 
+-	} else /* peripheral is enabled */ {
++	}
++	/* peripheral is enabled */
++	if (is_peripheral_enabled(musb)) {
+ 		MUSB_DEV_MODE(musb);
+ 		musb->xceiv->default_a = 0;
+ 		musb->xceiv->state = OTG_STATE_B_IDLE;
+diff --git a/drivers/usb/musb/musb_gadget.c b/drivers/usb/musb/musb_gadget.c
+index 1c3610b..d75db21 100644
+--- a/drivers/usb/musb/musb_gadget.c
++++ b/drivers/usb/musb/musb_gadget.c
+@@ -1752,24 +1752,6 @@ int usb_gadget_register_driver(struct usb_gadget_driver *driver)
+ 		otg_set_peripheral(musb->xceiv, &musb->g);
+ 
+ 		spin_unlock_irqrestore(&musb->lock, flags);
+-
+-		if (is_otg_enabled(musb)) {
+-			DBG(3, "OTG startup...\n");
+-
+-			/* REVISIT:  funcall to other code, which also
+-			 * handles power budgeting ... this way also
+-			 * ensures HdrcStart is indirectly called.
+-			 */
+-			retval = usb_add_hcd(musb_to_hcd(musb), -1, 0);
+-			if (retval < 0) {
+-				DBG(1, "add_hcd failed, %d\n", retval);
+-				spin_lock_irqsave(&musb->lock, flags);
+-				otg_set_peripheral(musb->xceiv, NULL);
+-				musb->gadget_driver = NULL;
+-				musb->g.dev.driver = NULL;
+-				spin_unlock_irqrestore(&musb->lock, flags);
+-			}
+-		}
+ 	}
+ 
+ 	return retval;
+@@ -1865,14 +1847,6 @@ int usb_gadget_unregister_driver(struct usb_gadget_driver *driver)
+ 		retval = -EINVAL;
+ 	spin_unlock_irqrestore(&musb->lock, flags);
+ 
+-	if (is_otg_enabled(musb) && retval == 0) {
+-		usb_remove_hcd(musb_to_hcd(musb));
+-		/* FIXME we need to be able to register another
+-		 * gadget driver here and have everything work;
+-		 * that currently misbehaves.
+-		 */
+-	}
+-
+ 	return retval;
+ }
+ EXPORT_SYMBOL(usb_gadget_unregister_driver);
+-- 
+1.6.6.1
+
diff --git a/recipes/linux/linux-omap-zoomsync_2.6.32.bb b/recipes/linux/linux-omap-zoomsync_2.6.32.bb
index b869a88..8c556fb 100644
--- a/recipes/linux/linux-omap-zoomsync_2.6.32.bb
+++ b/recipes/linux/linux-omap-zoomsync_2.6.32.bb
@@ -14,7 +14,7 @@ SRCREV_omapzoom2 = "015cbaf1035cd9a61d33a27de2a22902555db3c5"
 
 SRCREV_omapzoom36x = "2e3c681c6228de2a3f8fbb0cfbc940e7ea825a09"
 
-OEV = "oe6"
+OEV = "oe7"
 PE = "1"
 
 # The main PR is now using MACHINE_KERNEL_PR, for omap3 see conf/machine/include/omap3.inc
@@ -25,14 +25,16 @@ PR_append = "+gitr${SRCREV}"
 
 
 SRC_URI_omapzoom2 = "git://dev.omapzoom.org/pub/scm/integration/kernel-omap3.git;branch=master;protocol=git \
+       file://0042-musb-allow-host-io-without-gadget-module.patch;patch=1 \
        file://rev.patch;patch=1 \
-	   file://logo_linux_clut224.ppm \
-	   file://defconfig"
+       file://logo_linux_clut224.ppm \
+       file://defconfig"
 
 SRC_URI_omapzoom36x = "git://dev.omapzoom.org/pub/scm/integration/kernel-omap3.git;branch=L23.I3.3;protocol=git \
+       file://0042-musb-allow-host-io-without-gadget-module.patch;patch=1 \
        file://rev.patch;patch=1 \
-	   file://logo_linux_clut224.ppm \
-	   file://defconfig"
+       file://logo_linux_clut224.ppm \
+       file://defconfig"
 
 SRC_URI_append = " \
 "





More information about the Openembedded-commits mailing list