summaryrefslogtreecommitdiffstats
path: root/commands/loadb.c
diff options
context:
space:
mode:
authorSascha Hauer <s.hauer@pengutronix.de>2015-11-11 12:32:36 +0100
committerSascha Hauer <s.hauer@pengutronix.de>2015-11-17 12:02:02 +0100
commit67baa04396d2af50e3948c5ef836de6e6f6818ca (patch)
tree1c610a8499da4a1d9de34a911f77887cb850455a /commands/loadb.c
parentfa6b6145d1cfb8fc8610478513f5b398f8869343 (diff)
downloadbarebox-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.c12
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;