mirror of
				git://git.openwrt.org/openwrt/openwrt.git
				synced 2025-11-03 14:34:27 -05:00 
			
		
		
		
	
		
			
				
	
	
		
			136 lines
		
	
	
		
			3.9 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			136 lines
		
	
	
		
			3.9 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
--- a/drivers/usb/musb/tusb6010.c
 | 
						|
+++ b/drivers/usb/musb/tusb6010.c
 | 
						|
@@ -221,6 +221,7 @@ void musb_write_fifo(struct musb_hw_ep *
 | 
						|
 	if (len > 0)
 | 
						|
 		tusb_fifo_write_unaligned(fifo, buf, len);
 | 
						|
 }
 | 
						|
+EXPORT_SYMBOL(musb_write_fifo);
 | 
						|
 
 | 
						|
 void musb_read_fifo(struct musb_hw_ep *hw_ep, u16 len, u8 *buf)
 | 
						|
 {
 | 
						|
@@ -268,6 +269,7 @@ void musb_read_fifo(struct musb_hw_ep *h
 | 
						|
 	if (len > 0)
 | 
						|
 		tusb_fifo_read_unaligned(fifo, buf, len);
 | 
						|
 }
 | 
						|
+EXPORT_SYMBOL(musb_read_fifo);
 | 
						|
 
 | 
						|
 static struct musb *the_musb;
 | 
						|
 
 | 
						|
@@ -1165,7 +1167,7 @@ static const struct musb_platform_ops tu
 | 
						|
 
 | 
						|
 static u64 tusb_dmamask = DMA_BIT_MASK(32);
 | 
						|
 
 | 
						|
-static int __init tusb_probe(struct platform_device *pdev)
 | 
						|
+static int tusb_probe(struct platform_device *pdev)
 | 
						|
 {
 | 
						|
 	struct musb_hdrc_platform_data	*pdata = pdev->dev.platform_data;
 | 
						|
 	struct platform_device		*musb;
 | 
						|
@@ -1245,18 +1247,18 @@ static struct platform_driver tusb_drive
 | 
						|
 	},
 | 
						|
 };
 | 
						|
 
 | 
						|
-MODULE_DESCRIPTION("TUSB6010 MUSB Glue Layer");
 | 
						|
-MODULE_AUTHOR("Felipe Balbi <balbi@ti.com>");
 | 
						|
-MODULE_LICENSE("GPL v2");
 | 
						|
+//MODULE_DESCRIPTION("TUSB6010 MUSB Glue Layer");
 | 
						|
+//MODULE_AUTHOR("Felipe Balbi <balbi@ti.com>");
 | 
						|
+//MODULE_LICENSE("GPL v2");
 | 
						|
 
 | 
						|
-static int __init tusb_init(void)
 | 
						|
+int musb_hdrc_glue_init(void)
 | 
						|
 {
 | 
						|
 	return platform_driver_probe(&tusb_driver, tusb_probe);
 | 
						|
 }
 | 
						|
-subsys_initcall(tusb_init);
 | 
						|
+EXPORT_SYMBOL(musb_hdrc_glue_init);
 | 
						|
 
 | 
						|
-static void __exit tusb_exit(void)
 | 
						|
+void musb_hdrc_glue_exit(void)
 | 
						|
 {
 | 
						|
 	platform_driver_unregister(&tusb_driver);
 | 
						|
 }
 | 
						|
-module_exit(tusb_exit);
 | 
						|
+EXPORT_SYMBOL(musb_hdrc_glue_exit);
 | 
						|
--- a/drivers/usb/musb/musb_core.c
 | 
						|
+++ b/drivers/usb/musb/musb_core.c
 | 
						|
@@ -207,7 +207,7 @@ static struct otg_io_access_ops musb_ulp
 | 
						|
 
 | 
						|
 /*-------------------------------------------------------------------------*/
 | 
						|
 
 | 
						|
-#if !defined(CONFIG_USB_MUSB_TUSB6010) && !defined(CONFIG_USB_MUSB_BLACKFIN)
 | 
						|
+#if !defined(CONFIG_USB_MUSB_TUSB6010) && !defined(CONFIG_USB_MUSB_TUSB6010_MODULE) && !defined(CONFIG_USB_MUSB_BLACKFIN)
 | 
						|
 
 | 
						|
 /*
 | 
						|
  * Load an endpoint's FIFO
 | 
						|
@@ -250,7 +250,7 @@ void musb_write_fifo(struct musb_hw_ep *
 | 
						|
 	}
 | 
						|
 }
 | 
						|
 
 | 
						|
-#if !defined(CONFIG_USB_MUSB_AM35X)
 | 
						|
+#if !defined(CONFIG_USB_MUSB_AM35X) && !defined(CONFIG_USB_MUSB_TUSB6010) && !defined(CONFIG_USB_MUSB_TUSB6010_MODULE)
 | 
						|
 /*
 | 
						|
  * Unload an endpoint's FIFO
 | 
						|
  */
 | 
						|
@@ -2370,8 +2370,13 @@ static struct platform_driver musb_drive
 | 
						|
 
 | 
						|
 /*-------------------------------------------------------------------------*/
 | 
						|
 
 | 
						|
+extern int musb_hdrc_glue_init(void);
 | 
						|
+extern void musb_hdrc_glue_exit(void);
 | 
						|
+
 | 
						|
 static int __init musb_init(void)
 | 
						|
 {
 | 
						|
+	int err;
 | 
						|
+
 | 
						|
 	if (usb_disabled())
 | 
						|
 		return 0;
 | 
						|
 
 | 
						|
@@ -2380,7 +2385,17 @@ static int __init musb_init(void)
 | 
						|
 		", "
 | 
						|
 		"otg (peripheral+host)",
 | 
						|
 		musb_driver_name);
 | 
						|
-	return platform_driver_probe(&musb_driver, musb_probe);
 | 
						|
+
 | 
						|
+	err = musb_hdrc_glue_init();
 | 
						|
+	if (err)
 | 
						|
+		return err;
 | 
						|
+	err = platform_driver_probe(&musb_driver, musb_probe);
 | 
						|
+	if (err) {
 | 
						|
+		musb_hdrc_glue_exit();
 | 
						|
+		return err;
 | 
						|
+	}
 | 
						|
+
 | 
						|
+	return 0;
 | 
						|
 }
 | 
						|
 
 | 
						|
 /* make us init after usbcore and i2c (transceivers, regulators, etc)
 | 
						|
@@ -2391,5 +2406,6 @@ fs_initcall(musb_init);
 | 
						|
 static void __exit musb_cleanup(void)
 | 
						|
 {
 | 
						|
 	platform_driver_unregister(&musb_driver);
 | 
						|
+	musb_hdrc_glue_exit();
 | 
						|
 }
 | 
						|
 module_exit(musb_cleanup);
 | 
						|
--- a/drivers/usb/Makefile
 | 
						|
+++ b/drivers/usb/Makefile
 | 
						|
@@ -51,7 +51,7 @@ obj-$(CONFIG_EARLY_PRINTK_DBGP)	+= early
 | 
						|
 obj-$(CONFIG_USB_ATM)		+= atm/
 | 
						|
 obj-$(CONFIG_USB_SPEEDTOUCH)	+= atm/
 | 
						|
 
 | 
						|
-obj-$(CONFIG_USB_MUSB_HDRC)	+= musb/
 | 
						|
+obj-y				+= musb/
 | 
						|
 obj-$(CONFIG_USB_RENESAS_USBHS)	+= renesas_usbhs/
 | 
						|
 obj-$(CONFIG_USB_GADGET)	+= gadget/
 | 
						|
 
 | 
						|
--- a/drivers/usb/musb/Makefile
 | 
						|
+++ b/drivers/usb/musb/Makefile
 | 
						|
@@ -13,7 +13,7 @@ musb_hdrc-$(CONFIG_DEBUG_FS)			+= musb_d
 | 
						|
 # Hardware Glue Layer
 | 
						|
 obj-$(CONFIG_USB_MUSB_OMAP2PLUS)		+= omap2430.o
 | 
						|
 obj-$(CONFIG_USB_MUSB_AM35X)			+= am35x.o
 | 
						|
-obj-$(CONFIG_USB_MUSB_TUSB6010)			+= tusb6010.o
 | 
						|
+musb_hdrc-$(subst m,y,$(CONFIG_USB_MUSB_TUSB6010))	+= tusb6010.o
 | 
						|
 obj-$(CONFIG_USB_MUSB_DAVINCI)			+= davinci.o
 | 
						|
 obj-$(CONFIG_USB_MUSB_DA8XX)			+= da8xx.o
 | 
						|
 obj-$(CONFIG_USB_MUSB_BLACKFIN)			+= blackfin.o
 |