unsigned int ret;
        u32 val;
 
-       spin_lock_irqsave(&port->lock, flags);
+       uart_port_lock_irqsave(port, &flags);
 
        val = rda_uart_read(port, RDA_UART_STATUS);
        ret = (val & RDA_UART_TX_FIFO_MASK) ? TIOCSER_TEMT : 0;
 
-       spin_unlock_irqrestore(&port->lock, flags);
+       uart_port_unlock_irqrestore(port, flags);
 
        return ret;
 }
        unsigned int baud;
        u32 irq_mask;
 
-       spin_lock_irqsave(&port->lock, flags);
+       uart_port_lock_irqsave(port, &flags);
 
        baud = uart_get_baud_rate(port, termios, old, 9600, port->uartclk / 4);
        rda_uart_change_baudrate(rda_port, baud);
        /* update the per-port timeout */
        uart_update_timeout(port, termios->c_cflag, baud);
 
-       spin_unlock_irqrestore(&port->lock, flags);
+       uart_port_unlock_irqrestore(port, flags);
 }
 
 static void rda_uart_send_chars(struct uart_port *port)
        unsigned long flags;
        u32 val, irq_mask;
 
-       spin_lock_irqsave(&port->lock, flags);
+       uart_port_lock_irqsave(port, &flags);
 
        /* Clear IRQ cause */
        val = rda_uart_read(port, RDA_UART_IRQ_CAUSE);
                rda_uart_send_chars(port);
        }
 
-       spin_unlock_irqrestore(&port->lock, flags);
+       uart_port_unlock_irqrestore(port, flags);
 
        return IRQ_HANDLED;
 }
        int ret;
        u32 val;
 
-       spin_lock_irqsave(&port->lock, flags);
+       uart_port_lock_irqsave(port, &flags);
        rda_uart_write(port, 0, RDA_UART_IRQ_MASK);
-       spin_unlock_irqrestore(&port->lock, flags);
+       uart_port_unlock_irqrestore(port, flags);
 
        ret = request_irq(port->irq, rda_interrupt, IRQF_NO_SUSPEND,
                          "rda-uart", port);
        if (ret)
                return ret;
 
-       spin_lock_irqsave(&port->lock, flags);
+       uart_port_lock_irqsave(port, &flags);
 
        val = rda_uart_read(port, RDA_UART_CTRL);
        val |= RDA_UART_ENABLE;
        val |= (RDA_UART_RX_DATA_AVAILABLE | RDA_UART_RX_TIMEOUT);
        rda_uart_write(port, val, RDA_UART_IRQ_MASK);
 
-       spin_unlock_irqrestore(&port->lock, flags);
+       uart_port_unlock_irqrestore(port, flags);
 
        return 0;
 }
        unsigned long flags;
        u32 val;
 
-       spin_lock_irqsave(&port->lock, flags);
+       uart_port_lock_irqsave(port, &flags);
 
        rda_uart_stop_tx(port);
        rda_uart_stop_rx(port);
        val &= ~RDA_UART_ENABLE;
        rda_uart_write(port, val, RDA_UART_CTRL);
 
-       spin_unlock_irqrestore(&port->lock, flags);
+       uart_port_unlock_irqrestore(port, flags);
 }
 
 static const char *rda_uart_type(struct uart_port *port)
                rda_uart_request_port(port);
        }
 
-       spin_lock_irqsave(&port->lock, irq_flags);
+       uart_port_lock_irqsave(port, &irq_flags);
 
        /* Clear mask, so no surprise interrupts. */
        rda_uart_write(port, 0, RDA_UART_IRQ_MASK);
        /* Clear status register */
        rda_uart_write(port, 0, RDA_UART_STATUS);
 
-       spin_unlock_irqrestore(&port->lock, irq_flags);
+       uart_port_unlock_irqrestore(port, irq_flags);
 }
 
 static void rda_uart_release_port(struct uart_port *port)
        if (port->sysrq) {
                locked = 0;
        } else if (oops_in_progress) {
-               locked = spin_trylock(&port->lock);
+               locked = uart_port_trylock(port);
        } else {
-               spin_lock(&port->lock);
+               uart_port_lock(port);
                locked = 1;
        }
 
        rda_uart_write(port, old_irq_mask, RDA_UART_IRQ_MASK);
 
        if (locked)
-               spin_unlock(&port->lock);
+               uart_port_unlock(port);
 
        local_irq_restore(flags);
 }