[PATCH 1/4] console: replace set_active by open/close
Sascha Hauer
s.hauer at pengutronix.de
Mon Feb 27 01:54:53 PST 2017
On Fri, Feb 24, 2017 at 03:24:58PM +0100, Bastian Stender wrote:
> Opening and closing consoles should be independent from setting them
> active. This way it is possible to open e.g. a framebuffer console and
> display text on it without showing stdout/stderr.
>
> Signed-off-by: Bastian Stender <bst at pengutronix.de>
> ---
> common/console.c | 19 +++++++++++++++----
> drivers/video/fbconsole.c | 28 ++++++++++++++++++----------
> include/console.h | 3 ++-
> net/netconsole.c | 27 +++++++++++++++++----------
> 4 files changed, 52 insertions(+), 25 deletions(-)
>
> diff --git a/common/console.c b/common/console.c
> index 74ccfcfc3e..43890b3da8 100644
> --- a/common/console.c
> +++ b/common/console.c
> @@ -71,10 +71,21 @@ int console_set_active(struct console_device *cdev, unsigned flag)
> if (!flag && cdev->f_active && cdev->flush)
> cdev->flush(cdev);
>
> - if (cdev->set_active) {
> - ret = cdev->set_active(cdev, flag);
> - if (ret)
> - return ret;
> + if (flag == cdev->f_active)
> + return 0;
> +
> + if (!flag) {
> + if (cdev->close) {
> + ret = cdev->close(cdev);
> + if (ret)
> + return ret;
> + }
> + } else {
> + if (cdev->open) {
> + ret = cdev->open(cdev);
> + if (ret)
> + return ret;
> + }
> }
instead of calling into cdev->open/close directly here I would prefer
console_open() / console_close() functions which get called here.
In these functions you can call the driver hooks on first open and last
close.
Sascha
--
Pengutronix e.K. | |
Industrial Linux Solutions | http://www.pengutronix.de/ |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 |
Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |
More information about the barebox
mailing list