|
@@ -757,7 +757,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)
|
|
@@ -812,7 +813,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;
|
|
@@ -1081,11 +1083,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);
|
|
|
}
|
|
@@ -1211,7 +1215,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. */
|
|
@@ -1304,7 +1309,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;
|