* so we limit the workaround only to non-DMA mode.
         */
        if (!up->dma && rx_timeout) {
-               spin_lock_irqsave(&p->lock, flags);
+               uart_port_lock_irqsave(p, &flags);
                status = serial_lsr_in(up);
 
                if (!(status & (UART_LSR_DR | UART_LSR_BI)))
                        (void) p->serial_in(p, UART_RX);
 
-               spin_unlock_irqrestore(&p->lock, flags);
+               uart_port_unlock_irqrestore(p, flags);
        }
 
        /* Manually stop the Rx DMA transfer when acting as flow controller */
        if (quirks & DW_UART_QUIRK_IS_DMA_FC && up->dma && up->dma->rx_running && rx_timeout) {
-               spin_lock_irqsave(&p->lock, flags);
+               uart_port_lock_irqsave(p, &flags);
                status = serial_lsr_in(up);
-               spin_unlock_irqrestore(&p->lock, flags);
+               uart_port_unlock_irqrestore(p, flags);
 
                if (status & (UART_LSR_DR | UART_LSR_BI)) {
                        dw8250_writel_ext(p, RZN1_UART_RDMACR, 0);