static void uart_change_speed(struct tty_struct *tty, struct uart_state *state,
                                        struct ktermios *old_termios);
 static void uart_wait_until_sent(struct tty_struct *tty, int timeout);
-static void uart_change_pm(struct uart_state *state, int pm_state);
+static void uart_change_pm(struct uart_state *state,
+                          enum uart_pm_state pm_state);
 
 static void uart_port_shutdown(struct tty_port *port);
 
                spin_lock_irqsave(&port->lock, flags);
        } else if (!uart_console(uport)) {
                spin_unlock_irqrestore(&port->lock, flags);
-               uart_change_pm(state, 3);
+               uart_change_pm(state, UART_PM_STATE_OFF);
                spin_lock_irqsave(&port->lock, flags);
        }
 
         * Make sure the device is in D0 state.
         */
        if (port->count == 1)
-               uart_change_pm(state, 0);
+               uart_change_pm(state, UART_PM_STATE_ON);
 
        /*
         * Start up the serial port.
 {
        struct uart_state *state = drv->state + i;
        struct tty_port *port = &state->port;
-       int pm_state;
+       enum uart_pm_state pm_state;
        struct uart_port *uport = state->uart_port;
        char stat_buf[32];
        unsigned int status;
        if (capable(CAP_SYS_ADMIN)) {
                mutex_lock(&port->mutex);
                pm_state = state->pm_state;
-               if (pm_state)
-                       uart_change_pm(state, 0);
+               if (pm_state != UART_PM_STATE_ON)
+                       uart_change_pm(state, UART_PM_STATE_ON);
                spin_lock_irq(&uport->lock);
                status = uport->ops->get_mctrl(uport);
                spin_unlock_irq(&uport->lock);
-               if (pm_state)
+               if (pm_state != UART_PM_STATE_ON)
                        uart_change_pm(state, pm_state);
                mutex_unlock(&port->mutex);
 
  *
  * Locking: port->mutex has to be held
  */
-static void uart_change_pm(struct uart_state *state, int pm_state)
+static void uart_change_pm(struct uart_state *state,
+                          enum uart_pm_state pm_state)
 {
        struct uart_port *port = state->uart_port;
 
                console_stop(uport->cons);
 
        if (console_suspend_enabled || !uart_console(uport))
-               uart_change_pm(state, 3);
+               uart_change_pm(state, UART_PM_STATE_OFF);
 
        mutex_unlock(&port->mutex);
 
                        termios = port->tty->termios;
 
                if (console_suspend_enabled)
-                       uart_change_pm(state, 0);
+                       uart_change_pm(state, UART_PM_STATE_ON);
                uport->ops->set_termios(uport, &termios, NULL);
                if (console_suspend_enabled)
                        console_start(uport->cons);
                const struct uart_ops *ops = uport->ops;
                int ret;
 
-               uart_change_pm(state, 0);
+               uart_change_pm(state, UART_PM_STATE_ON);
                spin_lock_irq(&uport->lock);
                ops->set_mctrl(uport, 0);
                spin_unlock_irq(&uport->lock);
                uart_report_port(drv, port);
 
                /* Power up port for set_mctrl() */
-               uart_change_pm(state, 0);
+               uart_change_pm(state, UART_PM_STATE_ON);
 
                /*
                 * Ensure that the modem control lines are de-activated.
                 * console if we have one.
                 */
                if (!uart_console(port))
-                       uart_change_pm(state, 3);
+                       uart_change_pm(state, UART_PM_STATE_OFF);
        }
 }
 
        }
 
        state->uart_port = uport;
-       state->pm_state = -1;
+       state->pm_state = UART_PM_STATE_UNDEFINED;
 
        uport->cons = drv->cons;
        uport->state = state;