console: add console_has_tstc helper function for CONSOLE_MUX

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>
This commit is contained in:
Patrick Delaunay 2020-12-18 12:46:46 +01:00 committed by Tom Rini
parent 1e993710e8
commit a17b38ce39

View File

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