[PATCH] staging/westbridge: convert cyasgadget to new udc core

Sebastian Andrzej Siewior bigeasy at linutronix.de
Tue Jun 14 10:09:38 UTC 2011


This is not compile tested as I failed at it. I added an #if 0 block
because I did not find the struct device of the device.

Signed-off-by: Sebastian Andrzej Siewior <bigeasy at linutronix.de>
---
Greg, I guess this should go via your staging tree.

 .../staging/westbridge/astoria/gadget/cyasgadget.c |   20 ++++++++++++++++----
 1 files changed, 16 insertions(+), 4 deletions(-)

diff --git a/drivers/staging/westbridge/astoria/gadget/cyasgadget.c b/drivers/staging/westbridge/astoria/gadget/cyasgadget.c
index be851ca..92015ec 100644
--- a/drivers/staging/westbridge/astoria/gadget/cyasgadget.c
+++ b/drivers/staging/westbridge/astoria/gadget/cyasgadget.c
@@ -1595,12 +1595,18 @@ initsoj_safe_exit:
 	return 0;
 }
 
+static int cyasgadget_start(struct usb_gadget_driver *driver,
+		int (*bind)(struct usb_gadget *));
+static int cyasgadget_stop(struct usb_gadget_driver *driver);
+
 static const struct usb_gadget_ops cyasgadget_ops = {
 	.get_frame		 = cyasgadget_get_frame,
 	.wakeup		 = cyasgadget_wakeup,
 	.set_selfpowered = cyasgadget_set_selfpowered,
 	.pullup		 = cyasgadget_pullup,
 	.ioctl	   = cyasgadget_ioctl,
+	.start		= cyasgadget_start,
+	.stop		= cyasgadget_stop,
 };
 
 
@@ -1883,7 +1889,7 @@ static void cyas_ep0_start(
  * disconnect is reported.  then a host may connect again, or
  * the driver might get unbound.
  */
-int usb_gadget_probe_driver(struct usb_gadget_driver *driver,
+static int cyasgadget_start(struct usb_gadget_driver *driver,
 		int (*bind)(struct usb_gadget *))
 {
 	cyasgadget *dev = cy_as_gadget_controller;
@@ -1938,7 +1944,6 @@ int usb_gadget_probe_driver(struct usb_gadget_driver *driver,
 
 	return 0;
 }
-EXPORT_SYMBOL(usb_gadget_probe_driver);
 
 static void cyasgadget_nuke(
 							cyasgadget_ep *an_ep
@@ -2011,7 +2016,7 @@ static void cyasgadget_stop_activity(
 	#endif
 }
 
-int usb_gadget_unregister_driver(
+static int cyasgadget_stop(
 				struct usb_gadget_driver *driver
 				)
 {
@@ -2040,7 +2045,6 @@ int usb_gadget_unregister_driver(
 
 	return 0;
 }
-EXPORT_SYMBOL(usb_gadget_unregister_driver);
 
 static void cyas_gadget_release(
 				struct device *_dev
@@ -2071,6 +2075,7 @@ static void cyasgadget_deinit(
 		#endif
 		return;
 	}
+	usb_del_gadget_udc(&cy_as_dev->gadget);
 
 	if (cy_as_dev->driver) {
 		/* should have been done already by driver model core */
@@ -2131,6 +2136,13 @@ static int cyasgadget_initialize(void)
 
 	/* We are done now */
 	cy_as_gadget_controller = cy_as_dev;
+#if 0
+	pdev is the platform_device or pci_device or whatever is used here
+	retval = usb_add_gadget_udc(&pdev->dev, &cy_as_dev->gadget);
+	if (retval)
+		goto done;
+#endif
+
 	return 0;
 
 /*
-- 
1.7.4.4




More information about the devel mailing list