aboutsummaryrefslogtreecommitdiffstats
path: root/usb.current
diff options
authorGreg Kroah-Hartman <gregkh@suse.de>2009-01-25 13:09:33 -0800
committerGreg Kroah-Hartman <gregkh@suse.de>2009-01-25 13:09:33 -0800
commit53aa7b785b8cd367068f565006620f9e3eb68108 (patch)
tree32aa4e93145e77647ac484edb5a0362024521812 /usb.current
parent4ded3df0a291c4217b76288e8817ee52d3c12945 (diff)
downloadpatches-53aa7b785b8cd367068f565006620f9e3eb68108.tar.gz
usb musb patches, finally...
Diffstat (limited to 'usb.current')
-rw-r--r--usb.current/usb-musb-cppi-bugfixes.patch75
-rw-r--r--usb.current/usb-musb-cppi-dma-fix.patch33
-rw-r--r--usb.current/usb-musb-davinci-buildfix.patch60
-rw-r--r--usb.current/usb-musb-free_irq-bugfix.patch38
-rw-r--r--usb.current/usb-musb-tusb6010-buildfix.patch39
-rw-r--r--usb.current/usb-musb-uses-endpoint-functions.patch110
-rw-r--r--usb.current/usb-musb_hdrc-another-davinci-buildfix.patch66
-rw-r--r--usb.current/usb-omap1-ohci-buildfix.patch57
-rw-r--r--usb.current/usb-prevent-musb-init-oops.patch39
9 files changed, 517 insertions, 0 deletions
diff --git a/usb.current/usb-musb-cppi-bugfixes.patch b/usb.current/usb-musb-cppi-bugfixes.patch
new file mode 100644
index 00000000000000..a1f6a8fdc2d787
--- /dev/null
+++ b/usb.current/usb-musb-cppi-bugfixes.patch
@@ -0,0 +1,75 @@
+From david-b@pacbell.net Sun Jan 25 12:55:57 2009
+From: Hugo Villeneuve <hugo@hugovil.com>
+Date: Sat, 24 Jan 2009 17:57:30 -0800
+Subject: USB: musb cppi bugfixes
+To: linux-usb@vger.kernel.org
+Cc: Greg KH <greg@kroah.com>, Felipe Balbi <felipebalbi@users.sourceforge.net>, Hugo Villeneuve <hugo@hugovil.com>
+Message-ID: <200901241757.30836.david-b@pacbell.net>
+Content-Disposition: inline
+
+
+From: Hugo Villeneuve <hugo@hugovil.com>
+
+These compilation errors are related to incorrect
+debugging macro and variable names and generated the
+following errors:
+
+ drivers/usb/musb/cppi_dma.c:437:5: warning: "MUSB_DEBUG" is not defined
+ drivers/usb/musb/cppi_dma.c: In function 'cppi_next_rx_segment':
+ drivers/usb/musb/cppi_dma.c:884: error: 'debug' undeclared (first use in this function)
+
+Signed-off-by: Hugo Villeneuve <hugo@hugovil.com>
+Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/usb/musb/cppi_dma.c | 9 +++++++--
+ 1 file changed, 7 insertions(+), 2 deletions(-)
+
+--- a/drivers/usb/musb/cppi_dma.c
++++ b/drivers/usb/musb/cppi_dma.c
+@@ -9,6 +9,7 @@
+ #include <linux/usb.h>
+
+ #include "musb_core.h"
++#include "musb_debug.h"
+ #include "cppi_dma.h"
+
+
+@@ -423,6 +424,7 @@ cppi_rndis_update(struct cppi_channel *c
+ }
+ }
+
++#ifdef CONFIG_USB_MUSB_DEBUG
+ static void cppi_dump_rxbd(const char *tag, struct cppi_descriptor *bd)
+ {
+ pr_debug("RXBD/%s %08x: "
+@@ -431,10 +433,11 @@ static void cppi_dump_rxbd(const char *t
+ bd->hw_next, bd->hw_bufp, bd->hw_off_len,
+ bd->hw_options);
+ }
++#endif
+
+ static void cppi_dump_rxq(int level, const char *tag, struct cppi_channel *rx)
+ {
+-#if MUSB_DEBUG > 0
++#ifdef CONFIG_USB_MUSB_DEBUG
+ struct cppi_descriptor *bd;
+
+ if (!_dbg_level(level))
+@@ -881,12 +884,14 @@ cppi_next_rx_segment(struct musb *musb,
+ bd->hw_options |= CPPI_SOP_SET;
+ tail->hw_options |= CPPI_EOP_SET;
+
+- if (debug >= 5) {
++#ifdef CONFIG_USB_MUSB_DEBUG
++ if (_dbg_level(5)) {
+ struct cppi_descriptor *d;
+
+ for (d = rx->head; d; d = d->next)
+ cppi_dump_rxbd("S", d);
+ }
++#endif
+
+ /* in case the preceding transfer left some state... */
+ tail = rx->last_processed;
diff --git a/usb.current/usb-musb-cppi-dma-fix.patch b/usb.current/usb-musb-cppi-dma-fix.patch
new file mode 100644
index 00000000000000..274f4c28c3e7ba
--- /dev/null
+++ b/usb.current/usb-musb-cppi-dma-fix.patch
@@ -0,0 +1,33 @@
+From david-b@pacbell.net Sun Jan 25 12:56:13 2009
+From: Swaminathan S <swami.iyer@ti.com>
+Date: Sat, 24 Jan 2009 17:57:37 -0800
+Subject: USB: musb cppi dma fix
+To: linux-usb@vger.kernel.org
+Cc: Greg KH <greg@kroah.com>, Felipe Balbi <felipebalbi@users.sourceforge.net>
+Message-ID: <200901241757.37411.david-b@pacbell.net>
+Content-Disposition: inline
+
+
+From: Swaminathan S <swami.iyer@ti.com>
+
+Initializes the actual_len field to 0 before every DMA transaction.
+
+Signed-off-by: Swaminathan S <swami.iyer@ti.com>
+Acked-by: Felipe Balbi <felipe.balbi@nokia.com>
+Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/usb/musb/cppi_dma.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+--- a/drivers/usb/musb/cppi_dma.c
++++ b/drivers/usb/musb/cppi_dma.c
+@@ -995,6 +995,7 @@ static int cppi_channel_program(struct d
+ cppi_ch->offset = 0;
+ cppi_ch->maxpacket = maxpacket;
+ cppi_ch->buf_len = len;
++ cppi_ch->channel.actual_len = 0;
+
+ /* TX channel? or RX? */
+ if (cppi_ch->transmit)
diff --git a/usb.current/usb-musb-davinci-buildfix.patch b/usb.current/usb-musb-davinci-buildfix.patch
new file mode 100644
index 00000000000000..b4551e48cf3336
--- /dev/null
+++ b/usb.current/usb-musb-davinci-buildfix.patch
@@ -0,0 +1,60 @@
+From david-b@pacbell.net Sun Jan 25 12:53:56 2009
+From: David Brownell <david-b@pacbell.net>
+Date: Sat, 24 Jan 2009 17:56:17 -0800
+Subject: USB: musb davinci buildfix
+To: linux-usb@vger.kernel.org
+Cc: Greg KH <greg@kroah.com>, Felipe Balbi <felipebalbi@users.sourceforge.net>, Kevin Hilman <khilman@deeprootsystems.com>
+Message-ID: <200901241756.17172.david-b@pacbell.net>
+Content-Disposition: inline
+
+
+From: David Brownell <dbrownell@users.sourceforge.net>
+
+Trying once more to get this merged. The original was submitted
+for 2.6.27-rc2 or so, and never got correctly merged. Neither
+were any of the numerous subsequent resends. Sigh.
+
+ CC drivers/usb/musb/davinci.o
+drivers/usb/musb/davinci.c:35:32: error: mach/arch/hardware.h: No such file or directory
+drivers/usb/musb/davinci.c:36:30: error: mach/arch/memory.h: No such file or directory
+drivers/usb/musb/davinci.c:37:28: error: mach/arch/gpio.h: No such file or directory
+drivers/usb/musb/davinci.c:373: error: redefinition of 'musb_platform_set_mode'
+drivers/usb/musb/davinci.c:368: error: previous definition of 'musb_platform_set_mode' was here
+
+Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
+Acked-by: Felipe Balbi <felipe.balbi@nokia.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/usb/musb/davinci.c | 13 ++++---------
+ 1 file changed, 4 insertions(+), 9 deletions(-)
+
+--- a/drivers/usb/musb/davinci.c
++++ b/drivers/usb/musb/davinci.c
+@@ -32,9 +32,10 @@
+ #include <linux/io.h>
+ #include <linux/gpio.h>
+
+-#include <mach/arch/hardware.h>
+-#include <mach/arch/memory.h>
+-#include <mach/arch/gpio.h>
++#include <mach/hardware.h>
++#include <mach/memory.h>
++#include <mach/gpio.h>
++
+ #include <asm/mach-types.h>
+
+ #include "musb_core.h"
+@@ -370,12 +371,6 @@ int musb_platform_set_mode(struct musb *
+ return -EIO;
+ }
+
+-int musb_platform_set_mode(struct musb *musb, u8 mode)
+-{
+- /* EVM can't do this (right?) */
+- return -EIO;
+-}
+-
+ int __init musb_platform_init(struct musb *musb)
+ {
+ void __iomem *tibase = musb->ctrl_base;
diff --git a/usb.current/usb-musb-free_irq-bugfix.patch b/usb.current/usb-musb-free_irq-bugfix.patch
new file mode 100644
index 00000000000000..0e86c86de558ae
--- /dev/null
+++ b/usb.current/usb-musb-free_irq-bugfix.patch
@@ -0,0 +1,38 @@
+From david-b@pacbell.net Sun Jan 25 12:54:30 2009
+From: Ajay Kumar Gupta <ajay.gupta@ti.com>
+Date: Sat, 24 Jan 2009 17:56:39 -0800
+Subject: USB: musb free_irq bugfix
+To: linux-usb@vger.kernel.org
+Cc: Greg KH <greg@kroah.com>, Felipe Balbi <felipebalbi@users.sourceforge.net>, Ajay Kumar Gupta <ajay.gupta@ti.com>
+Message-ID: <200901241756.39927.david-b@pacbell.net>
+Content-Disposition: inline
+
+
+From: Ajay Kumar Gupta <ajay.gupta@ti.com>
+
+Fixes insert module failure as free_irq() was not
+done in previous rmmod.
+
+Signed-off-by: Ajay Kumar Gupta <ajay.gupta@ti.com>
+Acked-by: Felipe Balbi <felipe.balbi@nokia.com>
+Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/usb/musb/musb_core.c | 5 +++--
+ 1 file changed, 3 insertions(+), 2 deletions(-)
+
+--- a/drivers/usb/musb/musb_core.c
++++ b/drivers/usb/musb/musb_core.c
+@@ -1824,8 +1824,9 @@ static void musb_free(struct musb *musb)
+ musb_gadget_cleanup(musb);
+ #endif
+
+- if (musb->nIrq >= 0 && musb->irq_wake) {
+- disable_irq_wake(musb->nIrq);
++ if (musb->nIrq >= 0) {
++ if (musb->irq_wake)
++ disable_irq_wake(musb->nIrq);
+ free_irq(musb->nIrq, musb);
+ }
+ if (is_dma_capable() && musb->dma_controller) {
diff --git a/usb.current/usb-musb-tusb6010-buildfix.patch b/usb.current/usb-musb-tusb6010-buildfix.patch
new file mode 100644
index 00000000000000..14a6c1c6174594
--- /dev/null
+++ b/usb.current/usb-musb-tusb6010-buildfix.patch
@@ -0,0 +1,39 @@
+From david-b@pacbell.net Sun Jan 25 12:55:14 2009
+From: Kalle Valo <kalle.valo@nokia.com>
+Date: Sat, 24 Jan 2009 17:57:15 -0800
+Subject: USB: musb: tusb6010 buildfix
+To: linux-usb@vger.kernel.org
+Cc: Greg KH <greg@kroah.com>, Felipe Balbi <felipebalbi@users.sourceforge.net>, Kalle Valo <kalle.valo@nokia.com>
+Message-ID: <200901241757.15282.david-b@pacbell.net>
+Content-Disposition: inline
+
+
+From: Kalle Valo <kalle.valo@nokia.com>
+
+drivers/usb/musb/tusb6010_omap.c:18:26: error: asm/arch/dma.h:
+ No such file or directory
+drivers/usb/musb/tusb6010_omap.c:19:26: error: asm/arch/mux.h:
+ No such file or directory
+
+Signed-off-by: Kalle Valo <kalle.valo@nokia.com>
+Acked-by: Felipe Balbi <felipe.balbi@nokia.com>
+Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/usb/musb/tusb6010_omap.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+--- a/drivers/usb/musb/tusb6010_omap.c
++++ b/drivers/usb/musb/tusb6010_omap.c
+@@ -15,8 +15,8 @@
+ #include <linux/usb.h>
+ #include <linux/platform_device.h>
+ #include <linux/dma-mapping.h>
+-#include <asm/arch/dma.h>
+-#include <asm/arch/mux.h>
++#include <mach/dma.h>
++#include <mach/mux.h>
+
+ #include "musb_core.h"
+
diff --git a/usb.current/usb-musb-uses-endpoint-functions.patch b/usb.current/usb-musb-uses-endpoint-functions.patch
new file mode 100644
index 00000000000000..d85b9c80a80e68
--- /dev/null
+++ b/usb.current/usb-musb-uses-endpoint-functions.patch
@@ -0,0 +1,110 @@
+From david-b@pacbell.net Sun Jan 25 12:55:33 2009
+From: Julia Lawall <julia@diku.dk>
+Date: Sat, 24 Jan 2009 17:57:24 -0800
+Subject: USB: musb uses endpoint functions
+To: linux-usb@vger.kernel.org
+Cc: Greg KH <greg@kroah.com>, Felipe Balbi <felipebalbi@users.sourceforge.net>, Julia Lawall <julia@diku.dk>
+Message-ID: <200901241757.25111.david-b@pacbell.net>
+Content-Disposition: inline
+
+
+From: Julia Lawall <julia@diku.dk>
+
+This set of patches introduces calls to the following set of functions:
+
+usb_endpoint_dir_in(epd)
+usb_endpoint_dir_out(epd)
+usb_endpoint_is_bulk_in(epd)
+usb_endpoint_is_bulk_out(epd)
+usb_endpoint_is_int_in(epd)
+usb_endpoint_is_int_out(epd)
+usb_endpoint_num(epd)
+usb_endpoint_type(epd)
+usb_endpoint_xfer_bulk(epd)
+usb_endpoint_xfer_control(epd)
+usb_endpoint_xfer_int(epd)
+usb_endpoint_xfer_isoc(epd)
+
+In some cases, introducing one of these functions is not possible, and it
+just replaces an explicit integer value by one of the following constants:
+
+USB_ENDPOINT_XFER_BULK
+USB_ENDPOINT_XFER_CONTROL
+USB_ENDPOINT_XFER_INT
+USB_ENDPOINT_XFER_ISOC
+
+An extract of the semantic patch that makes these changes is as follows:
+(http://www.emn.fr/x-info/coccinelle/)
+
+// <smpl>
+@r1@ struct usb_endpoint_descriptor *epd; @@
+
+- ((epd->bmAttributes & \(USB_ENDPOINT_XFERTYPE_MASK\|3\)) ==
+- \(USB_ENDPOINT_XFER_CONTROL\|0\))
++ usb_endpoint_xfer_control(epd)
+
+@r5@ struct usb_endpoint_descriptor *epd; @@
+
+- ((epd->bEndpointAddress & \(USB_ENDPOINT_DIR_MASK\|0x80\)) ==
+- \(USB_DIR_IN\|0x80\))
++ usb_endpoint_dir_in(epd)
+
+@inc@
+@@
+
+#include <linux/usb.h>
+
+@depends on !inc && (r1||r5)@
+@@
+
++ #include <linux/usb.h>
+ #include <linux/usb/...>
+// </smpl>
+
+Signed-off-by: Julia Lawall <julia@diku.dk>
+Acked-by: Felipe Balbi <felipe.balbi@nokia.com>
+Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/usb/musb/musb_gadget.c | 6 +++---
+ drivers/usb/musb/musb_host.c | 4 ++--
+ 2 files changed, 5 insertions(+), 5 deletions(-)
+
+--- a/drivers/usb/musb/musb_gadget.c
++++ b/drivers/usb/musb/musb_gadget.c
+@@ -874,10 +874,10 @@ static int musb_gadget_enable(struct usb
+ status = -EBUSY;
+ goto fail;
+ }
+- musb_ep->type = desc->bmAttributes & USB_ENDPOINT_XFERTYPE_MASK;
++ musb_ep->type = usb_endpoint_type(desc);
+
+ /* check direction and (later) maxpacket size against endpoint */
+- if ((desc->bEndpointAddress & USB_ENDPOINT_NUMBER_MASK) != epnum)
++ if (usb_endpoint_num(desc) != epnum)
+ goto fail;
+
+ /* REVISIT this rules out high bandwidth periodic transfers */
+@@ -890,7 +890,7 @@ static int musb_gadget_enable(struct usb
+ * packet size (or fail), set the mode, clear the fifo
+ */
+ musb_ep_select(mbase, epnum);
+- if (desc->bEndpointAddress & USB_DIR_IN) {
++ if (usb_endpoint_dir_in(desc)) {
+ u16 int_txe = musb_readw(mbase, MUSB_INTRTXE);
+
+ if (hw_ep->is_shared_fifo)
+--- a/drivers/usb/musb/musb_host.c
++++ b/drivers/usb/musb/musb_host.c
+@@ -1847,8 +1847,8 @@ static int musb_urb_enqueue(
+ goto done;
+ }
+
+- qh->epnum = epd->bEndpointAddress & USB_ENDPOINT_NUMBER_MASK;
+- qh->type = epd->bmAttributes & USB_ENDPOINT_XFERTYPE_MASK;
++ qh->epnum = usb_endpoint_num(epd);
++ qh->type = usb_endpoint_type(epd);
+
+ /* NOTE: urb->dev->devnum is wrong during SET_ADDRESS */
+ qh->addr_reg = (u8) usb_pipedevice(urb->pipe);
diff --git a/usb.current/usb-musb_hdrc-another-davinci-buildfix.patch b/usb.current/usb-musb_hdrc-another-davinci-buildfix.patch
new file mode 100644
index 00000000000000..9bd7ee93ae114c
--- /dev/null
+++ b/usb.current/usb-musb_hdrc-another-davinci-buildfix.patch
@@ -0,0 +1,66 @@
+From david-b@pacbell.net Sun Jan 25 12:54:12 2009
+From: David Brownell <david-b@pacbell.net>
+Date: Sat, 24 Jan 2009 17:56:25 -0800
+Subject: USB: musb_hdrc: another davinci buildfix (otg related)
+To: linux-usb@vger.kernel.org
+Cc: Greg KH <greg@kroah.com>, Felipe Balbi <felipebalbi@users.sourceforge.net>, Kevin Hilman <khilman@deeprootsystems.com>
+Message-ID: <200901241756.25190.david-b@pacbell.net>
+Content-Disposition: inline
+
+
+From: David Brownell <dbrownell@users.sourceforge.net>
+
+The DaVinci code had an implementation of the OTG transceiver glue
+too; make it use the new-standard one.
+
+Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
+Acked-by: Felipe Balbi <felipe.balbi@nokia.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ arch/arm/mach-davinci/usb.c | 23 -----------------------
+ drivers/usb/musb/Kconfig | 1 +
+ 2 files changed, 1 insertion(+), 23 deletions(-)
+
+--- a/arch/arm/mach-davinci/usb.c
++++ b/arch/arm/mach-davinci/usb.c
+@@ -76,29 +76,6 @@ static struct platform_device usb_dev =
+ .num_resources = ARRAY_SIZE(usb_resources),
+ };
+
+-#ifdef CONFIG_USB_MUSB_OTG
+-
+-static struct otg_transceiver *xceiv;
+-
+-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
+-
+ void __init setup_usb(unsigned mA, unsigned potpgt_msec)
+ {
+ usb_data.power = mA / 2;
+--- a/drivers/usb/musb/Kconfig
++++ b/drivers/usb/musb/Kconfig
+@@ -11,6 +11,7 @@ config USB_MUSB_HDRC
+ depends on (USB || USB_GADGET) && HAVE_CLK
+ depends on !SUPERH
+ select TWL4030_USB if MACH_OMAP_3430SDP
++ select USB_OTG_UTILS
+ tristate 'Inventra Highspeed Dual Role Controller (TI, ADI, ...)'
+ help
+ Say Y here if your system has a dual role high speed USB
diff --git a/usb.current/usb-omap1-ohci-buildfix.patch b/usb.current/usb-omap1-ohci-buildfix.patch
new file mode 100644
index 00000000000000..4b535f83d12cd7
--- /dev/null
+++ b/usb.current/usb-omap1-ohci-buildfix.patch
@@ -0,0 +1,57 @@
+From david-b@pacbell.net Sun Jan 25 12:53:37 2009
+From: David Brownell <david-b@pacbell.net>
+Date: Sat, 24 Jan 2009 17:55:57 -0800
+Subject: USB: omap1 ohci buildfix (otg related)
+To: linux-usb@vger.kernel.org
+Cc: Greg KH <greg@kroah.com>, Russell King <rmk@arm.linux.org.uk>, Tony Lindgren <tony@atomide.com>
+Message-ID: <200901241755.57741.david-b@pacbell.net>
+Content-Disposition: inline
+
+
+From: David Brownell <dbrownell@users.sourceforge.net>
+
+ > > drivers/built-in.o: In function `ohci_omap_init':
+ > > hid-quirks.c:(.text+0x6c608): undefined reference to `otg_get_transceiver'
+ > > drivers/built-in.o: In function `omap_udc_probe':
+ > > hid-quirks.c:(.init.text+0x34c0): undefined reference to `otg_get_transceiver'
+ > > hid-quirks.c:(.init.text+0x3d40): undefined reference to `otg_put_transceiver'
+
+Reported-by: Russell King <linux@arm.linux.org.uk>
+Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
+Acked-by: Tony Lindgren <tony@atomide.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/usb/host/Kconfig | 1 +
+ drivers/usb/otg/Kconfig | 4 ++--
+ 2 files changed, 3 insertions(+), 2 deletions(-)
+
+--- a/drivers/usb/host/Kconfig
++++ b/drivers/usb/host/Kconfig
+@@ -140,6 +140,7 @@ config USB_OHCI_HCD
+ tristate "OHCI HCD support"
+ depends on USB && USB_ARCH_HAS_OHCI
+ select ISP1301_OMAP if MACH_OMAP_H2 || MACH_OMAP_H3
++ select USB_OTG_UTILS if ARCH_OMAP
+ ---help---
+ The Open Host Controller Interface (OHCI) is a standard for accessing
+ USB 1.1 host controller hardware. It does more in hardware than Intel's
+--- a/drivers/usb/otg/Kconfig
++++ b/drivers/usb/otg/Kconfig
+@@ -6,14 +6,14 @@
+
+ comment "OTG and related infrastructure"
+
+-if USB || USB_GADGET
+-
+ config USB_OTG_UTILS
+ bool
+ help
+ Select this to make sure the build includes objects from
+ the OTG infrastructure directory.
+
++if USB || USB_GADGET
++
+ #
+ # USB Transceiver Drivers
+ #
diff --git a/usb.current/usb-prevent-musb-init-oops.patch b/usb.current/usb-prevent-musb-init-oops.patch
new file mode 100644
index 00000000000000..359e9c31b2aa3f
--- /dev/null
+++ b/usb.current/usb-prevent-musb-init-oops.patch
@@ -0,0 +1,39 @@
+From david-b@pacbell.net Sun Jan 25 12:54:56 2009
+From: Ajay Kumar Gupta <ajay.gupta@ti.com>
+Date: Sat, 24 Jan 2009 17:57:06 -0800
+Subject: USB: prevent musb init oops (otg related)
+To: linux-usb@vger.kernel.org
+Cc: Greg KH <greg@kroah.com>, Felipe Balbi <felipebalbi@users.sourceforge.net>, Ajay Kumar Gupta <ajay.gupta@ti.com>
+Message-ID: <200901241757.06185.david-b@pacbell.net>
+Content-Disposition: inline
+
+
+From: Ajay Kumar Gupta <ajay.gupta@ti.com>
+
+Subject: usb: musb: fix null pointer check in musb_platform_init()
+
+Fixes kernel panic when musb is selected for OMAP35x EVM but twl4030 is not
+selected as in this case otg_get_transceiver() returns null.
+
+Signed-off-by: Ajay Kumar Gupta <ajay.gupta@ti.com>
+Acked-by: Felipe Balbi <felipe.balbi@nokia.com>
+Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/usb/musb/omap2430.c | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+--- a/drivers/usb/musb/omap2430.c
++++ b/drivers/usb/musb/omap2430.c
+@@ -231,6 +231,10 @@ int __init musb_platform_init(struct mus
+ #if defined(CONFIG_ARCH_OMAP2430)
+ omap_cfg_reg(AE5_2430_USB0HS_STP);
+ #endif
++ if (!x) {
++ pr_err("omap: musb: null transceiver found\n");
++ return -ENODEV;
++ }
+
+ musb_platform_resume(musb);
+