Commit a6052609 authored by Christophe Leroy's avatar Christophe Leroy Committed by Greg Kroah-Hartman

tty: serial: cpm_uart: Add udbg support for enabling xmon

In order to use xmon with powerpc 8xx, the serial driver
must provide udbg_putc() and udpb_getc().

Provide them via cpm_put_poll_char() and cpm_get_poll_char().

This requires CONFIG_CONSOLE_POLL.
Signed-off-by: default avatarChristophe Leroy <christophe.leroy@csgroup.eu>
Link: https://lore.kernel.org/r/e4471bf81089252470efb3eed735d71a5b32adbd.1608716197.git.christophe.leroy@csgroup.euSigned-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 345523fa
......@@ -1107,6 +1107,32 @@ static void cpm_put_poll_char(struct uart_port *port,
ch[0] = (char)c;
cpm_uart_early_write(pinfo, ch, 1, false);
}
static struct uart_port *udbg_port;
static void udbg_cpm_putc(char c)
{
if (c == '\n')
cpm_put_poll_char(udbg_port, '\r');
cpm_put_poll_char(udbg_port, c);
}
static int udbg_cpm_getc_poll(void)
{
int c = cpm_get_poll_char(udbg_port);
return c == NO_POLL_CHAR ? -1 : c;
}
static int udbg_cpm_getc(void)
{
int c;
while ((c = udbg_cpm_getc_poll()) == -1)
cpu_relax();
return c;
}
#endif /* CONFIG_CONSOLE_POLL */
static const struct uart_ops cpm_uart_pops = {
......@@ -1237,7 +1263,10 @@ static int cpm_uart_init_port(struct device_node *np,
}
#ifdef CONFIG_PPC_EARLY_DEBUG_CPM
udbg_putc = NULL;
#ifdef CONFIG_CONSOLE_POLL
if (!udbg_port)
#endif
udbg_putc = NULL;
#endif
return cpm_uart_request_port(&pinfo->port);
......@@ -1358,6 +1387,15 @@ static int __init cpm_uart_console_setup(struct console *co, char *options)
uart_set_options(port, co, baud, parity, bits, flow);
cpm_line_cr_cmd(pinfo, CPM_CR_RESTART_TX);
#ifdef CONFIG_CONSOLE_POLL
if (!udbg_port) {
udbg_port = &pinfo->port;
udbg_putc = udbg_cpm_putc;
udbg_getc = udbg_cpm_getc;
udbg_getc_poll = udbg_cpm_getc_poll;
}
#endif
return 0;
}
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment