mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-08-22 17:01:14 +00:00
serial: atmel_serial: add poll_get_char and poll_put_char uart_ops
Permits using KGDB over the console with the atmel_serial driver. [akpm@linux-foundation.org: s/barrier/cpu_relax/] Signed-off-by: Albin Tonnerre <albin.tonnerre@free-electrons.com> Acked-by: Andrew Victor <linux@maxim.org.za> Acked-by: Haavard Skinnemoen <haavard.skinnemoen@atmel.com> Cc: Alan Cox <alan@lxorguk.ukuu.org.uk> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This commit is contained in:
parent
8b505ca8e2
commit
8fe2d54145
1 changed files with 22 additions and 0 deletions
|
@ -1213,6 +1213,24 @@ static int atmel_verify_port(struct uart_port *port, struct serial_struct *ser)
|
|||
return ret;
|
||||
}
|
||||
|
||||
#ifdef CONFIG_CONSOLE_POLL
|
||||
static int atmel_poll_get_char(struct uart_port *port)
|
||||
{
|
||||
while (!(UART_GET_CSR(port) & ATMEL_US_RXRDY))
|
||||
cpu_relax();
|
||||
|
||||
return UART_GET_CHAR(port);
|
||||
}
|
||||
|
||||
static void atmel_poll_put_char(struct uart_port *port, unsigned char ch)
|
||||
{
|
||||
while (!(UART_GET_CSR(port) & ATMEL_US_TXRDY))
|
||||
cpu_relax();
|
||||
|
||||
UART_PUT_CHAR(port, ch);
|
||||
}
|
||||
#endif
|
||||
|
||||
static struct uart_ops atmel_pops = {
|
||||
.tx_empty = atmel_tx_empty,
|
||||
.set_mctrl = atmel_set_mctrl,
|
||||
|
@ -1232,6 +1250,10 @@ static struct uart_ops atmel_pops = {
|
|||
.config_port = atmel_config_port,
|
||||
.verify_port = atmel_verify_port,
|
||||
.pm = atmel_serial_pm,
|
||||
#ifdef CONFIG_CONSOLE_POLL
|
||||
.poll_get_char = atmel_poll_get_char,
|
||||
.poll_put_char = atmel_poll_put_char,
|
||||
#endif
|
||||
};
|
||||
|
||||
/*
|
||||
|
|
Loading…
Reference in a new issue