usb: mv_udc: Unbreak the mv_udc driver
The mv_udc driver is broken for a while and doesn't even compile.
This patch fixes the issues and gets the driver into working state
again. This driver was tested on Freescale i.MX233/i.MX28 .
Signed-off-by: Marek Vasut <marex@denx.de>
Cc: Fabio Estevam <fabio.estevam@freescale.com>
Cc: Lei Wen <leiwen@marvell.com>
Cc: Otavio Salvador <otavio@ossystems.com.br>
Cc: Stefano Babic <sbabic@denx.de>
diff --git a/drivers/usb/gadget/mv_udc.c b/drivers/usb/gadget/mv_udc.c
index 7fa5288..93e5389 100644
--- a/drivers/usb/gadget/mv_udc.c
+++ b/drivers/usb/gadget/mv_udc.c
@@ -17,6 +17,10 @@
#include <linux/types.h>
#include <usb/mv_udc.h>
+#if CONFIG_USB_MAX_CONTROLLER_COUNT > 1
+#error This driver only supports one single controller.
+#endif
+
#ifndef DEBUG
#define DBG(x...) do {} while (0)
#else
@@ -453,6 +457,7 @@
{
struct mv_udc *udc = controller.udc;
int retval;
+ void *ctrl;
if (!driver
|| driver->speed < USB_SPEED_FULL
@@ -463,7 +468,7 @@
}
if (!mvudc_probe()) {
- usb_lowlevel_init();
+ usb_lowlevel_init(0, &ctrl);
/* select ULPI phy */
writel(PTS(PTS_ENABLE) | PFSC, &udc->portsc);
}