mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-25 22:20:45 +00:00
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:
parent
1e993710e8
commit
a17b38ce39
1 changed files with 25 additions and 12 deletions
|
@ -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.
|
||||
|
|
Loading…
Reference in a new issue