serial: atmel: trivial: clean the IP version decoding code

No functional change is associated with this patch.

A driver property depends on the Atmel serial IP revision. This property
is the way the rx timeout is handled: by an hardware or software timer.
So, change this property name and setup code so that it's easier to understand
and more future proof as the distinction of USART vs. UART is blurrier on newer
SoCs.
Variable names and debug comments are also adapted to make this code more obvious.

Signed-off-by: Nicolas Ferre <nicolas.ferre@atmel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
Nicolas Ferre 2016-01-26 11:26:14 +01:00 committed by Greg Kroah-Hartman
parent 0b41ce9910
commit 4b769371fe
1 changed files with 16 additions and 16 deletions

View File

@ -159,8 +159,8 @@ struct atmel_uart_port {
u32 rts_high; u32 rts_high;
u32 rts_low; u32 rts_low;
bool ms_irq_enabled; bool ms_irq_enabled;
bool is_usart; /* usart or uart */ bool has_hw_timer;
struct timer_list uart_timer; /* uart timer */ struct timer_list uart_timer;
bool suspended; bool suspended;
unsigned int pending; unsigned int pending;
@ -1710,19 +1710,19 @@ static void atmel_get_ip_name(struct uart_port *port)
struct atmel_uart_port *atmel_port = to_atmel_uart_port(port); struct atmel_uart_port *atmel_port = to_atmel_uart_port(port);
int name = atmel_uart_readl(port, ATMEL_US_NAME); int name = atmel_uart_readl(port, ATMEL_US_NAME);
u32 version; u32 version;
int usart, uart; u32 usart, dbgu_uart;
/* usart and uart ascii */ /* ASCII decoding for IP version */
usart = 0x55534152; usart = 0x55534152; /* USAR(T) */
uart = 0x44424755; dbgu_uart = 0x44424755; /* DBGU */
atmel_port->is_usart = false; atmel_port->has_hw_timer = false;
if (name == usart) { if (name == usart) {
dev_dbg(port->dev, "This is usart\n"); dev_dbg(port->dev, "Usart with hw timer\n");
atmel_port->is_usart = true; atmel_port->has_hw_timer = true;
} else if (name == uart) { } else if (name == dbgu_uart) {
dev_dbg(port->dev, "This is uart\n"); dev_dbg(port->dev, "Dbgu or uart without hw timer\n");
atmel_port->is_usart = false; atmel_port->has_hw_timer = false;
} else { } else {
/* fallback for older SoCs: use version field */ /* fallback for older SoCs: use version field */
version = atmel_uart_readl(port, ATMEL_US_VERSION); version = atmel_uart_readl(port, ATMEL_US_VERSION);
@ -1730,12 +1730,12 @@ static void atmel_get_ip_name(struct uart_port *port)
case 0x302: case 0x302:
case 0x10213: case 0x10213:
dev_dbg(port->dev, "This version is usart\n"); dev_dbg(port->dev, "This version is usart\n");
atmel_port->is_usart = true; atmel_port->has_hw_timer = true;
break; break;
case 0x203: case 0x203:
case 0x10202: case 0x10202:
dev_dbg(port->dev, "This version is uart\n"); dev_dbg(port->dev, "This version is uart\n");
atmel_port->is_usart = false; atmel_port->has_hw_timer = false;
break; break;
default: default:
dev_err(port->dev, "Not supported ip name nor version, set to uart\n"); dev_err(port->dev, "Not supported ip name nor version, set to uart\n");
@ -1835,7 +1835,7 @@ static int atmel_startup(struct uart_port *port)
if (atmel_use_pdc_rx(port)) { if (atmel_use_pdc_rx(port)) {
/* set UART timeout */ /* set UART timeout */
if (!atmel_port->is_usart) { if (!atmel_port->has_hw_timer) {
mod_timer(&atmel_port->uart_timer, mod_timer(&atmel_port->uart_timer,
jiffies + uart_poll_timeout(port)); jiffies + uart_poll_timeout(port));
/* set USART timeout */ /* set USART timeout */
@ -1850,7 +1850,7 @@ static int atmel_startup(struct uart_port *port)
atmel_uart_writel(port, ATMEL_PDC_PTCR, ATMEL_PDC_RXTEN); atmel_uart_writel(port, ATMEL_PDC_PTCR, ATMEL_PDC_RXTEN);
} else if (atmel_use_dma_rx(port)) { } else if (atmel_use_dma_rx(port)) {
/* set UART timeout */ /* set UART timeout */
if (!atmel_port->is_usart) { if (!atmel_port->has_hw_timer) {
mod_timer(&atmel_port->uart_timer, mod_timer(&atmel_port->uart_timer,
jiffies + uart_poll_timeout(port)); jiffies + uart_poll_timeout(port));
/* set USART timeout */ /* set USART timeout */