diff options
author | Sascha Hauer <s.hauer@pengutronix.de> | 2015-11-11 12:32:36 +0100 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2015-11-17 12:02:02 +0100 |
commit | 67baa04396d2af50e3948c5ef836de6e6f6818ca (patch) | |
tree | 1c610a8499da4a1d9de34a911f77887cb850455a /commands/loadb.c | |
parent | fa6b6145d1cfb8fc8610478513f5b398f8869343 (diff) | |
download | barebox-67baa04396d2af50e3948c5ef836de6e6f6818ca.tar.gz barebox-67baa04396d2af50e3948c5ef836de6e6f6818ca.tar.xz |
loadb: deactivate console before using it for loadb
Remove the console device we are about using for loadb from the
console layer by deactivating it. This makes sure that no printf output
disturbs the current file transfer.
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'commands/loadb.c')
-rw-r--r-- | commands/loadb.c | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/commands/loadb.c b/commands/loadb.c index bdf1710fdf..67106656df 100644 --- a/commands/loadb.c +++ b/commands/loadb.c @@ -617,6 +617,7 @@ static int do_load_serial_bin(int argc, char *argv[]) int rcode = 0, ret; int opt; char *output_file = NULL; + int current_active; while ((opt = getopt(argc, argv, "f:b:o:c")) > 0) { switch (opt) { @@ -641,6 +642,7 @@ static int do_load_serial_bin(int argc, char *argv[]) return -ENODEV; } current_baudrate = console_get_baudrate(cdev); + current_active = console_get_active(cdev); /* Load Defaults */ if (load_baudrate == 0) @@ -665,13 +667,15 @@ static int do_load_serial_bin(int argc, char *argv[]) } } + printf("## Ready for binary (kermit) download " + "to 0x%08lX offset on %s device at %d bps...\n", offset, + output_file, load_baudrate); + + console_set_active(cdev, 0); ret = console_set_baudrate(cdev, load_baudrate); if (ret) return ret; - printf("## Ready for binary (kermit) download " - "to 0x%08lX offset on %s device at %d bps...\n", offset, - output_file, load_baudrate); addr = load_serial_bin(); if (addr == 0) { printf("## Binary (kermit) download aborted\n"); @@ -682,6 +686,8 @@ static int do_load_serial_bin(int argc, char *argv[]) if (ret) return ret; + console_set_active(cdev, current_active); + close(ofd); ofd = 0; return rcode; |