[PATCH 7/9] staging/ccg: Allow to overwrite composite's setup function
Sebastian Andrzej Siewior
bigeasy at linutronix.de
Wed Aug 15 19:59:17 UTC 2012
I'm not going to swear here. The Android gadget includes composite.c
from the main tree and overwrites functions. This would still work if I
rename it and remove the const attribute but the problem rises again
once we stop including composite.c and use it as a library function.
Cc: devel at driverdev.osuosl.org
Signed-off-by: Sebastian Andrzej Siewior <bigeasy at linutronix.de>
---
drivers/staging/ccg/ccg.c | 4 ----
drivers/usb/gadget/composite.c | 11 ++++++++++-
2 files changed, 10 insertions(+), 5 deletions(-)
diff --git a/drivers/staging/ccg/ccg.c b/drivers/staging/ccg/ccg.c
index 8fb8663..1904e5e 100644
--- a/drivers/staging/ccg/ccg.c
+++ b/drivers/staging/ccg/ccg.c
@@ -1272,10 +1272,6 @@ static int __init init(void)
_ccg_dev = dev;
- /* Override composite driver functions */
- composite_driver.setup = ccg_setup;
- composite_driver.disconnect = ccg_disconnect;
-
err = usb_composite_probe(&ccg_usb_driver);
if (err) {
class_destroy(ccg_class);
diff --git a/drivers/usb/gadget/composite.c b/drivers/usb/gadget/composite.c
index 598df69..6d2fc65 100644
--- a/drivers/usb/gadget/composite.c
+++ b/drivers/usb/gadget/composite.c
@@ -1598,9 +1598,18 @@ static const struct usb_gadget_driver composite_driver_template = {
.bind = composite_bind,
.unbind = composite_unbind,
-
+#if defined(CONFIG_USB_G_CCG) || defined(CONFIG_USB_G_CCG_MODULE)
+ /*
+ * This is to keep the Android code in staging working. The current
+ * Kconfig dependencies don't allow any other gadgets besides the
+ * Android one so it is not even a limitation.
+ */
+ .setup = ccg_setup,
+ .disconnect = ccg_disconnect,
+#else
.setup = composite_setup,
.disconnect = composite_disconnect,
+#endif
.suspend = composite_suspend,
.resume = composite_resume,
--
1.7.10.4
More information about the devel
mailing list