After personal feedback i'll resend the patches without RFC Am 24.03.2017 um 10:07 schrieb Oleksij Rempel: > ... if glocal variable configured to do this. > > Signed-off-by: Oleksij Rempel > --- > drivers/usb/gadget/Kconfig | 6 ++++ > drivers/usb/gadget/Makefile | 1 + > drivers/usb/gadget/autostart.c | 67 ++++++++++++++++++++++++++++++++++++++++++ > 3 files changed, 74 insertions(+) > create mode 100644 drivers/usb/gadget/autostart.c > > diff --git a/drivers/usb/gadget/Kconfig b/drivers/usb/gadget/Kconfig > index eb279ae8d..dd5d4a75a 100644 > --- a/drivers/usb/gadget/Kconfig > +++ b/drivers/usb/gadget/Kconfig > @@ -30,6 +30,12 @@ config USB_GADGET_DRIVER_PXA27X > default y > select USB_GADGET_DUALSPEED > > +config USB_GADGET_AUTOSTART > + bool > + default y > + select ENVIRONMENT_VARIABLES > + prompt "Automatically start usbgadget on boot" > + > comment "USB Gadget drivers" > > config USB_GADGET_DFU > diff --git a/drivers/usb/gadget/Makefile b/drivers/usb/gadget/Makefile > index 9ef594575..e74cf0266 100644 > --- a/drivers/usb/gadget/Makefile > +++ b/drivers/usb/gadget/Makefile > @@ -1,5 +1,6 @@ > > obj-$(CONFIG_USB_GADGET) += composite.o config.o usbstring.o epautoconf.o udc-core.o functions.o config.o multi.o > +obj-$(CONFIG_USB_GADGET_AUTOSTART) += autostart.o > obj-$(CONFIG_USB_GADGET_SERIAL) += u_serial.o serial.o f_serial.o f_acm.o > obj-$(CONFIG_USB_GADGET_DFU) += dfu.o > obj-$(CONFIG_USB_GADGET_FASTBOOT) += f_fastboot.o > diff --git a/drivers/usb/gadget/autostart.c b/drivers/usb/gadget/autostart.c > new file mode 100644 > index 000000000..43c2ba23d > --- /dev/null > +++ b/drivers/usb/gadget/autostart.c > @@ -0,0 +1,67 @@ > +/* > + * Copyright (c) 2017 Oleksij Rempel , Pengutronix > + * > + * This program is free software; you can redistribute it and/or modify > + * it under the terms of the GNU General Public License version 2 > + * as published by the Free Software Foundation. > + * > + * This program is distributed in the hope that it will be useful, > + * but WITHOUT ANY WARRANTY; without even the implied warranty of > + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the > + * GNU General Public License for more details. > + * > + */ > +#include > +#include > +#include > +#include > +#include > +#include > +#include > +#include > +#include > +#include > +#include > +#include > + > +static int autostart; > +static int acm; > +static char *fastboot_function; > + > +static int usbgadget_autostart(void) > +{ > + struct f_multi_opts opts = {}; > + > + if (!autostart) > + return 0; > + > + if (fastboot_function) > + opts.fastboot_opts.files = file_list_parse(fastboot_function); > + > + opts.create_acm = acm; > + > + return usb_multi_register(&opts); > +} > +postenvironment_initcall(usbgadget_autostart); > + > +static int usbgadget_globalvars_init(void) > +{ > + > + globalvar_add_simple_bool("usbgadget.autostart", &autostart); > + globalvar_add_simple_bool("usbgadget.acm", &acm); > + globalvar_add_simple_string("usbgadget.fastboot_function", > + &fastboot_function); > + > + return 0; > +} > +device_initcall(usbgadget_globalvars_init); > + > +BAREBOX_MAGICVAR_NAMED(global_usbgadget_autostart, > + global.usbgadget.autostart, > + "usbgadget: Automatically start usbgadget on boot"); > +BAREBOX_MAGICVAR_NAMED(global_usbgadget_acm, > + global.usbgadget.acm, > + "usbgadget: Create CDC ACM function"); > +BAREBOX_MAGICVAR_NAMED(global_usbgadget_fastboot_function, > + global.usbgadget.fastboot_function, > + "usbgadget: Create Android Fastboot function"); > -- Regards, Oleksij