diff mbox series

[v3,4/4] console: add console_has_tstc helper function for CONSOLE_MUX

Message ID 20201218124642.v3.4.I810a6b37da2c8aa13ca2e20408a8d54b08e2ef32@changeid
State Accepted
Commit a17b38ce3902e46777322f6ec26e51b25415fa5b
Delegated to: Tom Rini
Headers show
Series console: remove #ifdef CONFIG when it is possible | expand

Commit Message

Patrick Delaunay Dec. 18, 2020, 11:46 a.m. UTC
From: Patrick Delaunay <patrick.delaunay@st.com>

Add the helper function console_has_tstc() and replace the test
#if CONFIG_IS_ENABLED(CONSOLE_MUX) to a simple 'if' test to
respect the U-Boot coding rule.

No functional change.

Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com>
Signed-off-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
---

Changes in v3:
- update commit message with new function name console_has_tstc

Changes in v2:
- add comment for tstcdev variable
- rename console_tstc_check to console_has_tstc

 common/console.c | 37 +++++++++++++++++++++++++------------
 1 file changed, 25 insertions(+), 12 deletions(-)

Comments

Simon Glass Dec. 19, 2020, 3:34 a.m. UTC | #1
On Fri, 18 Dec 2020 at 04:46, Patrick Delaunay
<patrick.delaunay@foss.st.com> wrote:
>
> From: Patrick Delaunay <patrick.delaunay@st.com>
>
> Add the helper function console_has_tstc() and replace the test
> #if CONFIG_IS_ENABLED(CONSOLE_MUX) to a simple 'if' test to
> respect the U-Boot coding rule.
>
> No functional change.
>
> Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com>
> Signed-off-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
> ---
>
> Changes in v3:
> - update commit message with new function name console_has_tstc
>
> Changes in v2:
> - add comment for tstcdev variable
> - rename console_tstc_check to console_has_tstc
>
>  common/console.c | 37 +++++++++++++++++++++++++------------
>  1 file changed, 25 insertions(+), 12 deletions(-)
>

Reviewed-by: Simon Glass <sjg@chromium.org>
Tom Rini Jan. 16, 2021, 4:24 p.m. UTC | #2
On Fri, Dec 18, 2020 at 12:46:46PM +0100, Patrick Delaunay wrote:

> From: Patrick Delaunay <patrick.delaunay@st.com>
> 
> Add the helper function console_has_tstc() and replace the test
> #if CONFIG_IS_ENABLED(CONSOLE_MUX) to a simple 'if' test to
> respect the U-Boot coding rule.
> 
> No functional change.
> 
> Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com>
> Signed-off-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
> Reviewed-by: Simon Glass <sjg@chromium.org>

Applied to u-boot/master, thanks!
diff mbox series

Patch

diff --git a/common/console.c b/common/console.c
index 295c10f242..e82b5d2075 100644
--- a/common/console.c
+++ b/common/console.c
@@ -231,6 +231,7 @@  static bool console_dev_is_serial(struct stdio_dev *sdev)
 #if CONFIG_IS_ENABLED(CONSOLE_MUX)
 /** Console I/O multiplexing *******************************************/
 
+/* tstcdev: save the last stdio device with pending characters, with tstc != 0 */
 static struct stdio_dev *tstcdev;
 struct stdio_dev **console_devices[MAX_FILES];
 int cd_count[MAX_FILES];
@@ -256,6 +257,12 @@  static int console_getc(int file)
 	return ret;
 }
 
+/*  Upper layer may have already called tstc(): check the saved result */
+static bool console_has_tstc(void)
+{
+	return !!tstcdev;
+}
+
 static int console_tstc(int file)
 {
 	int i, ret;
@@ -348,6 +355,11 @@  static inline int console_getc(int file)
 	return stdio_devices[file]->getc(stdio_devices[file]);
 }
 
+static bool console_has_tstc(void)
+{
+	return false;
+}
+
 static inline int console_tstc(int file)
 {
 	return stdio_devices[file]->tstc(stdio_devices[file]);
@@ -405,18 +417,19 @@  int fgetc(int file)
 		 */
 		for (;;) {
 			WATCHDOG_RESET();
-#if CONFIG_IS_ENABLED(CONSOLE_MUX)
-			/*
-			 * Upper layer may have already called tstc() so
-			 * check for that first.
-			 */
-			if (tstcdev != NULL)
-				return console_getc(file);
-			console_tstc(file);
-#else
-			if (console_tstc(file))
-				return console_getc(file);
-#endif
+			if (CONFIG_IS_ENABLED(CONSOLE_MUX)) {
+				/*
+				 * Upper layer may have already called tstc() so
+				 * check for that first.
+				 */
+				if (console_has_tstc())
+					return console_getc(file);
+				console_tstc(file);
+			} else {
+				if (console_tstc(file))
+					return console_getc(file);
+			}
+
 			/*
 			 * If the watchdog must be rate-limited then it should
 			 * already be handled in board-specific code.