提交 1db894ec 编写于 作者: A Alexey Charkov 提交者: Greg Kroah-Hartman

tty: vt8500_serial: add polled console functions

This adds simple polling functions for single-character transmit
and receive, as used by kgdb.
Signed-off-by: NAlexey Charkov <alchark@gmail.com>
Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
上级 8c986d3e
......@@ -558,6 +558,33 @@ static struct console vt8500_console = {
#define VT8500_CONSOLE NULL
#endif
#ifdef CONFIG_CONSOLE_POLL
static int vt8500_get_poll_char(struct uart_port *port)
{
unsigned int status = vt8500_read(port, VT8500_URFIDX);
if (!(status & 0x1f00))
return NO_POLL_CHAR;
return vt8500_read(port, VT8500_RXFIFO) & 0xff;
}
static void vt8500_put_poll_char(struct uart_port *port, unsigned char c)
{
unsigned int status, tmout = 10000;
do {
status = vt8500_read(port, VT8500_URFIDX);
if (--tmout == 0)
break;
udelay(1);
} while (status & 0x10);
vt8500_write(port, c, VT8500_TXFIFO);
}
#endif
static struct uart_ops vt8500_uart_pops = {
.tx_empty = vt8500_tx_empty,
.set_mctrl = vt8500_set_mctrl,
......@@ -575,6 +602,10 @@ static struct uart_ops vt8500_uart_pops = {
.request_port = vt8500_request_port,
.config_port = vt8500_config_port,
.verify_port = vt8500_verify_port,
#ifdef CONFIG_CONSOLE_POLL
.poll_get_char = vt8500_get_poll_char,
.poll_put_char = vt8500_put_poll_char,
#endif
};
static struct uart_driver vt8500_uart_driver = {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册
新手
引导
客服 返回
顶部