Root/target/linux/omap24xx/patches-2.6.38/850-musb-tusb-modular-fixes.patch

1--- a/drivers/Makefile
2+++ b/drivers/Makefile
3@@ -66,7 +66,7 @@ obj-$(CONFIG_TC) += tc/
4 obj-$(CONFIG_UWB) += uwb/
5 obj-$(CONFIG_USB_OTG_UTILS) += usb/otg/
6 obj-$(CONFIG_USB) += usb/
7-obj-$(CONFIG_USB_MUSB_HDRC) += usb/musb/
8+obj-y += usb/musb/
9 obj-$(CONFIG_PCI) += usb/
10 obj-$(CONFIG_USB_GADGET) += usb/gadget/
11 obj-$(CONFIG_SERIO) += input/serio/
12--- a/drivers/usb/musb/Kconfig
13+++ b/drivers/usb/musb/Kconfig
14@@ -46,7 +46,7 @@ config USB_MUSB_DA8XX
15     depends on ARCH_DAVINCI_DA8XX
16 
17 config USB_MUSB_TUSB6010
18- bool "TUSB6010"
19+ tristate "TUSB6010"
20     depends on ARCH_OMAP
21 
22 config USB_MUSB_OMAP2PLUS
23--- a/drivers/usb/musb/tusb6010.c
24+++ b/drivers/usb/musb/tusb6010.c
25@@ -55,6 +55,7 @@ u8 tusb_get_revision(struct musb *musb)
26 
27     return rev;
28 }
29+EXPORT_SYMBOL(tusb_get_revision);
30 
31 static int tusb_print_revision(struct musb *musb)
32 {
33@@ -218,6 +219,7 @@ void musb_write_fifo(struct musb_hw_ep *
34     if (len > 0)
35         tusb_fifo_write_unaligned(fifo, buf, len);
36 }
37+EXPORT_SYMBOL(musb_write_fifo);
38 
39 void musb_read_fifo(struct musb_hw_ep *hw_ep, u16 len, u8 *buf)
40 {
41@@ -264,6 +266,7 @@ void musb_read_fifo(struct musb_hw_ep *h
42     if (len > 0)
43         tusb_fifo_read_unaligned(fifo, buf, len);
44 }
45+EXPORT_SYMBOL(musb_read_fifo);
46 
47 static struct musb *the_musb;
48 
49@@ -1259,18 +1262,16 @@ static struct platform_driver tusb_drive
50     },
51 };
52 
53-MODULE_DESCRIPTION("TUSB6010 MUSB Glue Layer");
54-MODULE_AUTHOR("Felipe Balbi <balbi@ti.com>");
55-MODULE_LICENSE("GPL v2");
56+//MODULE_DESCRIPTION("TUSB6010 MUSB Glue Layer");
57+//MODULE_AUTHOR("Felipe Balbi <balbi@ti.com>");
58+//MODULE_LICENSE("GPL v2");
59 
60-static int __init tusb_init(void)
61+int musb_hdrc_glue_init(void)
62 {
63     return platform_driver_probe(&tusb_driver, tusb_probe);
64 }
65-subsys_initcall(tusb_init);
66 
67-static void __exit tusb_exit(void)
68+void musb_hdrc_glue_exit(void)
69 {
70     platform_driver_unregister(&tusb_driver);
71 }
72-module_exit(tusb_exit);
73--- a/drivers/usb/musb/Makefile
74+++ b/drivers/usb/musb/Makefile
75@@ -13,13 +13,13 @@ musb_hdrc-$(CONFIG_USB_MUSB_HDRC_HCD) +
76 musb_hdrc-$(CONFIG_DEBUG_FS) += musb_debugfs.o
77 
78 # Hardware Glue Layer
79-obj-$(CONFIG_USB_MUSB_OMAP2PLUS) += omap2430.o
80-obj-$(CONFIG_USB_MUSB_AM35X) += am35x.o
81-obj-$(CONFIG_USB_MUSB_TUSB6010) += tusb6010.o
82-obj-$(CONFIG_USB_MUSB_DAVINCI) += davinci.o
83-obj-$(CONFIG_USB_MUSB_DA8XX) += da8xx.o
84-obj-$(CONFIG_USB_MUSB_BLACKFIN) += blackfin.o
85-obj-$(CONFIG_USB_MUSB_UX500) += ux500.o
86+musb_hdrc-$(CONFIG_USB_MUSB_OMAP2PLUS) += omap2430.o
87+musb_hdrc-$(CONFIG_USB_MUSB_AM35X) += am35x.o
88+musb_hdrc-$(CONFIG_USB_MUSB_TUSB6010) += tusb6010.o
89+musb_hdrc-$(CONFIG_USB_MUSB_DAVINCI) += davinci.o
90+musb_hdrc-$(CONFIG_USB_MUSB_DA8XX) += da8xx.o
91+musb_hdrc-$(CONFIG_USB_MUSB_BLACKFIN) += blackfin.o
92+musb_hdrc-$(CONFIG_USB_MUSB_UX500) += ux500.o
93 
94 # the kconfig must guarantee that only one of the
95 # possible I/O schemes will be enabled at a time ...
96--- a/drivers/usb/musb/musb_core.c
97+++ b/drivers/usb/musb/musb_core.c
98@@ -2427,8 +2427,13 @@ static struct platform_driver musb_drive
99 
100 /*-------------------------------------------------------------------------*/
101 
102+extern int musb_hdrc_glue_init(void);
103+extern void musb_hdrc_glue_exit(void);
104+
105 static int __init musb_init(void)
106 {
107+ int err;
108+
109 #ifdef CONFIG_USB_MUSB_HDRC_HCD
110     if (usb_disabled())
111         return 0;
112@@ -2456,7 +2461,17 @@ static int __init musb_init(void)
113 #endif
114         ", debug=%d\n",
115         musb_driver_name, musb_debug);
116- return platform_driver_probe(&musb_driver, musb_probe);
117+
118+ err = musb_hdrc_glue_init();
119+ if (err)
120+ return err;
121+ err = platform_driver_probe(&musb_driver, musb_probe);
122+ if (err) {
123+ musb_hdrc_glue_exit();
124+ return err;
125+ }
126+
127+ return 0;
128 }
129 
130 /* make us init after usbcore and i2c (transceivers, regulators, etc)
131@@ -2467,5 +2482,6 @@ fs_initcall(musb_init);
132 static void __exit musb_cleanup(void)
133 {
134     platform_driver_unregister(&musb_driver);
135+ musb_hdrc_glue_exit();
136 }
137 module_exit(musb_cleanup);
138

Archive Download this file



interactive