|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH] xen: char: Remove unnecessary (uart->irq > 0) check
While working on MVEBU uart driver, Julien pointed out that (uart->irq > 0)
check is unnecessary during irq set up.if ever there is an invalid irq, driver
initialization itself would be bailed out from platform_get_irq.
This patch would remove similar check for other uart drivers present in XEN.
Signed-off-by: Amit Singh Tomar <amittomer25@xxxxxxxxx>
---
* This patch is only compiled tested.
---
xen/drivers/char/cadence-uart.c | 15 ++++++++-------
xen/drivers/char/ns16550.c | 35 ++++++++++++++---------------------
xen/drivers/char/omap-uart.c | 2 +-
xen/drivers/char/pl011.c | 13 +++++++------
4 files changed, 30 insertions(+), 35 deletions(-)
diff --git a/xen/drivers/char/cadence-uart.c b/xen/drivers/char/cadence-uart.c
index 22905ba..1575787 100644
--- a/xen/drivers/char/cadence-uart.c
+++ b/xen/drivers/char/cadence-uart.c
@@ -72,13 +72,14 @@ static void __init cuart_init_postirq(struct serial_port
*port)
struct cuart *uart = port->uart;
int rc;
- if ( uart->irq > 0 )
+ uart->irqaction.handler = cuart_interrupt;
+ uart->irqaction.name = "cadence-uart";
+ uart->irqaction.dev_id = port;
+
+ if ( (rc = setup_irq(uart->irq, 0, &uart->irqaction)) != 0 )
{
- uart->irqaction.handler = cuart_interrupt;
- uart->irqaction.name = "cadence-uart";
- uart->irqaction.dev_id = port;
- if ( (rc = setup_irq(uart->irq, 0, &uart->irqaction)) != 0 )
- printk("ERROR: Failed to allocate cadence-uart IRQ %d\n",
uart->irq);
+ printk("ERROR: Failed to allocate cadence-uart IRQ %d\n", uart->irq);
+ return;
}
/* Clear pending error interrupts */
@@ -130,7 +131,7 @@ static int __init cuart_irq(struct serial_port *port)
{
struct cuart *uart = port->uart;
- return ( (uart->irq > 0) ? uart->irq : -1 );
+ return uart->irq;
}
static const struct vuart_info *cuart_vuart(struct serial_port *port)
diff --git a/xen/drivers/char/ns16550.c b/xen/drivers/char/ns16550.c
index f32dbd3..ba50a1e 100644
--- a/xen/drivers/char/ns16550.c
+++ b/xen/drivers/char/ns16550.c
@@ -714,18 +714,12 @@ static void __init ns16550_init_preirq(struct serial_port
*port)
static void ns16550_setup_postirq(struct ns16550 *uart)
{
- if ( uart->irq > 0 )
- {
- /* Master interrupt enable; also keep DTR/RTS asserted. */
- ns_write_reg(uart,
- UART_MCR, UART_MCR_OUT2 | UART_MCR_DTR | UART_MCR_RTS);
-
- /* Enable receive interrupts. */
- ns_write_reg(uart, UART_IER, UART_IER_ERDAI);
- }
+ /* Master interrupt enable; also keep DTR/RTS asserted. */
+ ns_write_reg(uart, UART_MCR, UART_MCR_OUT2 | UART_MCR_DTR | UART_MCR_RTS);
+ /* Enable receive interrupts. */
+ ns_write_reg(uart, UART_IER, UART_IER_ERDAI);
- if ( uart->irq >= 0 )
- set_timer(&uart->timer, NOW() + MILLISECS(uart->timeout_ms));
+ set_timer(&uart->timer, NOW() + MILLISECS(uart->timeout_ms));
}
static void __init ns16550_init_postirq(struct serial_port *port)
@@ -733,9 +727,6 @@ static void __init ns16550_init_postirq(struct serial_port
*port)
struct ns16550 *uart = port->uart;
int rc, bits;
- if ( uart->irq < 0 )
- return;
-
serial_async_transmit(port);
init_timer(&uart->timer, ns16550_poll, port, 0);
@@ -746,13 +737,14 @@ static void __init ns16550_init_postirq(struct
serial_port *port)
uart->timeout_ms = max_t(
unsigned int, 1, (bits * uart->fifo_size * 1000) / uart->baud);
- if ( uart->irq > 0 )
+ uart->irqaction.handler = ns16550_interrupt;
+ uart->irqaction.name = "ns16550";
+ uart->irqaction.dev_id = port;
+
+ if ( (rc = setup_irq(uart->irq, 0, &uart->irqaction)) != 0 )
{
- uart->irqaction.handler = ns16550_interrupt;
- uart->irqaction.name = "ns16550";
- uart->irqaction.dev_id = port;
- if ( (rc = setup_irq(uart->irq, 0, &uart->irqaction)) != 0 )
- printk("ERROR: Failed to allocate ns16550 IRQ %d\n", uart->irq);
+ printk("ERROR: Failed to allocate ns16550 IRQ %d\n", uart->irq);
+ return;
}
ns16550_setup_postirq(uart);
@@ -874,7 +866,8 @@ static void __init ns16550_endboot(struct serial_port *port)
static int __init ns16550_irq(struct serial_port *port)
{
struct ns16550 *uart = port->uart;
- return ((uart->irq > 0) ? uart->irq : -1);
+
+ return uart->irq;
}
static void ns16550_start_tx(struct serial_port *port)
diff --git a/xen/drivers/char/omap-uart.c b/xen/drivers/char/omap-uart.c
index d6a5d59..2ce4e71 100644
--- a/xen/drivers/char/omap-uart.c
+++ b/xen/drivers/char/omap-uart.c
@@ -294,7 +294,7 @@ static int __init omap_uart_irq(struct serial_port *port)
{
struct omap_uart *uart = port->uart;
- return ((uart->irq > 0) ? uart->irq : -1);
+ return uart->irq;
}
static const struct vuart_info *omap_vuart_info(struct serial_port *port)
diff --git a/xen/drivers/char/pl011.c b/xen/drivers/char/pl011.c
index be67242..e007918 100644
--- a/xen/drivers/char/pl011.c
+++ b/xen/drivers/char/pl011.c
@@ -128,13 +128,14 @@ static void __init pl011_init_postirq(struct serial_port
*port)
struct pl011 *uart = port->uart;
int rc;
- if ( uart->irq > 0 )
+ uart->irqaction.handler = pl011_interrupt;
+ uart->irqaction.name = "pl011";
+ uart->irqaction.dev_id = port;
+
+ if ( (rc = setup_irq(uart->irq, 0, &uart->irqaction)) != 0 )
{
- uart->irqaction.handler = pl011_interrupt;
- uart->irqaction.name = "pl011";
- uart->irqaction.dev_id = port;
- if ( (rc = setup_irq(uart->irq, 0, &uart->irqaction)) != 0 )
- printk("ERROR: Failed to allocate pl011 IRQ %d\n", uart->irq);
+ printk("ERROR: Failed to allocate pl011 IRQ %d\n", uart->irq);
+ return;
}
/* Clear pending error interrupts */
--
1.9.1
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/mailman/listinfo/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |