unsigned long flags;
        u32 ucr1;
 
-       spin_lock_irqsave(&sport->port.lock, flags);
+       uart_port_lock_irqsave(&sport->port, &flags);
 
        dma_unmap_sg(sport->port.dev, sgl, sport->dma_tx_nents, DMA_TO_DEVICE);
 
                imx_uart_writel(sport, ucr4, UCR4);
        }
 
-       spin_unlock_irqrestore(&sport->port.lock, flags);
+       uart_port_unlock_irqrestore(&sport->port, flags);
 }
 
 /* called with port.lock taken and irqs off */
        struct imx_port *sport = dev_id;
        irqreturn_t ret;
 
-       spin_lock(&sport->port.lock);
+       uart_port_lock(&sport->port);
 
        ret = __imx_uart_rtsint(irq, dev_id);
 
-       spin_unlock(&sport->port.lock);
+       uart_port_unlock(&sport->port);
 
        return ret;
 }
 {
        struct imx_port *sport = dev_id;
 
-       spin_lock(&sport->port.lock);
+       uart_port_lock(&sport->port);
        imx_uart_transmit_buffer(sport);
-       spin_unlock(&sport->port.lock);
+       uart_port_unlock(&sport->port);
        return IRQ_HANDLED;
 }
 
        struct imx_port *sport = dev_id;
        irqreturn_t ret;
 
-       spin_lock(&sport->port.lock);
+       uart_port_lock(&sport->port);
 
        ret = __imx_uart_rxint(irq, dev_id);
 
-       spin_unlock(&sport->port.lock);
+       uart_port_unlock(&sport->port);
 
        return ret;
 }
        unsigned int usr1, usr2, ucr1, ucr2, ucr3, ucr4;
        irqreturn_t ret = IRQ_NONE;
 
-       spin_lock(&sport->port.lock);
+       uart_port_lock(&sport->port);
 
        usr1 = imx_uart_readl(sport, USR1);
        usr2 = imx_uart_readl(sport, USR2);
                ret = IRQ_HANDLED;
        }
 
-       spin_unlock(&sport->port.lock);
+       uart_port_unlock(&sport->port);
 
        return ret;
 }
        unsigned long flags;
        u32 ucr1;
 
-       spin_lock_irqsave(&sport->port.lock, flags);
+       uart_port_lock_irqsave(&sport->port, &flags);
 
        ucr1 = imx_uart_readl(sport, UCR1) & ~UCR1_SNDBRK;
 
 
        imx_uart_writel(sport, ucr1, UCR1);
 
-       spin_unlock_irqrestore(&sport->port.lock, flags);
+       uart_port_unlock_irqrestore(&sport->port, flags);
 }
 
 /*
        unsigned long flags;
 
        if (sport->port.state) {
-               spin_lock_irqsave(&sport->port.lock, flags);
+               uart_port_lock_irqsave(&sport->port, &flags);
                imx_uart_mctrl_check(sport);
-               spin_unlock_irqrestore(&sport->port.lock, flags);
+               uart_port_unlock_irqrestore(&sport->port, flags);
 
                mod_timer(&sport->timer, jiffies + MCTRL_TIMEOUT);
        }
        status = dmaengine_tx_status(chan, sport->rx_cookie, &state);
 
        if (status == DMA_ERROR) {
-               spin_lock(&sport->port.lock);
+               uart_port_lock(&sport->port);
                imx_uart_clear_rx_errors(sport);
-               spin_unlock(&sport->port.lock);
+               uart_port_unlock(&sport->port);
                return;
        }
 
                r_bytes = rx_ring->head - rx_ring->tail;
 
                /* If we received something, check for 0xff flood */
-               spin_lock(&sport->port.lock);
+               uart_port_lock(&sport->port);
                imx_uart_check_flood(sport, imx_uart_readl(sport, USR2));
-               spin_unlock(&sport->port.lock);
+               uart_port_unlock(&sport->port);
 
                if (!(sport->port.ignore_status_mask & URXD_DUMMY_READ)) {
 
        if (!uart_console(port) && imx_uart_dma_init(sport) == 0)
                dma_is_inited = 1;
 
-       spin_lock_irqsave(&sport->port.lock, flags);
+       uart_port_lock_irqsave(&sport->port, &flags);
 
        /* Reset fifo's and state machines */
        imx_uart_soft_reset(sport);
 
        imx_uart_disable_loopback_rs485(sport);
 
-       spin_unlock_irqrestore(&sport->port.lock, flags);
+       uart_port_unlock_irqrestore(&sport->port, flags);
 
        return 0;
 }
                        sport->dma_is_rxing = 0;
                }
 
-               spin_lock_irqsave(&sport->port.lock, flags);
+               uart_port_lock_irqsave(&sport->port, &flags);
                imx_uart_stop_tx(port);
                imx_uart_stop_rx(port);
                imx_uart_disable_dma(sport);
-               spin_unlock_irqrestore(&sport->port.lock, flags);
+               uart_port_unlock_irqrestore(&sport->port, flags);
                imx_uart_dma_exit(sport);
        }
 
        mctrl_gpio_disable_ms(sport->gpios);
 
-       spin_lock_irqsave(&sport->port.lock, flags);
+       uart_port_lock_irqsave(&sport->port, &flags);
        ucr2 = imx_uart_readl(sport, UCR2);
        ucr2 &= ~(UCR2_TXEN | UCR2_ATEN);
        imx_uart_writel(sport, ucr2, UCR2);
-       spin_unlock_irqrestore(&sport->port.lock, flags);
+       uart_port_unlock_irqrestore(&sport->port, flags);
 
        /*
         * Stop our timer.
         * Disable all interrupts, port and break condition.
         */
 
-       spin_lock_irqsave(&sport->port.lock, flags);
+       uart_port_lock_irqsave(&sport->port, &flags);
 
        ucr1 = imx_uart_readl(sport, UCR1);
        ucr1 &= ~(UCR1_TRDYEN | UCR1_RRDYEN | UCR1_RTSDEN | UCR1_RXDMAEN |
        ucr4 &= ~UCR4_TCEN;
        imx_uart_writel(sport, ucr4, UCR4);
 
-       spin_unlock_irqrestore(&sport->port.lock, flags);
+       uart_port_unlock_irqrestore(&sport->port, flags);
 
        clk_disable_unprepare(sport->clk_per);
        clk_disable_unprepare(sport->clk_ipg);
        baud = uart_get_baud_rate(port, termios, old, 50, port->uartclk / 16);
        quot = uart_get_divisor(port, baud);
 
-       spin_lock_irqsave(&sport->port.lock, flags);
+       uart_port_lock_irqsave(&sport->port, &flags);
 
        /*
         * Read current UCR2 and save it for future use, then clear all the bits
        if (UART_ENABLE_MS(&sport->port, termios->c_cflag))
                imx_uart_enable_ms(&sport->port);
 
-       spin_unlock_irqrestore(&sport->port.lock, flags);
+       uart_port_unlock_irqrestore(&sport->port, flags);
 }
 
 static const char *imx_uart_type(struct uart_port *port)
 
        imx_uart_setup_ufcr(sport, TXTL_DEFAULT, RXTL_DEFAULT);
 
-       spin_lock_irqsave(&sport->port.lock, flags);
+       uart_port_lock_irqsave(&sport->port, &flags);
 
        /*
         * Be careful about the order of enabling bits here. First enable the
        imx_uart_writel(sport, ucr1 | UCR1_RRDYEN, UCR1);
        imx_uart_writel(sport, ucr2 | UCR2_ATEN, UCR2);
 
-       spin_unlock_irqrestore(&sport->port.lock, flags);
+       uart_port_unlock_irqrestore(&sport->port, flags);
 
        return 0;
 }
        if (sport->port.sysrq)
                locked = 0;
        else if (oops_in_progress)
-               locked = spin_trylock_irqsave(&sport->port.lock, flags);
+               locked = uart_port_trylock_irqsave(&sport->port, &flags);
        else
-               spin_lock_irqsave(&sport->port.lock, flags);
+               uart_port_lock_irqsave(&sport->port, &flags);
 
        /*
         *      First, save UCR1/2/3 and then disable interrupts
        imx_uart_ucrs_restore(sport, &old_ucr);
 
        if (locked)
-               spin_unlock_irqrestore(&sport->port.lock, flags);
+               uart_port_unlock_irqrestore(&sport->port, flags);
 }
 
 /*
        struct imx_port *sport = container_of(t, struct imx_port, trigger_start_tx);
        unsigned long flags;
 
-       spin_lock_irqsave(&sport->port.lock, flags);
+       uart_port_lock_irqsave(&sport->port, &flags);
        if (sport->tx_state == WAIT_AFTER_RTS)
                imx_uart_start_tx(&sport->port);
-       spin_unlock_irqrestore(&sport->port.lock, flags);
+       uart_port_unlock_irqrestore(&sport->port, flags);
 
        return HRTIMER_NORESTART;
 }
        struct imx_port *sport = container_of(t, struct imx_port, trigger_stop_tx);
        unsigned long flags;
 
-       spin_lock_irqsave(&sport->port.lock, flags);
+       uart_port_lock_irqsave(&sport->port, &flags);
        if (sport->tx_state == WAIT_AFTER_SEND)
                imx_uart_stop_tx(&sport->port);
-       spin_unlock_irqrestore(&sport->port.lock, flags);
+       uart_port_unlock_irqrestore(&sport->port, flags);
 
        return HRTIMER_NORESTART;
 }
 {
        unsigned long flags;
 
-       spin_lock_irqsave(&sport->port.lock, flags);
+       uart_port_lock_irqsave(&sport->port, &flags);
        if (!sport->context_saved) {
-               spin_unlock_irqrestore(&sport->port.lock, flags);
+               uart_port_unlock_irqrestore(&sport->port, flags);
                return;
        }
 
        imx_uart_writel(sport, sport->saved_reg[2], UCR3);
        imx_uart_writel(sport, sport->saved_reg[3], UCR4);
        sport->context_saved = false;
-       spin_unlock_irqrestore(&sport->port.lock, flags);
+       uart_port_unlock_irqrestore(&sport->port, flags);
 }
 
 static void imx_uart_save_context(struct imx_port *sport)
        unsigned long flags;
 
        /* Save necessary regs */
-       spin_lock_irqsave(&sport->port.lock, flags);
+       uart_port_lock_irqsave(&sport->port, &flags);
        sport->saved_reg[0] = imx_uart_readl(sport, UCR1);
        sport->saved_reg[1] = imx_uart_readl(sport, UCR2);
        sport->saved_reg[2] = imx_uart_readl(sport, UCR3);
        sport->saved_reg[8] = imx_uart_readl(sport, UBMR);
        sport->saved_reg[9] = imx_uart_readl(sport, IMX21_UTS);
        sport->context_saved = true;
-       spin_unlock_irqrestore(&sport->port.lock, flags);
+       uart_port_unlock_irqrestore(&sport->port, flags);
 }
 
 static void imx_uart_enable_wakeup(struct imx_port *sport, bool on)