diff options
author | Sascha Hauer <s.hauer@pengutronix.de> | 2014-12-17 15:08:01 +0100 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2014-12-17 15:08:04 +0100 |
commit | 2e1a6c9bcec588d8e3b4dade5fbf4be7265530e8 (patch) | |
tree | 7a5cca07a96118d9209622973c74aa086fc599b5 | |
parent | 631be8e6cbe003f469a7e6b54046a743b710d989 (diff) | |
download | barebox-2e1a6c9bcec588d8e3b4dade5fbf4be7265530e8.tar.gz barebox-2e1a6c9bcec588d8e3b4dade5fbf4be7265530e8.tar.xz |
console: Add set_active callback
The netconsole needs to be able to deny activation when the network
has not been enabled. Add an optional callback to the console for
this.
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
-rw-r--r-- | common/console.c | 7 | ||||
-rw-r--r-- | include/console.h | 1 |
2 files changed, 8 insertions, 0 deletions
diff --git a/common/console.c b/common/console.c index e5f4267cbd..c092621aa1 100644 --- a/common/console.c +++ b/common/console.c @@ -64,6 +64,7 @@ static int console_std_set(struct device_d *dev, struct param_d *param, struct console_device *cdev = to_console_dev(dev); char active[4]; unsigned int flag = 0, i = 0; + int ret; if (val) { if (strchr(val, 'i') && cdev->getc) { @@ -90,6 +91,12 @@ static int console_std_set(struct device_d *dev, struct param_d *param, cdev->setbrg(cdev, cdev->baudrate); } + if (cdev->set_active) { + ret = cdev->set_active(cdev, flag); + if (ret) + return ret; + } + active[i] = 0; cdev->f_active = flag; diff --git a/include/console.h b/include/console.h index 97a406d9c9..beafb4d778 100644 --- a/include/console.h +++ b/include/console.h @@ -44,6 +44,7 @@ struct console_device { int (*setbrg)(struct console_device *cdev, int baudrate); void (*flush)(struct console_device *cdev); int (*set_mode)(struct console_device *cdev, enum console_mode mode); + int (*set_active)(struct console_device *cdev, unsigned active); char *devname; |