|
@@ -382,12 +382,13 @@ static void imx_start_tx(struct uart_port *port)
|
|
|
static irqreturn_t imx_rtsint(int irq, void *dev_id)
|
|
|
{
|
|
|
struct imx_port *sport = dev_id;
|
|
|
- unsigned int val = readl(sport->port.membase + USR1) & USR1_RTSS;
|
|
|
+ unsigned int val;
|
|
|
unsigned long flags;
|
|
|
|
|
|
spin_lock_irqsave(&sport->port.lock, flags);
|
|
|
|
|
|
writel(USR1_RTSD, sport->port.membase + USR1);
|
|
|
+ val = readl(sport->port.membase + USR1) & USR1_RTSS;
|
|
|
uart_handle_cts_change(&sport->port, !!val);
|
|
|
wake_up_interruptible(&sport->port.state->port.delta_msr_wait);
|
|
|
|