All of lore.kernel.org
 help / color / mirror / Atom feed
From: Simon Glass <sjg@chromium.org>
To: u-boot@lists.denx.de
Subject: [PATCH v2 1/7] console: Introduce console_start() and console_stop()
Date: Fri, 18 Dec 2020 19:29:16 -0700	[thread overview]
Message-ID: <CAPnjgZ2NVSj5_aZaSTcwMnB2woxG+KJzdjhRnScbMYaU_DB-+g@mail.gmail.com> (raw)
In-Reply-To: <20201216231624.9724-1-andriy.shevchenko@linux.intel.com>

Hi Andy,

On Wed, 16 Dec 2020 at 16:16, Andy Shevchenko
<andriy.shevchenko@linux.intel.com> wrote:
>
> In the future we would like to stop unused consoles and
> also add a reference counting to avoid imbalanced calls
> to ->start() and ->stop() in some cases.
>
> Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
> ---
> v2: new patch
>  common/console.c  | 30 +++++++++++++++++++++++-------
>  include/console.h |  3 +++
>  2 files changed, 26 insertions(+), 7 deletions(-)
>

Reviewed-by: Simon Glass <sjg@chromium.org>

But please see below

> diff --git a/common/console.c b/common/console.c
> index 3348436da6f7..1efbcc7672ce 100644
> --- a/common/console.c
> +++ b/common/console.c
> @@ -114,13 +114,9 @@ static int console_setfile(int file, struct stdio_dev * dev)
>         case stdin:
>         case stdout:
>         case stderr:
> -               /* Start new device */
> -               if (dev->start) {
> -                       error = dev->start(dev);
> -                       /* If it's not started dont use it */
> -                       if (error < 0)
> -                               break;
> -               }
> +               error = console_start(file, dev);
> +               if (error)
> +                       break;
>
>                 /* Assign the new device (leaving the existing one started) */
>                 stdio_devices[file] = dev;
> @@ -310,6 +306,26 @@ static inline void console_doenv(int file, struct stdio_dev *dev)
>  #endif
>  #endif /* CONIFIG_IS_ENABLED(CONSOLE_MUX) */
>
> +int console_start(int file, struct stdio_dev *dev)
> +{
> +       int error;
> +
> +       /* Start new device */
> +       if (dev->start) {
> +               error = dev->start(dev);
> +               /* If it's not started don't use it */
> +               if (error < 0)
> +                       return error;
> +       }
> +       return 0;
> +}
> +
> +void console_stop(int file, struct stdio_dev *dev)
> +{
> +       if (dev->stop)
> +               dev->stop(dev);
> +}
> +
>  /** U-Boot INITIAL CONSOLE-NOT COMPATIBLE FUNCTIONS *************************/
>
>  int serial_printf(const char *fmt, ...)
> diff --git a/include/console.h b/include/console.h
> index 432f892b6cce..233ff323e1ee 100644
> --- a/include/console.h
> +++ b/include/console.h
> @@ -8,6 +8,7 @@
>  #define __CONSOLE_H
>
>  #include <stdbool.h>
> +#include <stdio_dev.h>
>  #include <linux/errno.h>
>
>  extern char console_buffer[];
> @@ -15,6 +16,8 @@ extern char console_buffer[];
>  /* common/console.c */
>  int console_init_f(void);      /* Before relocation; uses the serial  stuff */
>  int console_init_r(void);      /* After  relocation; uses the console stuff */
> +int console_start(int file, struct stdio_dev *dev);
> +void console_stop(int file, struct stdio_dev *dev);

These two need comments

Also I'd prefer to use sdev for the args, since we use dev for a
driver model device.

>  int console_assign(int file, const char *devname);     /* Assign the console */
>  int ctrlc(void);
>  int had_ctrlc(void);   /* have we had a Control-C since last clear? */
> --
> 2.29.2
>

Regards,
Simon

      parent reply	other threads:[~2020-12-19  2:29 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-12-16 23:16 [PATCH v2 1/7] console: Introduce console_start() and console_stop() Andy Shevchenko
2020-12-16 23:16 ` [PATCH v2 2/7] console: Keep ->start() and ->stop() balanced Andy Shevchenko
2020-12-17  9:48   ` Andy Shevchenko
2020-12-19  2:29   ` Simon Glass
2020-12-16 23:16 ` [PATCH v2 3/7] IOMUX: move search_device() to console.h Andy Shevchenko
2020-12-19  2:29   ` Simon Glass
2020-12-16 23:16 ` [PATCH v2 4/7] IOMUX: Preserve console list if realloc() fails Andy Shevchenko
2020-12-19  2:29   ` Simon Glass
2020-12-21 12:01     ` Andy Shevchenko
2020-12-21 16:47       ` Simon Glass
2020-12-21 17:17         ` Andy Shevchenko
2020-12-21 17:33           ` Simon Glass
2020-12-16 23:16 ` [PATCH v2 5/7] IOMUX: Refactor iomux_doenv() in order to increase readability Andy Shevchenko
2020-12-19  2:29   ` Simon Glass
2020-12-21 12:04     ` Andy Shevchenko
2020-12-21 16:47       ` Simon Glass
2020-12-16 23:16 ` [PATCH v2 6/7] IOMUX: Drop indentation level by removing redundant 'else' Andy Shevchenko
2020-12-19  2:29   ` Simon Glass
2020-12-16 23:16 ` [PATCH v2 7/7] IOMUX: Stop dropped consoles Andy Shevchenko
2020-12-19  2:29   ` Simon Glass
2020-12-19  2:29 ` Simon Glass [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=CAPnjgZ2NVSj5_aZaSTcwMnB2woxG+KJzdjhRnScbMYaU_DB-+g@mail.gmail.com \
    --to=sjg@chromium.org \
    --cc=u-boot@lists.denx.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.