]> git.ipfire.org Git - thirdparty/linux.git/blobdiff - drivers/tty/serial/mxs-auart.c
Merge tag 'tty-6.9-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty
[thirdparty/linux.git] / drivers / tty / serial / mxs-auart.c
index 4749331fe618cad7c0af98630f90021b8244bd07..1e8853eae5042b3eb16a1ec191d6ae2970ae30dd 100644 (file)
@@ -1086,11 +1086,13 @@ static void mxs_auart_set_ldisc(struct uart_port *port,
 
 static irqreturn_t mxs_auart_irq_handle(int irq, void *context)
 {
-       u32 istat;
+       u32 istat, stat;
        struct mxs_auart_port *s = context;
        u32 mctrl_temp = s->mctrl_prev;
-       u32 stat = mxs_read(s, REG_STAT);
 
+       uart_port_lock(&s->port);
+
+       stat = mxs_read(s, REG_STAT);
        istat = mxs_read(s, REG_INTR);
 
        /* ack irq */
@@ -1126,6 +1128,8 @@ static irqreturn_t mxs_auart_irq_handle(int irq, void *context)
                istat &= ~AUART_INTR_TXIS;
        }
 
+       uart_port_unlock(&s->port);
+
        return IRQ_HANDLED;
 }