[PATCH 3/5] console: Set baudrate during registration
Sascha Hauer
s.hauer at pengutronix.de
Tue Nov 17 03:10:49 PST 2015
This makes sure that the cdev->baudrate field is always consistent with
the hardware state.
Signed-off-by: Sascha Hauer <s.hauer at pengutronix.de>
---
common/console.c | 11 ++++-------
1 file changed, 4 insertions(+), 7 deletions(-)
diff --git a/common/console.c b/common/console.c
index 84d4ea7..4a1d257 100644
--- a/common/console.c
+++ b/common/console.c
@@ -67,12 +67,6 @@ int console_set_active(struct console_device *cdev, unsigned flag)
if (!cdev->putc)
flag &= ~(CONSOLE_STDOUT | CONSOLE_STDERR);
- if (flag && !cdev->f_active) {
- /* The device is being activated, set its baudrate */
- if (cdev->setbrg)
- cdev->setbrg(cdev, cdev->baudrate);
- }
-
if (!flag && cdev->f_active && cdev->flush)
cdev->flush(cdev);
@@ -240,7 +234,7 @@ static int __console_puts(struct console_device *cdev, const char *s)
int console_register(struct console_device *newcdev)
{
struct device_d *dev = &newcdev->class_dev;
- int activate = 0;
+ int activate = 0, ret;
if (initialized == CONSOLE_UNINITIALIZED)
console_init_early();
@@ -258,6 +252,9 @@ int console_register(struct console_device *newcdev)
platform_device_register(dev);
if (newcdev->setbrg) {
+ ret = newcdev->setbrg(newcdev, CONFIG_BAUDRATE);
+ if (ret)
+ return ret;
newcdev->baudrate = CONFIG_BAUDRATE;
dev_add_param_int(dev, "baudrate", console_baudrate_set,
NULL, &newcdev->baudrate_param, "%u", newcdev);
--
2.6.2
More information about the barebox
mailing list