summaryrefslogtreecommitdiffstats
path: root/commands/usbgadget.c
diff options
context:
space:
mode:
authorSascha Hauer <s.hauer@pengutronix.de>2017-04-07 09:59:35 +0200
committerSascha Hauer <s.hauer@pengutronix.de>2017-04-07 09:59:35 +0200
commit4cd023c77942f48efded3e9e47c2be823d5c8d82 (patch)
treeb6790388da4c11d50cc7b22ee915fc6133b051c0 /commands/usbgadget.c
parent011aec6558e93b01c64202929a6ae90a334a3742 (diff)
parente4f81050e098074792730b61563538d9e394e3d6 (diff)
downloadbarebox-4cd023c77942f48efded3e9e47c2be823d5c8d82.tar.gz
barebox-4cd023c77942f48efded3e9e47c2be823d5c8d82.tar.xz
Merge branch 'for-next/misc'
Diffstat (limited to 'commands/usbgadget.c')
-rw-r--r--commands/usbgadget.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/commands/usbgadget.c b/commands/usbgadget.c
index 314884aee8..02c2c96b02 100644
--- a/commands/usbgadget.c
+++ b/commands/usbgadget.c
@@ -20,6 +20,7 @@
*/
#include <common.h>
#include <command.h>
+#include <environment.h>
#include <errno.h>
#include <malloc.h>
#include <getopt.h>
@@ -32,11 +33,11 @@
static int do_usbgadget(int argc, char *argv[])
{
int opt, ret;
- int acm = 1, create_serial = 0;
- char *fastboot_opts = NULL, *dfu_opts = NULL;
+ int acm = 1, create_serial = 0, fastboot_set = 0;
+ const char *fastboot_opts = NULL, *dfu_opts = NULL;
struct f_multi_opts *opts;
- while ((opt = getopt(argc, argv, "asdA:D:")) > 0) {
+ while ((opt = getopt(argc, argv, "asdA::D:")) > 0) {
switch (opt) {
case 'a':
acm = 1;
@@ -51,6 +52,7 @@ static int do_usbgadget(int argc, char *argv[])
break;
case 'A':
fastboot_opts = optarg;
+ fastboot_set = 1;
break;
case 'd':
usb_multi_unregister();
@@ -60,6 +62,9 @@ static int do_usbgadget(int argc, char *argv[])
}
}
+ if (fastboot_set && !fastboot_opts)
+ fastboot_opts = getenv("global.usbgadget.fastboot_function");
+
if (!dfu_opts && !fastboot_opts && !create_serial)
return COMMAND_ERROR_USAGE;