unsigned char r3;
                bool push = false;
 
-               spin_lock(&up->port.lock);
+               uart_port_lock(&up->port);
                r3 = read_zsreg(channel, R3);
 
                /* Channel A */
                        if (r3 & CHATxIP)
                                ip22zilog_transmit_chars(up, channel);
                }
-               spin_unlock(&up->port.lock);
+               uart_port_unlock(&up->port);
 
                if (push)
                        tty_flip_buffer_push(&up->port.state->port);
                channel = ZILOG_CHANNEL_FROM_PORT(&up->port);
                push = false;
 
-               spin_lock(&up->port.lock);
+               uart_port_lock(&up->port);
                if (r3 & (CHBEXT | CHBTxIP | CHBRxIP)) {
                        writeb(RES_H_IUS, &channel->control);
                        ZSDELAY();
                        if (r3 & CHBTxIP)
                                ip22zilog_transmit_chars(up, channel);
                }
-               spin_unlock(&up->port.lock);
+               uart_port_unlock(&up->port);
 
                if (push)
                        tty_flip_buffer_push(&up->port.state->port);
        unsigned char status;
        unsigned int ret;
 
-       spin_lock_irqsave(&port->lock, flags);
+       uart_port_lock_irqsave(port, &flags);
 
        status = ip22zilog_read_channel_status(port);
 
-       spin_unlock_irqrestore(&port->lock, flags);
+       uart_port_unlock_irqrestore(port, flags);
 
        if (status & Tx_BUF_EMP)
                ret = TIOCSER_TEMT;
        else
                clear_bits |= SND_BRK;
 
-       spin_lock_irqsave(&port->lock, flags);
+       uart_port_lock_irqsave(port, &flags);
 
        new_reg = (up->curregs[R5] | set_bits) & ~clear_bits;
        if (new_reg != up->curregs[R5]) {
                write_zsreg(channel, R5, up->curregs[R5]);
        }
 
-       spin_unlock_irqrestore(&port->lock, flags);
+       uart_port_unlock_irqrestore(port, flags);
 }
 
 static void __ip22zilog_reset(struct uart_ip22zilog_port *up)
        if (ZS_IS_CONS(up))
                return 0;
 
-       spin_lock_irqsave(&port->lock, flags);
+       uart_port_lock_irqsave(port, &flags);
        __ip22zilog_startup(up);
-       spin_unlock_irqrestore(&port->lock, flags);
+       uart_port_unlock_irqrestore(port, flags);
        return 0;
 }
 
        if (ZS_IS_CONS(up))
                return;
 
-       spin_lock_irqsave(&port->lock, flags);
+       uart_port_lock_irqsave(port, &flags);
 
        channel = ZILOG_CHANNEL_FROM_PORT(port);
 
        up->curregs[R5] &= ~SND_BRK;
        ip22zilog_maybe_update_regs(up, channel);
 
-       spin_unlock_irqrestore(&port->lock, flags);
+       uart_port_unlock_irqrestore(port, flags);
 }
 
 /* Shared by TTY driver and serial console setup.  The port lock is held
 
        baud = uart_get_baud_rate(port, termios, old, 1200, 76800);
 
-       spin_lock_irqsave(&up->port.lock, flags);
+       uart_port_lock_irqsave(&up->port, &flags);
 
        brg = BPS_TO_BRG(baud, ZS_CLOCK / ZS_CLOCK_DIVISOR);
 
        ip22zilog_maybe_update_regs(up, ZILOG_CHANNEL_FROM_PORT(port));
        uart_update_timeout(port, termios->c_cflag, baud);
 
-       spin_unlock_irqrestore(&up->port.lock, flags);
+       uart_port_unlock_irqrestore(&up->port, flags);
 }
 
 static const char *ip22zilog_type(struct uart_port *port)
        struct uart_ip22zilog_port *up = &ip22zilog_port_table[con->index];
        unsigned long flags;
 
-       spin_lock_irqsave(&up->port.lock, flags);
+       uart_port_lock_irqsave(&up->port, &flags);
        uart_console_write(&up->port, s, count, ip22zilog_put_char);
        udelay(2);
-       spin_unlock_irqrestore(&up->port.lock, flags);
+       uart_port_unlock_irqrestore(&up->port, flags);
 }
 
 static int __init ip22zilog_console_setup(struct console *con, char *options)
 
        printk(KERN_INFO "Console: ttyS%d (IP22-Zilog)\n", con->index);
 
-       spin_lock_irqsave(&up->port.lock, flags);
+       uart_port_lock_irqsave(&up->port, &flags);
 
        up->curregs[R15] |= BRKIE;
 
        __ip22zilog_startup(up);
 
-       spin_unlock_irqrestore(&up->port.lock, flags);
+       uart_port_unlock_irqrestore(&up->port, flags);
 
        if (options)
                uart_parse_options(options, &baud, &parity, &bits, &flow);