mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-12-01 17:10:11 +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)
|
#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.
|
||||||
|
|
Loading…
Reference in a new issue