[PATCH 1/3] console: Add set_active callback

Sascha Hauer s.hauer at pengutronix.de
Wed Dec 17 06:12:09 PST 2014


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 at pengutronix.de>
---
 common/console.c  | 7 +++++++
 include/console.h | 1 +
 2 files changed, 8 insertions(+)

diff --git a/common/console.c b/common/console.c
index e5f4267..c092621 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 97a406d..beafb4d 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;
 
-- 
2.1.3




More information about the barebox mailing list