All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 1/2] pch_uart: Fix rx error interrupt setting issue
@ 2012-07-06  8:19 Tomoya MORINAGA
  2012-07-06  8:19 ` [PATCH 2/2] pch_uart: Fix parity " Tomoya MORINAGA
  0 siblings, 1 reply; 3+ messages in thread
From: Tomoya MORINAGA @ 2012-07-06  8:19 UTC (permalink / raw)
  To: Alan Cox, Greg Kroah-Hartman, linux-serial, linux-kernel; +Cc: Tomoya MORINAGA

Rx Error interrupt(E.G. parity error) is not enabled.
So, when parity error occurs, error interrupt is not occurred.
As a result, the received data is not dropped.

This patch adds enable/disable rx error interrupt code.

Signed-off-by: Tomoya MORINAGA <tomoya.rohm@gmail.com>
---
 drivers/tty/serial/pch_uart.c |   18 ++++++++++++------
 1 files changed, 12 insertions(+), 6 deletions(-)

diff --git a/drivers/tty/serial/pch_uart.c b/drivers/tty/serial/pch_uart.c
index 4fdec6a..4d84ad0 100644
--- a/drivers/tty/serial/pch_uart.c
+++ b/drivers/tty/serial/pch_uart.c
@@ -754,7 +754,8 @@ static void pch_dma_rx_complete(void *arg)
 		tty_flip_buffer_push(tty);
 	tty_kref_put(tty);
 	async_tx_ack(priv->desc_rx);
-	pch_uart_hal_enable_interrupt(priv, PCH_UART_HAL_RX_INT);
+	pch_uart_hal_enable_interrupt(priv, PCH_UART_HAL_RX_INT |
+					    PCH_UART_HAL_RX_ERR_INT);
 }
 
 static void pch_dma_tx_complete(void *arg)
@@ -809,7 +810,8 @@ static int handle_rx_to(struct eg20t_port *priv)
 	int rx_size;
 	int ret;
 	if (!priv->start_rx) {
-		pch_uart_hal_disable_interrupt(priv, PCH_UART_HAL_RX_INT);
+		pch_uart_hal_disable_interrupt(priv, PCH_UART_HAL_RX_INT |
+						     PCH_UART_HAL_RX_ERR_INT);
 		return 0;
 	}
 	buf = &priv->rxbuf;
@@ -1078,11 +1080,13 @@ static irqreturn_t pch_uart_interrupt(int irq, void *dev_id)
 		case PCH_UART_IID_RDR:	/* Received Data Ready */
 			if (priv->use_dma) {
 				pch_uart_hal_disable_interrupt(priv,
-							PCH_UART_HAL_RX_INT);
+						PCH_UART_HAL_RX_INT |
+						PCH_UART_HAL_RX_ERR_INT);
 				ret = dma_handle_rx(priv);
 				if (!ret)
 					pch_uart_hal_enable_interrupt(priv,
-							PCH_UART_HAL_RX_INT);
+						PCH_UART_HAL_RX_INT |
+						PCH_UART_HAL_RX_ERR_INT);
 			} else {
 				ret = handle_rx(priv);
 			}
@@ -1208,7 +1212,8 @@ static void pch_uart_stop_rx(struct uart_port *port)
 	struct eg20t_port *priv;
 	priv = container_of(port, struct eg20t_port, port);
 	priv->start_rx = 0;
-	pch_uart_hal_disable_interrupt(priv, PCH_UART_HAL_RX_INT);
+	pch_uart_hal_disable_interrupt(priv, PCH_UART_HAL_RX_INT |
+					     PCH_UART_HAL_RX_ERR_INT);
 }
 
 /* Enable the modem status interrupts. */
@@ -1300,7 +1305,8 @@ static int pch_uart_startup(struct uart_port *port)
 		pch_request_dma(port);
 
 	priv->start_rx = 1;
-	pch_uart_hal_enable_interrupt(priv, PCH_UART_HAL_RX_INT);
+	pch_uart_hal_enable_interrupt(priv, PCH_UART_HAL_RX_INT |
+					    PCH_UART_HAL_RX_ERR_INT);
 	uart_update_timeout(port, CS8, default_baud);
 
 	return 0;
-- 
1.7.4.4


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* [PATCH 2/2] pch_uart: Fix parity setting issue
  2012-07-06  8:19 [PATCH 1/2] pch_uart: Fix rx error interrupt setting issue Tomoya MORINAGA
@ 2012-07-06  8:19 ` Tomoya MORINAGA
  2012-07-06 10:22   ` Alan Cox
  0 siblings, 1 reply; 3+ messages in thread
From: Tomoya MORINAGA @ 2012-07-06  8:19 UTC (permalink / raw)
  To: Alan Cox, Greg Kroah-Hartman, linux-serial, linux-kernel; +Cc: Tomoya MORINAGA

Parity Setting value is reverse.
E.G. In case of setting ODD parity, EVEN value is set.
This patch inverts "if" condition.

Signed-off-by: Tomoya MORINAGA <tomoya.rohm@gmail.com>
---
 drivers/tty/serial/pch_uart.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/drivers/tty/serial/pch_uart.c b/drivers/tty/serial/pch_uart.c
index 4d84ad0..2911866 100644
--- a/drivers/tty/serial/pch_uart.c
+++ b/drivers/tty/serial/pch_uart.c
@@ -1364,7 +1364,7 @@ static void pch_uart_set_termios(struct uart_port *port,
 		stb = PCH_UART_HAL_STB1;
 
 	if (termios->c_cflag & PARENB) {
-		if (!(termios->c_cflag & PARODD))
+		if (termios->c_cflag & PARODD)
 			parity = PCH_UART_HAL_PARITY_ODD;
 		else
 			parity = PCH_UART_HAL_PARITY_EVEN;
-- 
1.7.4.4


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PATCH 2/2] pch_uart: Fix parity setting issue
  2012-07-06  8:19 ` [PATCH 2/2] pch_uart: Fix parity " Tomoya MORINAGA
@ 2012-07-06 10:22   ` Alan Cox
  0 siblings, 0 replies; 3+ messages in thread
From: Alan Cox @ 2012-07-06 10:22 UTC (permalink / raw)
  To: Tomoya MORINAGA; +Cc: Alan Cox, Greg Kroah-Hartman, linux-serial, linux-kernel

On Fri,  6 Jul 2012 17:19:43 +0900
Tomoya MORINAGA <tomoya.rohm@gmail.com> wrote:

> Parity Setting value is reverse.
> E.G. In case of setting ODD parity, EVEN value is set.
> This patch inverts "if" condition.
> 
> Signed-off-by: Tomoya MORINAGA <tomoya.rohm@gmail.com>

Acked-by: Alan Cox <alan@linux.intel.com>

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2012-07-06 10:19 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-07-06  8:19 [PATCH 1/2] pch_uart: Fix rx error interrupt setting issue Tomoya MORINAGA
2012-07-06  8:19 ` [PATCH 2/2] pch_uart: Fix parity " Tomoya MORINAGA
2012-07-06 10:22   ` Alan Cox

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.