This moves composite.c into libcomposite and updates all gadgets. Finally! Signed-off-by: Sebastian Andrzej Siewior <bigeasy@xxxxxxxxxxxxx> --- drivers/usb/gadget/Makefile | 3 ++- drivers/usb/gadget/acm_ms.c | 2 +- drivers/usb/gadget/audio.c | 11 +---------- drivers/usb/gadget/cdc2.c | 1 - drivers/usb/gadget/composite.c | 15 +++++++++++++-- drivers/usb/gadget/ether.c | 2 -- drivers/usb/gadget/f_hid.c | 1 + drivers/usb/gadget/g_ffs.c | 3 --- drivers/usb/gadget/gmidi.c | 2 +- drivers/usb/gadget/hid.c | 5 ++--- drivers/usb/gadget/mass_storage.c | 4 +--- drivers/usb/gadget/multi.c | 3 --- drivers/usb/gadget/ncm.c | 4 ++-- drivers/usb/gadget/nokia.c | 2 -- drivers/usb/gadget/printer.c | 12 +----------- drivers/usb/gadget/serial.c | 2 -- drivers/usb/gadget/tcm_usb_gadget.c | 2 -- drivers/usb/gadget/webcam.c | 2 -- drivers/usb/gadget/zero.c | 2 -- include/linux/usb/composite.h | 1 + 20 files changed, 26 insertions(+), 53 deletions(-) diff --git a/drivers/usb/gadget/Makefile b/drivers/usb/gadget/Makefile index d3d1950..4e6f876 100644 --- a/drivers/usb/gadget/Makefile +++ b/drivers/usb/gadget/Makefile @@ -5,7 +5,8 @@ ccflags-$(CONFIG_USB_GADGET_DEBUG) := -DDEBUG obj-$(CONFIG_USB_GADGET) += udc-core.o obj-$(CONFIG_USB_LIBCOMPOSITE) += libcomposite.o -libcomposite-y := usbstring.o config.o epautoconf.o gadget_chips.o +libcomposite-y := usbstring.o config.o epautoconf.o +libcomposite-y += gadget_chips.o composite.o obj-$(CONFIG_USB_DUMMY_HCD) += dummy_hcd.o obj-$(CONFIG_USB_NET2272) += net2272.o obj-$(CONFIG_USB_NET2280) += net2280.o diff --git a/drivers/usb/gadget/acm_ms.c b/drivers/usb/gadget/acm_ms.c index e18e7cf..8fb6cb5 100644 --- a/drivers/usb/gadget/acm_ms.c +++ b/drivers/usb/gadget/acm_ms.c @@ -15,6 +15,7 @@ */ #include <linux/kernel.h> +#include <linux/module.h> #include "u_serial.h" @@ -40,7 +41,6 @@ * a "gcc --combine ... part1.c part2.c part3.c ... " build would. */ -#include "composite.c" #include "u_serial.c" #include "f_acm.c" #include "f_mass_storage.c" diff --git a/drivers/usb/gadget/audio.c b/drivers/usb/gadget/audio.c index e1dc15f..461076c 100644 --- a/drivers/usb/gadget/audio.c +++ b/drivers/usb/gadget/audio.c @@ -12,22 +12,13 @@ /* #define VERBOSE_DEBUG */ #include <linux/kernel.h> +#include <linux/module.h> #include <linux/usb/composite.h> #include "gadget_chips.h" #define DRIVER_DESC "Linux USB Audio Gadget" #define DRIVER_VERSION "Feb 2, 2012" -/*-------------------------------------------------------------------------*/ - -/* - * Kbuild is not very cooperative with respect to linking separately - * compiled library objects into one module. So for now we won't use - * separate compilation ... ensuring init/exit sections work to shrink - * the runtime footprint, and giving us at least some parts of what - * a "gcc --combine ... part1.c part2.c part3.c ... " build would. - */ -#include "composite.c" USB_GADGET_COMPOSITE_OPTIONS(); /* string IDs are assigned dynamically */ diff --git a/drivers/usb/gadget/cdc2.c b/drivers/usb/gadget/cdc2.c index 766ca2d..a92c5a5 100644 --- a/drivers/usb/gadget/cdc2.c +++ b/drivers/usb/gadget/cdc2.c @@ -43,7 +43,6 @@ USB_GADGET_COMPOSITE_OPTIONS(); * a "gcc --combine ... part1.c part2.c part3.c ... " build would. */ -#include "composite.c" #include "u_serial.c" #include "f_acm.c" #include "f_ecm.c" diff --git a/drivers/usb/gadget/composite.c b/drivers/usb/gadget/composite.c index 487e912..5431c29 100644 --- a/drivers/usb/gadget/composite.c +++ b/drivers/usb/gadget/composite.c @@ -155,6 +155,7 @@ ep_found: } return 0; } +EXPORT_PER_CPU_SYMBOL_GPL(config_ep_by_speed); /** * usb_add_function() - add a function to a configuration @@ -213,6 +214,7 @@ done: function->name, function, value); return value; } +EXPORT_SYMBOL_GPL(usb_add_function); /** * usb_function_deactivate - prevent function and gadget enumeration @@ -249,6 +251,7 @@ int usb_function_deactivate(struct usb_function *function) spin_unlock_irqrestore(&cdev->lock, flags); return status; } +EXPORT_SYMBOL_GPL(usb_function_deactivate); /** * usb_function_activate - allow function and gadget enumeration @@ -279,6 +282,7 @@ int usb_function_activate(struct usb_function *function) spin_unlock_irqrestore(&cdev->lock, flags); return status; } +EXPORT_SYMBOL_GPL(usb_function_activate); /** * usb_interface_id() - allocate an unused interface ID @@ -315,6 +319,7 @@ int usb_interface_id(struct usb_configuration *config, } return -ENODEV; } +EXPORT_SYMBOL_GPL(usb_interface_id); static int config_buf(struct usb_configuration *config, enum usb_device_speed speed, void *buf, u8 type) @@ -755,6 +760,7 @@ done: config->bConfigurationValue, status); return status; } +EXPORT_SYMBOL_GPL(usb_add_config); static void remove_config(struct usb_composite_dev *cdev, struct usb_configuration *config) @@ -968,6 +974,7 @@ int usb_string_id(struct usb_composite_dev *cdev) } return -ENODEV; } +EXPORT_SYMBOL_GPL(usb_string_id); /** * usb_string_ids() - allocate unused string IDs in batch @@ -1000,6 +1007,7 @@ int usb_string_ids_tab(struct usb_composite_dev *cdev, struct usb_string *str) return 0; } +EXPORT_SYMBOL_GPL(usb_string_ids_tab); /** * usb_string_ids_n() - allocate unused string IDs in batch @@ -1028,7 +1036,7 @@ int usb_string_ids_n(struct usb_composite_dev *c, unsigned n) c->next_string_id += n; return next + 1; } - +EXPORT_SYMBOL_GPL(usb_string_ids_n); /*-------------------------------------------------------------------------*/ @@ -1495,6 +1503,7 @@ char *composite_default_mfr(struct usb_gadget *gadget) } return mfr; } +EXPORT_SYMBOL_GPL(composite_default_mfr); /*-------------------------------------------------------------------------*/ @@ -1614,6 +1623,7 @@ int usb_composite_probe(struct usb_composite_driver *driver) return usb_gadget_probe_driver(gadget_driver); } +EXPORT_SYMBOL_GPL(usb_composite_probe); /** * usb_composite_unregister() - unregister a composite driver @@ -1626,6 +1636,7 @@ void usb_composite_unregister(struct usb_composite_driver *driver) { usb_gadget_unregister_driver(&driver->gadget_driver); } +EXPORT_SYMBOL_GPL(usb_composite_unregister); /** * usb_composite_setup_continue() - Continue with the control transfer @@ -1662,4 +1673,4 @@ void usb_composite_setup_continue(struct usb_composite_dev *cdev) spin_unlock_irqrestore(&cdev->lock, flags); } - +EXPORT_SYMBOL_GPL(usb_composite_setup_continue); diff --git a/drivers/usb/gadget/ether.c b/drivers/usb/gadget/ether.c index 09d4156..ef1276f 100644 --- a/drivers/usb/gadget/ether.c +++ b/drivers/usb/gadget/ether.c @@ -100,8 +100,6 @@ static inline bool has_rndis(void) * the runtime footprint, and giving us at least some parts of what * a "gcc --combine ... part1.c part2.c part3.c ... " build would. */ -#include "composite.c" - #include "f_ecm.c" #include "f_subset.c" #ifdef USB_ETH_RNDIS diff --git a/drivers/usb/gadget/f_hid.c b/drivers/usb/gadget/f_hid.c index 77dbca0..511e527 100644 --- a/drivers/usb/gadget/f_hid.c +++ b/drivers/usb/gadget/f_hid.c @@ -17,6 +17,7 @@ #include <linux/poll.h> #include <linux/uaccess.h> #include <linux/wait.h> +#include <linux/sched.h> #include <linux/usb/g_hid.h> static int major, minors; diff --git a/drivers/usb/gadget/g_ffs.c b/drivers/usb/gadget/g_ffs.c index da9484a..9fac6a1 100644 --- a/drivers/usb/gadget/g_ffs.c +++ b/drivers/usb/gadget/g_ffs.c @@ -21,9 +21,6 @@ * the runtime footprint, and giving us at least some parts of what * a "gcc --combine ... part1.c part2.c part3.c ... " build would. */ - -#include "composite.c" - #if defined CONFIG_USB_FUNCTIONFS_ETH || defined CONFIG_USB_FUNCTIONFS_RNDIS # if defined USB_ETH_RNDIS # undef USB_ETH_RNDIS diff --git a/drivers/usb/gadget/gmidi.c b/drivers/usb/gadget/gmidi.c index 51fb461..6e76b29 100644 --- a/drivers/usb/gadget/gmidi.c +++ b/drivers/usb/gadget/gmidi.c @@ -30,13 +30,13 @@ #include <sound/rawmidi.h> #include <linux/usb/ch9.h> +#include <linux/usb/composite.h> #include <linux/usb/gadget.h> #include <linux/usb/audio.h> #include <linux/usb/midi.h> #include "gadget_chips.h" -#include "composite.c" #include "f_midi.c" /*-------------------------------------------------------------------------*/ diff --git a/drivers/usb/gadget/hid.c b/drivers/usb/gadget/hid.c index 6839f55..a07a9e3 100644 --- a/drivers/usb/gadget/hid.c +++ b/drivers/usb/gadget/hid.c @@ -15,6 +15,8 @@ #include <linux/kernel.h> #include <linux/platform_device.h> #include <linux/list.h> +#include <linux/module.h> +#include <linux/usb/composite.h> #include "gadget_chips.h" #define DRIVER_DESC "HID Gadget" @@ -34,9 +36,6 @@ * the runtime footprint, and giving us at least some parts of what * a "gcc --combine ... part1.c part2.c part3.c ... " build would. */ - -#include "composite.c" - #include "f_hid.c" diff --git a/drivers/usb/gadget/mass_storage.c b/drivers/usb/gadget/mass_storage.c index 769195a..eeb5857 100644 --- a/drivers/usb/gadget/mass_storage.c +++ b/drivers/usb/gadget/mass_storage.c @@ -30,7 +30,7 @@ #include <linux/kernel.h> #include <linux/usb/ch9.h> - +#include <linux/module.h> /*-------------------------------------------------------------------------*/ @@ -46,8 +46,6 @@ * the runtime footprint, and giving us at least some parts of what * a "gcc --combine ... part1.c part2.c part3.c ... " build would. */ - -#include "composite.c" #include "f_mass_storage.c" /*-------------------------------------------------------------------------*/ diff --git a/drivers/usb/gadget/multi.c b/drivers/usb/gadget/multi.c index 847635b..7792583 100644 --- a/drivers/usb/gadget/multi.c +++ b/drivers/usb/gadget/multi.c @@ -41,9 +41,6 @@ MODULE_LICENSE("GPL"); * the runtime footprint, and giving us at least some parts of what * a "gcc --combine ... part1.c part2.c part3.c ... " build would. */ - -#include "composite.c" - #include "f_mass_storage.c" #include "u_serial.c" diff --git a/drivers/usb/gadget/ncm.c b/drivers/usb/gadget/ncm.c index 82f0173..71b7e4d 100644 --- a/drivers/usb/gadget/ncm.c +++ b/drivers/usb/gadget/ncm.c @@ -20,6 +20,8 @@ /* #define VERBOSE_DEBUG */ #include <linux/kernel.h> +#include <linux/module.h> +#include <linux/usb/composite.h> #include "u_ether.h" @@ -34,8 +36,6 @@ * the runtime footprint, and giving us at least some parts of what * a "gcc --combine ... part1.c part2.c part3.c ... " build would. */ -#include "composite.c" - #include "f_ncm.c" #include "u_ether.c" diff --git a/drivers/usb/gadget/nokia.c b/drivers/usb/gadget/nokia.c index f194e70..1317041 100644 --- a/drivers/usb/gadget/nokia.c +++ b/drivers/usb/gadget/nokia.c @@ -37,8 +37,6 @@ * the runtime footprint, and giving us at least some parts of what * a "gcc --combine ... part1.c part2.c part3.c ... " build would. */ -#include "composite.c" - #include "u_serial.c" #include "f_acm.c" #include "f_ecm.c" diff --git a/drivers/usb/gadget/printer.c b/drivers/usb/gadget/printer.c index a719af3..03b4bf2 100644 --- a/drivers/usb/gadget/printer.c +++ b/drivers/usb/gadget/printer.c @@ -37,22 +37,12 @@ #include <asm/unaligned.h> #include <linux/usb/ch9.h> +#include <linux/usb/composite.h> #include <linux/usb/gadget.h> #include <linux/usb/g_printer.h> #include "gadget_chips.h" - -/* - * Kbuild is not very cooperative with respect to linking separately - * compiled library objects into one module. So for now we won't use - * separate compilation ... ensuring init/exit sections work to shrink - * the runtime footprint, and giving us at least some parts of what - * a "gcc --combine ... part1.c part2.c part3.c ... " build would. - */ -#include "composite.c" - -/*-------------------------------------------------------------------------*/ USB_GADGET_COMPOSITE_OPTIONS(); #define DRIVER_DESC "Printer Gadget" diff --git a/drivers/usb/gadget/serial.c b/drivers/usb/gadget/serial.c index f842eea..cefb833 100644 --- a/drivers/usb/gadget/serial.c +++ b/drivers/usb/gadget/serial.c @@ -36,8 +36,6 @@ * the runtime footprint, and giving us at least some parts of what * a "gcc --combine ... part1.c part2.c part3.c ... " build would. */ -#include "composite.c" - #include "f_acm.c" #include "f_obex.c" #include "f_serial.c" diff --git a/drivers/usb/gadget/tcm_usb_gadget.c b/drivers/usb/gadget/tcm_usb_gadget.c index 7de60d8..b2e6840 100644 --- a/drivers/usb/gadget/tcm_usb_gadget.c +++ b/drivers/usb/gadget/tcm_usb_gadget.c @@ -25,8 +25,6 @@ #include <target/configfs_macros.h> #include <asm/unaligned.h> -#include "composite.c" - #include "tcm_usb_gadget.h" USB_GADGET_COMPOSITE_OPTIONS(); diff --git a/drivers/usb/gadget/webcam.c b/drivers/usb/gadget/webcam.c index 40eb91e..ad71491 100644 --- a/drivers/usb/gadget/webcam.c +++ b/drivers/usb/gadget/webcam.c @@ -23,8 +23,6 @@ * the runtime footprint, and giving us at least some parts of what * a "gcc --combine ... part1.c part2.c part3.c ... " build would. */ -#include "composite.c" - #include "uvc_queue.c" #include "uvc_video.c" #include "uvc_v4l2.c" diff --git a/drivers/usb/gadget/zero.c b/drivers/usb/gadget/zero.c index b791c28..cbfba9d 100644 --- a/drivers/usb/gadget/zero.c +++ b/drivers/usb/gadget/zero.c @@ -57,8 +57,6 @@ * the runtime footprint, and giving us at least some parts of what * a "gcc --combine ... part1.c part2.c part3.c ... " build would. */ -#include "composite.c" - #include "f_sourcesink.c" #include "f_loopback.c" diff --git a/include/linux/usb/composite.h b/include/linux/usb/composite.h index 59cf2dd..48587b4 100644 --- a/include/linux/usb/composite.h +++ b/include/linux/usb/composite.h @@ -380,6 +380,7 @@ extern int usb_string_id(struct usb_composite_dev *c); extern int usb_string_ids_tab(struct usb_composite_dev *c, struct usb_string *str); extern int usb_string_ids_n(struct usb_composite_dev *c, unsigned n); +char *composite_default_mfr(struct usb_gadget *gadget); /* * Some systems will need runtime overrides for the product identifiers -- 1.7.10.4 -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html