These changes are the raw update to linux-4.4.6-rt14. Kernel sources
[kvmfornfv.git] / kernel / drivers / staging / dgnc / dgnc_tty.c
index ce4187f..48e4b90 100644 (file)
 #include "dgnc_sysfs.h"
 #include "dgnc_utils.h"
 
-#define init_MUTEX(sem)         sema_init(sem, 1)
-#define DECLARE_MUTEX(name)     \
-       struct semaphore name = __SEMAPHORE_INITIALIZER(name, 1)
-
 /*
  * internal variables
  */
 static struct dgnc_board       *dgnc_BoardsByMajor[256];
 static unsigned char           *dgnc_TmpWriteBuf;
-static DECLARE_MUTEX(dgnc_TmpWriteSem);
 
 /*
  * Default transparent print information.
@@ -68,7 +63,6 @@ static struct digi_t dgnc_digi_init = {
        .digi_term =    "ansi"          /* default terminal type        */
 };
 
-
 /*
  * Define a local default termios struct. All ports will be created
  * with this termios initially.
@@ -85,14 +79,17 @@ static struct ktermios DgncDefaultTermios = {
        .c_line =       0,
 };
 
-
 /* Our function prototypes */
 static int dgnc_tty_open(struct tty_struct *tty, struct file *file);
 static void dgnc_tty_close(struct tty_struct *tty, struct file *file);
-static int dgnc_block_til_ready(struct tty_struct *tty, struct file *file, struct channel_t *ch);
-static int dgnc_tty_ioctl(struct tty_struct *tty, unsigned int cmd, unsigned long arg);
-static int dgnc_tty_digigeta(struct tty_struct *tty, struct digi_t __user *retinfo);
-static int dgnc_tty_digiseta(struct tty_struct *tty, struct digi_t __user *new_info);
+static int dgnc_block_til_ready(struct tty_struct *tty, struct file *file,
+                               struct channel_t *ch);
+static int dgnc_tty_ioctl(struct tty_struct *tty, unsigned int cmd,
+                         unsigned long arg);
+static int dgnc_tty_digigeta(struct tty_struct *tty,
+                            struct digi_t __user *retinfo);
+static int dgnc_tty_digiseta(struct tty_struct *tty,
+                            struct digi_t __user *new_info);
 static int dgnc_tty_write_room(struct tty_struct *tty);
 static int dgnc_tty_put_char(struct tty_struct *tty, unsigned char c);
 static int dgnc_tty_chars_in_buffer(struct tty_struct *tty);
@@ -103,17 +100,21 @@ static void dgnc_tty_unthrottle(struct tty_struct *tty);
 static void dgnc_tty_flush_chars(struct tty_struct *tty);
 static void dgnc_tty_flush_buffer(struct tty_struct *tty);
 static void dgnc_tty_hangup(struct tty_struct *tty);
-static int dgnc_set_modem_info(struct tty_struct *tty, unsigned int command, unsigned int __user *value);
-static int dgnc_get_modem_info(struct channel_t *ch, unsigned int __user *value);
+static int dgnc_set_modem_info(struct tty_struct *tty, unsigned int command,
+                              unsigned int __user *value);
+static int dgnc_get_modem_info(struct channel_t *ch,
+                              unsigned int __user *value);
 static int dgnc_tty_tiocmget(struct tty_struct *tty);
-static int dgnc_tty_tiocmset(struct tty_struct *tty, unsigned int set, unsigned int clear);
+static int dgnc_tty_tiocmset(struct tty_struct *tty, unsigned int set,
+                            unsigned int clear);
 static int dgnc_tty_send_break(struct tty_struct *tty, int msec);
 static void dgnc_tty_wait_until_sent(struct tty_struct *tty, int timeout);
-static int dgnc_tty_write(struct tty_struct *tty, const unsigned char *buf, int count);
-static void dgnc_tty_set_termios(struct tty_struct *tty, struct ktermios *old_termios);
+static int dgnc_tty_write(struct tty_struct *tty, const unsigned char *buf,
+                         int count);
+static void dgnc_tty_set_termios(struct tty_struct *tty,
+                                struct ktermios *old_termios);
 static void dgnc_tty_send_xchar(struct tty_struct *tty, char ch);
 
-
 static const struct tty_operations dgnc_tty_ops = {
        .open = dgnc_tty_open,
        .close = dgnc_tty_close,
@@ -168,7 +169,6 @@ int dgnc_tty_preinit(void)
        return 0;
 }
 
-
 /*
  * dgnc_tty_register()
  *
@@ -191,18 +191,24 @@ int dgnc_tty_register(struct dgnc_board *brd)
        brd->SerialDriver.subtype = SERIAL_TYPE_NORMAL;
        brd->SerialDriver.init_termios = DgncDefaultTermios;
        brd->SerialDriver.driver_name = DRVSTR;
-       brd->SerialDriver.flags = (TTY_DRIVER_REAL_RAW | TTY_DRIVER_DYNAMIC_DEV | TTY_DRIVER_HARDWARE_BREAK);
+       brd->SerialDriver.flags = (TTY_DRIVER_REAL_RAW |
+                                  TTY_DRIVER_DYNAMIC_DEV |
+                                  TTY_DRIVER_HARDWARE_BREAK);
 
        /*
         * The kernel wants space to store pointers to
         * tty_struct's and termios's.
         */
-       brd->SerialDriver.ttys = kcalloc(brd->maxports, sizeof(*brd->SerialDriver.ttys), GFP_KERNEL);
+       brd->SerialDriver.ttys = kcalloc(brd->maxports,
+                                        sizeof(*brd->SerialDriver.ttys),
+                                        GFP_KERNEL);
        if (!brd->SerialDriver.ttys)
                return -ENOMEM;
 
        kref_init(&brd->SerialDriver.kref);
-       brd->SerialDriver.termios = kcalloc(brd->maxports, sizeof(*brd->SerialDriver.termios), GFP_KERNEL);
+       brd->SerialDriver.termios = kcalloc(brd->maxports,
+                                           sizeof(*brd->SerialDriver.termios),
+                                           GFP_KERNEL);
        if (!brd->SerialDriver.termios)
                return -ENOMEM;
 
@@ -240,18 +246,24 @@ int dgnc_tty_register(struct dgnc_board *brd)
        brd->PrintDriver.subtype = SERIAL_TYPE_NORMAL;
        brd->PrintDriver.init_termios = DgncDefaultTermios;
        brd->PrintDriver.driver_name = DRVSTR;
-       brd->PrintDriver.flags = (TTY_DRIVER_REAL_RAW | TTY_DRIVER_DYNAMIC_DEV | TTY_DRIVER_HARDWARE_BREAK);
+       brd->PrintDriver.flags = (TTY_DRIVER_REAL_RAW |
+                                 TTY_DRIVER_DYNAMIC_DEV |
+                                 TTY_DRIVER_HARDWARE_BREAK);
 
        /*
         * The kernel wants space to store pointers to
         * tty_struct's and termios's.  Must be separated from
         * the Serial Driver so we don't get confused
         */
-       brd->PrintDriver.ttys = kcalloc(brd->maxports, sizeof(*brd->PrintDriver.ttys), GFP_KERNEL);
+       brd->PrintDriver.ttys = kcalloc(brd->maxports,
+                                       sizeof(*brd->PrintDriver.ttys),
+                                       GFP_KERNEL);
        if (!brd->PrintDriver.ttys)
                return -ENOMEM;
        kref_init(&brd->PrintDriver.kref);
-       brd->PrintDriver.termios = kcalloc(brd->maxports, sizeof(*brd->PrintDriver.termios), GFP_KERNEL);
+       brd->PrintDriver.termios = kcalloc(brd->maxports,
+                                          sizeof(*brd->PrintDriver.termios),
+                                          GFP_KERNEL);
        if (!brd->PrintDriver.termios)
                return -ENOMEM;
 
@@ -280,7 +292,6 @@ int dgnc_tty_register(struct dgnc_board *brd)
        return rc;
 }
 
-
 /*
  * dgnc_tty_init()
  *
@@ -304,19 +315,15 @@ int dgnc_tty_init(struct dgnc_board *brd)
 
        brd->nasync = brd->maxports;
 
-       /*
-        * Allocate channel memory that might not have been allocated
-        * when the driver was first loaded.
-        */
        for (i = 0; i < brd->nasync; i++) {
-               if (!brd->channels[i]) {
-
-                       /*
-                        * Okay to malloc with GFP_KERNEL, we are not at
-                        * interrupt context, and there are no locks held.
-                        */
-                       brd->channels[i] = kzalloc(sizeof(*brd->channels[i]), GFP_KERNEL);
-               }
+               /*
+                * Okay to malloc with GFP_KERNEL, we are not at
+                * interrupt context, and there are no locks held.
+                */
+               brd->channels[i] = kzalloc(sizeof(*brd->channels[i]),
+                                          GFP_KERNEL);
+               if (!brd->channels[i])
+                       goto err_free_channels;
        }
 
        ch = brd->channels[0];
@@ -324,10 +331,6 @@ int dgnc_tty_init(struct dgnc_board *brd)
 
        /* Set up channel variables */
        for (i = 0; i < brd->nasync; i++, ch = brd->channels[i]) {
-
-               if (!brd->channels[i])
-                       continue;
-
                spin_lock_init(&ch->ch_lock);
 
                /* Store all our magic numbers */
@@ -362,21 +365,26 @@ int dgnc_tty_init(struct dgnc_board *brd)
                        struct device *classp;
 
                        classp = tty_register_device(&brd->SerialDriver, i,
-                               &(ch->ch_bd->pdev->dev));
+                                                    &ch->ch_bd->pdev->dev);
                        ch->ch_tun.un_sysfs = classp;
                        dgnc_create_tty_sysfs(&ch->ch_tun, classp);
 
                        classp = tty_register_device(&brd->PrintDriver, i,
-                               &(ch->ch_bd->pdev->dev));
+                                                    &ch->ch_bd->pdev->dev);
                        ch->ch_pun.un_sysfs = classp;
                        dgnc_create_tty_sysfs(&ch->ch_pun, classp);
                }
-
        }
 
        return 0;
-}
 
+err_free_channels:
+       for (i = i - 1; i >= 0; --i) {
+               kfree(brd->channels[i]);
+               brd->channels[i] = NULL;
+       }
+       return -ENOMEM;
+}
 
 /*
  * dgnc_tty_post_uninit()
@@ -389,7 +397,6 @@ void dgnc_tty_post_uninit(void)
        dgnc_TmpWriteBuf = NULL;
 }
 
-
 /*
  * dgnc_tty_uninit()
  *
@@ -404,7 +411,9 @@ void dgnc_tty_uninit(struct dgnc_board *brd)
                dgnc_BoardsByMajor[brd->SerialDriver.major] = NULL;
                brd->dgnc_Serial_Major = 0;
                for (i = 0; i < brd->nasync; i++) {
-                       dgnc_remove_tty_sysfs(brd->channels[i]->ch_tun.un_sysfs);
+                       if (brd->channels[i])
+                               dgnc_remove_tty_sysfs(brd->channels[i]->
+                                                     ch_tun.un_sysfs);
                        tty_unregister_device(&brd->SerialDriver, i);
                }
                tty_unregister_driver(&brd->SerialDriver);
@@ -415,7 +424,9 @@ void dgnc_tty_uninit(struct dgnc_board *brd)
                dgnc_BoardsByMajor[brd->PrintDriver.major] = NULL;
                brd->dgnc_TransparentPrint_Major = 0;
                for (i = 0; i < brd->nasync; i++) {
-                       dgnc_remove_tty_sysfs(brd->channels[i]->ch_pun.un_sysfs);
+                       if (brd->channels[i])
+                               dgnc_remove_tty_sysfs(brd->channels[i]->
+                                                     ch_pun.un_sysfs);
                        tty_unregister_device(&brd->PrintDriver, i);
                }
                tty_unregister_driver(&brd->PrintDriver);
@@ -424,13 +435,14 @@ void dgnc_tty_uninit(struct dgnc_board *brd)
 
        kfree(brd->SerialDriver.ttys);
        brd->SerialDriver.ttys = NULL;
+       kfree(brd->SerialDriver.termios);
+       brd->SerialDriver.termios = NULL;
        kfree(brd->PrintDriver.ttys);
        brd->PrintDriver.ttys = NULL;
+       kfree(brd->PrintDriver.termios);
+       brd->PrintDriver.termios = NULL;
 }
 
-
-#define TMPBUFLEN (1024)
-
 /*=======================================================================
  *
  *     dgnc_wmove - Write data to transmit queue.
@@ -477,9 +489,6 @@ static void dgnc_wmove(struct channel_t *ch, char *buf, uint n)
        ch->ch_w_head = head;
 }
 
-
-
-
 /*=======================================================================
  *
  *      dgnc_input - Process received data.
@@ -530,9 +539,10 @@ void dgnc_input(struct channel_t *ch)
         * If the device is not open, or CREAD is off,
         * flush input data and return immediately.
         */
-       if (!tp || (tp->magic != TTY_MAGIC) || !(ch->ch_tun.un_flags & UN_ISOPEN) ||
-           !(tp->termios.c_cflag & CREAD) || (ch->ch_tun.un_flags & UN_CLOSING)) {
-
+       if (!tp || (tp->magic != TTY_MAGIC) ||
+           !(ch->ch_tun.un_flags & UN_ISOPEN) ||
+           !(tp->termios.c_cflag & CREAD) ||
+           (ch->ch_tun.un_flags & UN_CLOSING)) {
                ch->ch_r_head = tail;
 
                /* Force queue flow control to be released, if needed */
@@ -555,15 +565,6 @@ void dgnc_input(struct channel_t *ch)
 
        ld = tty_ldisc_ref(tp);
 
-#ifdef TTY_DONT_FLIP
-       /*
-        * If the DONT_FLIP flag is on, don't flush our buffer, and act
-        * like the ld doesn't have any space to put the data right now.
-        */
-       if (test_bit(TTY_DONT_FLIP, &tp->flags))
-               len = 0;
-#endif
-
        /*
         * If we were unable to get a reference to the ld,
         * don't flush our buffer, and act like the ld doesn't
@@ -624,16 +625,28 @@ void dgnc_input(struct channel_t *ch)
                if (I_PARMRK(tp) || I_BRKINT(tp) || I_INPCK(tp)) {
                        for (i = 0; i < s; i++) {
                                if (*(ch->ch_equeue + tail + i) & UART_LSR_BI)
-                                       tty_insert_flip_char(tp->port, *(ch->ch_rqueue + tail + i), TTY_BREAK);
-                               else if (*(ch->ch_equeue + tail + i) & UART_LSR_PE)
-                                       tty_insert_flip_char(tp->port, *(ch->ch_rqueue + tail + i), TTY_PARITY);
-                               else if (*(ch->ch_equeue + tail + i) & UART_LSR_FE)
-                                       tty_insert_flip_char(tp->port, *(ch->ch_rqueue + tail + i), TTY_FRAME);
+                                       tty_insert_flip_char(tp->port,
+                                               *(ch->ch_rqueue + tail + i),
+                                               TTY_BREAK);
+                               else if (*(ch->ch_equeue + tail + i) &
+                                               UART_LSR_PE)
+                                       tty_insert_flip_char(tp->port,
+                                               *(ch->ch_rqueue + tail + i),
+                                               TTY_PARITY);
+                               else if (*(ch->ch_equeue + tail + i) &
+                                               UART_LSR_FE)
+                                       tty_insert_flip_char(tp->port,
+                                               *(ch->ch_rqueue + tail + i),
+                                               TTY_FRAME);
                                else
-                                       tty_insert_flip_char(tp->port, *(ch->ch_rqueue + tail + i), TTY_NORMAL);
+                                       tty_insert_flip_char(tp->port,
+                                               *(ch->ch_rqueue + tail + i),
+                                               TTY_NORMAL);
                        }
                } else {
-                       tty_insert_flip_string(tp->port, ch->ch_rqueue + tail, s);
+                       tty_insert_flip_string(tp->port,
+                                              ch->ch_rqueue + tail,
+                                              s);
                }
 
                tail += s;
@@ -660,7 +673,6 @@ exit_unlock:
                tty_ldisc_deref(ld);
 }
 
-
 /************************************************************************
  * Determines when CARRIER changes state and takes appropriate
  * action.
@@ -693,13 +705,12 @@ void dgnc_carrier(struct channel_t *ch)
         * Test for a VIRTUAL carrier transition to HIGH.
         */
        if (((ch->ch_flags & CH_FCAR) == 0) && (virt_carrier == 1)) {
-
                /*
                 * When carrier rises, wake any threads waiting
                 * for carrier in the open routine.
                 */
 
-               if (waitqueue_active(&(ch->ch_flags_wait)))
+               if (waitqueue_active(&ch->ch_flags_wait))
                        wake_up_interruptible(&ch->ch_flags_wait);
        }
 
@@ -707,13 +718,12 @@ void dgnc_carrier(struct channel_t *ch)
         * Test for a PHYSICAL carrier transition to HIGH.
         */
        if (((ch->ch_flags & CH_CD) == 0) && (phys_carrier == 1)) {
-
                /*
                 * When carrier rises, wake any threads waiting
                 * for carrier in the open routine.
                 */
 
-               if (waitqueue_active(&(ch->ch_flags_wait)))
+               if (waitqueue_active(&ch->ch_flags_wait))
                        wake_up_interruptible(&ch->ch_flags_wait);
        }
 
@@ -728,7 +738,6 @@ void dgnc_carrier(struct channel_t *ch)
         */
        if ((virt_carrier == 0) && ((ch->ch_flags & CH_CD) != 0) &&
            (phys_carrier == 0)) {
-
                /*
                 *   When carrier drops:
                 *
@@ -741,7 +750,7 @@ void dgnc_carrier(struct channel_t *ch)
                 *
                 *   Enable all select calls.
                 */
-               if (waitqueue_active(&(ch->ch_flags_wait)))
+               if (waitqueue_active(&ch->ch_flags_wait))
                        wake_up_interruptible(&ch->ch_flags_wait);
 
                if (ch->ch_tun.un_open_count > 0)
@@ -811,8 +820,8 @@ static void dgnc_set_custom_speed(struct channel_t *ch, uint newrate)
                 */
                if (testrate_high != newrate) {
                        /*
-                        *  Otherwise, pick the rate that is closer (i.e. whichever rate
-                        *  has a smaller delta).
+                        *  Otherwise, pick the rate that is closer
+                        *  (i.e. whichever rate has a smaller delta).
                         */
                        deltahigh = testrate_high - newrate;
                        deltalow = newrate - testrate_low;
@@ -827,10 +836,9 @@ static void dgnc_set_custom_speed(struct channel_t *ch, uint newrate)
        ch->ch_custom_speed = newrate;
 }
 
-
 void dgnc_check_queue_flow_control(struct channel_t *ch)
 {
-       int qleft = 0;
+       int qleft;
 
        /* Store how much space we have left in the queue */
        qleft = ch->ch_r_tail - ch->ch_r_head - 1;
@@ -854,7 +862,8 @@ void dgnc_check_queue_flow_control(struct channel_t *ch)
         */
        if (qleft < 256) {
                /* HWFLOW */
-               if (ch->ch_digi.digi_flags & CTSPACE || ch->ch_c_cflag & CRTSCTS) {
+               if (ch->ch_digi.digi_flags & CTSPACE ||
+                   ch->ch_c_cflag & CRTSCTS) {
                        if (!(ch->ch_flags & CH_RECEIVER_OFF)) {
                                ch->ch_bd->bd_ops->disable_receiver(ch);
                                ch->ch_flags |= (CH_RECEIVER_OFF);
@@ -886,7 +895,8 @@ void dgnc_check_queue_flow_control(struct channel_t *ch)
         */
        if (qleft > (RQUEUESIZE / 2)) {
                /* HWFLOW */
-               if (ch->ch_digi.digi_flags & RTSPACE || ch->ch_c_cflag & CRTSCTS) {
+               if (ch->ch_digi.digi_flags & RTSPACE ||
+                   ch->ch_c_cflag & CRTSCTS) {
                        if (ch->ch_flags & CH_RECEIVER_OFF) {
                                ch->ch_bd->bd_ops->enable_receiver(ch);
                                ch->ch_flags &= ~(CH_RECEIVER_OFF);
@@ -897,14 +907,9 @@ void dgnc_check_queue_flow_control(struct channel_t *ch)
                        ch->ch_stops_sent = 0;
                        ch->ch_bd->bd_ops->send_start_character(ch);
                }
-               /* No FLOW */
-               else {
-                       /* Nothing needed. */
-               }
        }
 }
 
-
 void dgnc_wakeup_writes(struct channel_t *ch)
 {
        int qlen = 0;
@@ -929,9 +934,9 @@ void dgnc_wakeup_writes(struct channel_t *ch)
 
        if (ch->ch_tun.un_flags & UN_ISOPEN) {
                if ((ch->ch_tun.un_tty->flags & (1 << TTY_DO_WRITE_WAKEUP)) &&
-                       ch->ch_tun.un_tty->ldisc->ops->write_wakeup) {
+                   ch->ch_tun.un_tty->ldisc->ops->write_wakeup) {
                        spin_unlock_irqrestore(&ch->ch_lock, flags);
-                       (ch->ch_tun.un_tty->ldisc->ops->write_wakeup)(ch->ch_tun.un_tty);
+                       ch->ch_tun.un_tty->ldisc->ops->write_wakeup(ch->ch_tun.un_tty);
                        spin_lock_irqsave(&ch->ch_lock, flags);
                }
 
@@ -942,7 +947,8 @@ void dgnc_wakeup_writes(struct channel_t *ch)
                 * the queue AND FIFO are both empty.
                 */
                if (ch->ch_tun.un_flags & UN_EMPTY) {
-                       if ((qlen == 0) && (ch->ch_bd->bd_ops->get_uart_bytes_left(ch) == 0)) {
+                       if ((qlen == 0) &&
+                           (ch->ch_bd->bd_ops->get_uart_bytes_left(ch) == 0)) {
                                ch->ch_tun.un_flags &= ~(UN_EMPTY);
 
                                /*
@@ -970,9 +976,9 @@ void dgnc_wakeup_writes(struct channel_t *ch)
 
        if (ch->ch_pun.un_flags & UN_ISOPEN) {
                if ((ch->ch_pun.un_tty->flags & (1 << TTY_DO_WRITE_WAKEUP)) &&
-                       ch->ch_pun.un_tty->ldisc->ops->write_wakeup) {
+                   ch->ch_pun.un_tty->ldisc->ops->write_wakeup) {
                        spin_unlock_irqrestore(&ch->ch_lock, flags);
-                       (ch->ch_pun.un_tty->ldisc->ops->write_wakeup)(ch->ch_pun.un_tty);
+                       ch->ch_pun.un_tty->ldisc->ops->write_wakeup(ch->ch_pun.un_tty);
                        spin_lock_irqsave(&ch->ch_lock, flags);
                }
 
@@ -983,7 +989,8 @@ void dgnc_wakeup_writes(struct channel_t *ch)
                 * the queue AND FIFO are both empty.
                 */
                if (ch->ch_pun.un_flags & UN_EMPTY) {
-                       if ((qlen == 0) && (ch->ch_bd->bd_ops->get_uart_bytes_left(ch) == 0))
+                       if ((qlen == 0) &&
+                           (ch->ch_bd->bd_ops->get_uart_bytes_left(ch) == 0))
                                ch->ch_pun.un_flags &= ~(UN_EMPTY);
                }
 
@@ -993,8 +1000,6 @@ void dgnc_wakeup_writes(struct channel_t *ch)
        spin_unlock_irqrestore(&ch->ch_lock, flags);
 }
 
-
-
 /************************************************************************
  *
  * TTY Entry points and helper functions
@@ -1033,7 +1038,7 @@ static int dgnc_tty_open(struct tty_struct *tty, struct file *file)
         * sleep waiting for it to happen or they cancel the open.
         */
        rc = wait_event_interruptible(brd->state_wait,
-               (brd->state & BOARD_READY));
+                                     (brd->state & BOARD_READY));
 
        if (rc)
                return rc;
@@ -1077,7 +1082,8 @@ static int dgnc_tty_open(struct tty_struct *tty, struct file *file)
         */
        spin_unlock_irqrestore(&ch->ch_lock, flags);
 
-       rc = wait_event_interruptible(ch->ch_flags_wait, ((ch->ch_flags & CH_OPENING) == 0));
+       rc = wait_event_interruptible(ch->ch_flags_wait,
+                                     ((ch->ch_flags & CH_OPENING) == 0));
 
        /* If ret is non-zero, user ctrl-c'ed us */
        if (rc)
@@ -1091,7 +1097,8 @@ static int dgnc_tty_open(struct tty_struct *tty, struct file *file)
         * ch_flags_wait to wake us back up.
         */
        rc = wait_event_interruptible(ch->ch_flags_wait,
-               (((ch->ch_tun.un_flags | ch->ch_pun.un_flags) & UN_CLOSING) == 0));
+               (((ch->ch_tun.un_flags | ch->ch_pun.un_flags) &
+                 UN_CLOSING) == 0));
 
        /* If ret is non-zero, user ctrl-c'ed us */
        if (rc)
@@ -1099,11 +1106,9 @@ static int dgnc_tty_open(struct tty_struct *tty, struct file *file)
 
        spin_lock_irqsave(&ch->ch_lock, flags);
 
-
        /* Store our unit into driver_data, so we always have it available. */
        tty->driver_data = un;
 
-
        /*
         * Initialize tty's
         */
@@ -1114,7 +1119,6 @@ static int dgnc_tty_open(struct tty_struct *tty, struct file *file)
                /* Maybe do something here to the TTY struct as well? */
        }
 
-
        /*
         * Allocate channel buffers for read/write/error.
         * Set flag, so we don't get trounced on.
@@ -1140,7 +1144,6 @@ static int dgnc_tty_open(struct tty_struct *tty, struct file *file)
         * Initialize if neither terminal or printer is open.
         */
        if (!((ch->ch_tun.un_flags | ch->ch_pun.un_flags) & UN_ISOPEN)) {
-
                /*
                 * Flush input queues.
                 */
@@ -1204,13 +1207,14 @@ static int dgnc_tty_open(struct tty_struct *tty, struct file *file)
        return rc;
 }
 
-
 /*
  * dgnc_block_til_ready()
  *
  * Wait for DCD, if needed.
  */
-static int dgnc_block_til_ready(struct tty_struct *tty, struct file *file, struct channel_t *ch)
+static int dgnc_block_til_ready(struct tty_struct *tty,
+                               struct file *file,
+                               struct channel_t *ch)
 {
        int retval = 0;
        struct un_t *un = NULL;
@@ -1218,7 +1222,8 @@ static int dgnc_block_til_ready(struct tty_struct *tty, struct file *file, struc
        uint    old_flags = 0;
        int     sleep_on_un_flags = 0;
 
-       if (!tty || tty->magic != TTY_MAGIC || !file || !ch || ch->magic != DGNC_CHANNEL_MAGIC)
+       if (!tty || tty->magic != TTY_MAGIC || !file || !ch ||
+           ch->magic != DGNC_CHANNEL_MAGIC)
                return -ENXIO;
 
        un = tty->driver_data;
@@ -1231,11 +1236,11 @@ static int dgnc_block_til_ready(struct tty_struct *tty, struct file *file, struc
 
        /* Loop forever */
        while (1) {
-
                sleep_on_un_flags = 0;
 
                /*
-                * If board has failed somehow during our sleep, bail with error.
+                * If board has failed somehow during our sleep,
+                * bail with error.
                 */
                if (ch->ch_bd->state == BOARD_FAILED) {
                        retval = -ENXIO;
@@ -1255,8 +1260,9 @@ static int dgnc_block_til_ready(struct tty_struct *tty, struct file *file, struc
                 * touched safely, the close routine will signal the
                 * ch_wait_flags to wake us back up.
                 */
-               if (!((ch->ch_tun.un_flags | ch->ch_pun.un_flags) & UN_CLOSING)) {
-
+               if (!((ch->ch_tun.un_flags |
+                   ch->ch_pun.un_flags) &
+                   UN_CLOSING)) {
                        /*
                         * Our conditions to leave cleanly and happily:
                         * 1) NONBLOCKING on the tty is set.
@@ -1308,11 +1314,13 @@ static int dgnc_block_til_ready(struct tty_struct *tty, struct file *file, struc
                spin_unlock_irqrestore(&ch->ch_lock, flags);
 
                /*
-                * Wait for something in the flags to change from the current value.
+                * Wait for something in the flags to change
+                * from the current value.
                 */
                if (sleep_on_un_flags)
                        retval = wait_event_interruptible(un->un_flags_wait,
-                               (old_flags != (ch->ch_tun.un_flags | ch->ch_pun.un_flags)));
+                               (old_flags != (ch->ch_tun.un_flags |
+                                              ch->ch_pun.un_flags)));
                else
                        retval = wait_event_interruptible(ch->ch_flags_wait,
                                (old_flags != ch->ch_flags));
@@ -1328,13 +1336,9 @@ static int dgnc_block_til_ready(struct tty_struct *tty, struct file *file, struc
 
        spin_unlock_irqrestore(&ch->ch_lock, flags);
 
-       if (retval)
-               return retval;
-
-       return 0;
+       return retval;
 }
 
-
 /*
  * dgnc_tty_hangup()
  *
@@ -1353,22 +1357,18 @@ static void dgnc_tty_hangup(struct tty_struct *tty)
 
        /* flush the transmit queues */
        dgnc_tty_flush_buffer(tty);
-
 }
 
-
 /*
  * dgnc_tty_close()
  *
  */
 static void dgnc_tty_close(struct tty_struct *tty, struct file *file)
 {
-       struct ktermios *ts;
        struct dgnc_board *bd;
        struct channel_t *ch;
        struct un_t *un;
        unsigned long flags;
-       int rc = 0;
 
        if (!tty || tty->magic != TTY_MAGIC)
                return;
@@ -1385,8 +1385,6 @@ static void dgnc_tty_close(struct tty_struct *tty, struct file *file)
        if (!bd || bd->magic != DGNC_BOARD_MAGIC)
                return;
 
-       ts = &tty->termios;
-
        spin_lock_irqsave(&ch->ch_lock, flags);
 
        /*
@@ -1426,13 +1424,12 @@ static void dgnc_tty_close(struct tty_struct *tty, struct file *file)
 
        tty->closing = 1;
 
-
        /*
         * Only officially close channel if count is 0 and
         * DIGI_PRINTER bit is not set.
         */
-       if ((ch->ch_open_count == 0) && !(ch->ch_digi.digi_flags & DIGI_PRINTER)) {
-
+       if ((ch->ch_open_count == 0) &&
+           !(ch->ch_digi.digi_flags & DIGI_PRINTER)) {
                ch->ch_flags &= ~(CH_STOPI | CH_FORCED_STOPI);
 
                /*
@@ -1440,7 +1437,7 @@ static void dgnc_tty_close(struct tty_struct *tty, struct file *file)
                 */
                if ((un->un_type == DGNC_PRINT) && (ch->ch_flags & CH_PRON)) {
                        dgnc_wmove(ch, ch->ch_digi.digi_offstr,
-                               (int) ch->ch_digi.digi_offlen);
+                                  (int)ch->ch_digi.digi_offlen);
                        ch->ch_flags &= ~CH_PRON;
                }
 
@@ -1448,7 +1445,7 @@ static void dgnc_tty_close(struct tty_struct *tty, struct file *file)
                /* wait for output to drain */
                /* This will also return if we take an interrupt */
 
-               rc = bd->bd_ops->drain(tty, 0);
+               bd->bd_ops->drain(tty, 0);
 
                dgnc_tty_flush_buffer(tty);
                tty_ldisc_flush(tty);
@@ -1461,7 +1458,6 @@ static void dgnc_tty_close(struct tty_struct *tty, struct file *file)
                 * If we have HUPCL set, lower DTR and RTS
                 */
                if (ch->ch_c_cflag & HUPCL) {
-
                        /* Drop RTS/DTR */
                        ch->ch_mostat &= ~(UART_MCR_DTR | UART_MCR_RTS);
                        bd->bd_ops->assert_modem_signals(ch);
@@ -1488,7 +1484,7 @@ static void dgnc_tty_close(struct tty_struct *tty, struct file *file)
                 */
                if ((un->un_type == DGNC_PRINT) && (ch->ch_flags & CH_PRON)) {
                        dgnc_wmove(ch, ch->ch_digi.digi_offstr,
-                               (int) ch->ch_digi.digi_offlen);
+                                  (int)ch->ch_digi.digi_offlen);
                        ch->ch_flags &= ~CH_PRON;
                }
        }
@@ -1502,7 +1498,6 @@ static void dgnc_tty_close(struct tty_struct *tty, struct file *file)
        spin_unlock_irqrestore(&ch->ch_lock, flags);
 }
 
-
 /*
  * dgnc_tty_chars_in_buffer()
  *
@@ -1521,7 +1516,7 @@ static int dgnc_tty_chars_in_buffer(struct tty_struct *tty)
        uint chars = 0;
        unsigned long flags;
 
-       if (tty == NULL)
+       if (!tty)
                return 0;
 
        un = tty->driver_data;
@@ -1552,7 +1547,6 @@ static int dgnc_tty_chars_in_buffer(struct tty_struct *tty)
        return chars;
 }
 
-
 /*
  * dgnc_maxcps_room
  *
@@ -1588,15 +1582,17 @@ static int dgnc_maxcps_room(struct tty_struct *tty, int bytes_available)
                int cps_limit = 0;
                unsigned long current_time = jiffies;
                unsigned long buffer_time = current_time +
-                       (HZ * ch->ch_digi.digi_bufsize) / ch->ch_digi.digi_maxcps;
+                       (HZ * ch->ch_digi.digi_bufsize) /
+                       ch->ch_digi.digi_maxcps;
 
                if (ch->ch_cpstime < current_time) {
                        /* buffer is empty */
-                       ch->ch_cpstime = current_time;      /* reset ch_cpstime */
+                       ch->ch_cpstime = current_time;  /* reset ch_cpstime */
                        cps_limit = ch->ch_digi.digi_bufsize;
                } else if (ch->ch_cpstime < buffer_time) {
                        /* still room in the buffer */
-                       cps_limit = ((buffer_time - ch->ch_cpstime) * ch->ch_digi.digi_maxcps) / HZ;
+                       cps_limit = ((buffer_time - ch->ch_cpstime) *
+                                       ch->ch_digi.digi_maxcps) / HZ;
                } else {
                        /* no room in the buffer */
                        cps_limit = 0;
@@ -1608,7 +1604,6 @@ static int dgnc_maxcps_room(struct tty_struct *tty, int bytes_available)
        return bytes_available;
 }
 
-
 /*
  * dgnc_tty_write_room()
  *
@@ -1624,7 +1619,7 @@ static int dgnc_tty_write_room(struct tty_struct *tty)
        int ret = 0;
        unsigned long flags;
 
-       if (tty == NULL || dgnc_TmpWriteBuf == NULL)
+       if (!tty || !dgnc_TmpWriteBuf)
                return 0;
 
        un = tty->driver_data;
@@ -1669,7 +1664,6 @@ static int dgnc_tty_write_room(struct tty_struct *tty)
        return ret;
 }
 
-
 /*
  * dgnc_tty_put_char()
  *
@@ -1686,7 +1680,6 @@ static int dgnc_tty_put_char(struct tty_struct *tty, unsigned char c)
        return 1;
 }
 
-
 /*
  * dgnc_tty_write()
  *
@@ -1694,20 +1687,18 @@ static int dgnc_tty_put_char(struct tty_struct *tty, unsigned char c)
  * In here exists all the Transparent Print magic as well.
  */
 static int dgnc_tty_write(struct tty_struct *tty,
-               const unsigned char *buf, int count)
+                         const unsigned char *buf, int count)
 {
        struct channel_t *ch = NULL;
        struct un_t *un = NULL;
        int bufcount = 0, n = 0;
-       int orig_count = 0;
        unsigned long flags;
        ushort head;
        ushort tail;
        ushort tmask;
        uint remain;
-       int from_user = 0;
 
-       if (tty == NULL || dgnc_TmpWriteBuf == NULL)
+       if (!tty || !dgnc_TmpWriteBuf)
                return 0;
 
        un = tty->driver_data;
@@ -1726,7 +1717,6 @@ static int dgnc_tty_write(struct tty_struct *tty,
         * This helps to figure out if we should ask the FEP
         * to send us an event when it has more space available.
         */
-       orig_count = count;
 
        spin_lock_irqsave(&ch->ch_lock, flags);
 
@@ -1763,7 +1753,7 @@ static int dgnc_tty_write(struct tty_struct *tty,
         */
        if ((un->un_type == DGNC_PRINT) && !(ch->ch_flags & CH_PRON)) {
                dgnc_wmove(ch, ch->ch_digi.digi_onstr,
-                   (int) ch->ch_digi.digi_onlen);
+                          (int)ch->ch_digi.digi_onlen);
                head = (ch->ch_w_head) & tmask;
                ch->ch_flags |= CH_PRON;
        }
@@ -1774,49 +1764,11 @@ static int dgnc_tty_write(struct tty_struct *tty,
         */
        if ((un->un_type != DGNC_PRINT) && (ch->ch_flags & CH_PRON)) {
                dgnc_wmove(ch, ch->ch_digi.digi_offstr,
-                       (int) ch->ch_digi.digi_offlen);
+                          (int)ch->ch_digi.digi_offlen);
                head = (ch->ch_w_head) & tmask;
                ch->ch_flags &= ~CH_PRON;
        }
 
-       /*
-        * If there is nothing left to copy, or I can't handle any more data, leave.
-        */
-       if (count <= 0)
-               goto exit_retry;
-
-       if (from_user) {
-
-               count = min(count, WRITEBUFLEN);
-
-               spin_unlock_irqrestore(&ch->ch_lock, flags);
-
-               /*
-                * If data is coming from user space, copy it into a temporary
-                * buffer so we don't get swapped out while doing the copy to
-                * the board.
-                */
-               /* we're allowed to block if it's from_user */
-               if (down_interruptible(&dgnc_TmpWriteSem))
-                       return -EINTR;
-
-               /*
-                * copy_from_user() returns the number
-                * of bytes that could *NOT* be copied.
-                */
-               count -= copy_from_user(dgnc_TmpWriteBuf, (const unsigned char __user *) buf, count);
-
-               if (!count) {
-                       up(&dgnc_TmpWriteSem);
-                       return -EFAULT;
-               }
-
-               spin_lock_irqsave(&ch->ch_lock, flags);
-
-               buf = dgnc_TmpWriteBuf;
-
-       }
-
        n = count;
 
        /*
@@ -1853,12 +1805,7 @@ static int dgnc_tty_write(struct tty_struct *tty,
                ch->ch_cpstime += (HZ * count) / ch->ch_digi.digi_maxcps;
        }
 
-       if (from_user) {
-               spin_unlock_irqrestore(&ch->ch_lock, flags);
-               up(&dgnc_TmpWriteSem);
-       } else {
-               spin_unlock_irqrestore(&ch->ch_lock, flags);
-       }
+       spin_unlock_irqrestore(&ch->ch_lock, flags);
 
        if (count) {
                /*
@@ -1876,7 +1823,6 @@ exit_retry:
        return 0;
 }
 
-
 /*
  * Return modem signals to ld.
  */
@@ -1924,7 +1870,6 @@ static int dgnc_tty_tiocmget(struct tty_struct *tty)
        return result;
 }
 
-
 /*
  * dgnc_tty_tiocmset()
  *
@@ -1932,7 +1877,7 @@ static int dgnc_tty_tiocmget(struct tty_struct *tty)
  */
 
 static int dgnc_tty_tiocmset(struct tty_struct *tty,
-               unsigned int set, unsigned int clear)
+                            unsigned int set, unsigned int clear)
 {
        struct dgnc_board *bd;
        struct channel_t *ch;
@@ -1976,7 +1921,6 @@ static int dgnc_tty_tiocmset(struct tty_struct *tty,
        return 0;
 }
 
-
 /*
  * dgnc_tty_send_break()
  *
@@ -2023,10 +1967,8 @@ static int dgnc_tty_send_break(struct tty_struct *tty, int msec)
        spin_unlock_irqrestore(&ch->ch_lock, flags);
 
        return 0;
-
 }
 
-
 /*
  * dgnc_tty_wait_until_sent()
  *
@@ -2037,7 +1979,6 @@ static void dgnc_tty_wait_until_sent(struct tty_struct *tty, int timeout)
        struct dgnc_board *bd;
        struct channel_t *ch;
        struct un_t *un;
-       int rc;
 
        if (!tty || tty->magic != TTY_MAGIC)
                return;
@@ -2054,10 +1995,9 @@ static void dgnc_tty_wait_until_sent(struct tty_struct *tty, int timeout)
        if (!bd || bd->magic != DGNC_BOARD_MAGIC)
                return;
 
-       rc = bd->bd_ops->drain(tty, 0);
+       bd->bd_ops->drain(tty, 0);
 }
 
-
 /*
  * dgnc_send_xchar()
  *
@@ -2094,9 +2034,6 @@ static void dgnc_tty_send_xchar(struct tty_struct *tty, char c)
        dev_dbg(tty->dev, "dgnc_tty_send_xchar finish\n");
 }
 
-
-
-
 /*
  * Return modem signals to ld.
  */
@@ -2133,12 +2070,11 @@ static inline int dgnc_get_mstat(struct channel_t *ch)
        return result;
 }
 
-
-
 /*
  * Return modem signals to ld.
  */
-static int dgnc_get_modem_info(struct channel_t *ch, unsigned int  __user *value)
+static int dgnc_get_modem_info(struct channel_t *ch,
+                              unsigned int  __user *value)
 {
        int result;
 
@@ -2153,13 +2089,14 @@ static int dgnc_get_modem_info(struct channel_t *ch, unsigned int  __user *value
        return put_user(result, value);
 }
 
-
 /*
  * dgnc_set_modem_info()
  *
  * Set modem signals, called by ld.
  */
-static int dgnc_set_modem_info(struct tty_struct *tty, unsigned int command, unsigned int __user *value)
+static int dgnc_set_modem_info(struct tty_struct *tty,
+                              unsigned int command,
+                              unsigned int __user *value)
 {
        struct dgnc_board *bd;
        struct channel_t *ch;
@@ -2233,7 +2170,6 @@ static int dgnc_set_modem_info(struct tty_struct *tty, unsigned int command, uns
        return 0;
 }
 
-
 /*
  * dgnc_tty_digigeta()
  *
@@ -2242,7 +2178,8 @@ static int dgnc_set_modem_info(struct tty_struct *tty, unsigned int command, uns
  *
  *
  */
-static int dgnc_tty_digigeta(struct tty_struct *tty, struct digi_t __user *retinfo)
+static int dgnc_tty_digigeta(struct tty_struct *tty,
+                            struct digi_t __user *retinfo)
 {
        struct channel_t *ch;
        struct un_t *un;
@@ -2275,7 +2212,6 @@ static int dgnc_tty_digigeta(struct tty_struct *tty, struct digi_t __user *retin
        return 0;
 }
 
-
 /*
  * dgnc_tty_digiseta()
  *
@@ -2284,7 +2220,8 @@ static int dgnc_tty_digigeta(struct tty_struct *tty, struct digi_t __user *retin
  *
  *
  */
-static int dgnc_tty_digiseta(struct tty_struct *tty, struct digi_t __user *new_info)
+static int dgnc_tty_digiseta(struct tty_struct *tty,
+                            struct digi_t __user *new_info)
 {
        struct dgnc_board *bd;
        struct channel_t *ch;
@@ -2315,17 +2252,21 @@ static int dgnc_tty_digiseta(struct tty_struct *tty, struct digi_t __user *new_i
        /*
         * Handle transistions to and from RTS Toggle.
         */
-       if (!(ch->ch_digi.digi_flags & DIGI_RTS_TOGGLE) && (new_digi.digi_flags & DIGI_RTS_TOGGLE))
+       if (!(ch->ch_digi.digi_flags & DIGI_RTS_TOGGLE) &&
+           (new_digi.digi_flags & DIGI_RTS_TOGGLE))
                ch->ch_mostat &= ~(UART_MCR_RTS);
-       if ((ch->ch_digi.digi_flags & DIGI_RTS_TOGGLE) && !(new_digi.digi_flags & DIGI_RTS_TOGGLE))
+       if ((ch->ch_digi.digi_flags & DIGI_RTS_TOGGLE) &&
+           !(new_digi.digi_flags & DIGI_RTS_TOGGLE))
                ch->ch_mostat |= (UART_MCR_RTS);
 
        /*
         * Handle transistions to and from DTR Toggle.
         */
-       if (!(ch->ch_digi.digi_flags & DIGI_DTR_TOGGLE) && (new_digi.digi_flags & DIGI_DTR_TOGGLE))
+       if (!(ch->ch_digi.digi_flags & DIGI_DTR_TOGGLE) &&
+           (new_digi.digi_flags & DIGI_DTR_TOGGLE))
                ch->ch_mostat &= ~(UART_MCR_DTR);
-       if ((ch->ch_digi.digi_flags & DIGI_DTR_TOGGLE) && !(new_digi.digi_flags & DIGI_DTR_TOGGLE))
+       if ((ch->ch_digi.digi_flags & DIGI_DTR_TOGGLE) &&
+           !(new_digi.digi_flags & DIGI_DTR_TOGGLE))
                ch->ch_mostat |= (UART_MCR_DTR);
 
        memcpy(&ch->ch_digi, &new_digi, sizeof(new_digi));
@@ -2358,11 +2299,11 @@ static int dgnc_tty_digiseta(struct tty_struct *tty, struct digi_t __user *new_i
        return 0;
 }
 
-
 /*
  * dgnc_set_termios()
  */
-static void dgnc_tty_set_termios(struct tty_struct *tty, struct ktermios *old_termios)
+static void dgnc_tty_set_termios(struct tty_struct *tty,
+                                struct ktermios *old_termios)
 {
        struct dgnc_board *bd;
        struct channel_t *ch;
@@ -2399,7 +2340,6 @@ static void dgnc_tty_set_termios(struct tty_struct *tty, struct ktermios *old_te
        spin_unlock_irqrestore(&ch->ch_lock, flags);
 }
 
-
 static void dgnc_tty_throttle(struct tty_struct *tty)
 {
        struct channel_t *ch;
@@ -2424,7 +2364,6 @@ static void dgnc_tty_throttle(struct tty_struct *tty)
        spin_unlock_irqrestore(&ch->ch_lock, flags);
 }
 
-
 static void dgnc_tty_unthrottle(struct tty_struct *tty)
 {
        struct channel_t *ch;
@@ -2449,7 +2388,6 @@ static void dgnc_tty_unthrottle(struct tty_struct *tty)
        spin_unlock_irqrestore(&ch->ch_lock, flags);
 }
 
-
 static void dgnc_tty_start(struct tty_struct *tty)
 {
        struct dgnc_board *bd;
@@ -2479,7 +2417,6 @@ static void dgnc_tty_start(struct tty_struct *tty)
        spin_unlock_irqrestore(&ch->ch_lock, flags);
 }
 
-
 static void dgnc_tty_stop(struct tty_struct *tty)
 {
        struct dgnc_board *bd;
@@ -2509,7 +2446,6 @@ static void dgnc_tty_stop(struct tty_struct *tty)
        spin_unlock_irqrestore(&ch->ch_lock, flags);
 }
 
-
 /*
  * dgnc_tty_flush_chars()
  *
@@ -2552,8 +2488,6 @@ static void dgnc_tty_flush_chars(struct tty_struct *tty)
        spin_unlock_irqrestore(&ch->ch_lock, flags);
 }
 
-
-
 /*
  * dgnc_tty_flush_buffer()
  *
@@ -2598,8 +2532,6 @@ static void dgnc_tty_flush_buffer(struct tty_struct *tty)
        spin_unlock_irqrestore(&ch->ch_lock, flags);
 }
 
-
-
 /*****************************************************************************
  *
  * The IOCTL function and all of its helpers
@@ -2612,14 +2544,14 @@ static void dgnc_tty_flush_buffer(struct tty_struct *tty)
  * The usual assortment of ioctl's
  */
 static int dgnc_tty_ioctl(struct tty_struct *tty, unsigned int cmd,
-               unsigned long arg)
+                         unsigned long arg)
 {
        struct dgnc_board *bd;
        struct channel_t *ch;
        struct un_t *un;
        int rc;
        unsigned long flags;
-       void __user *uarg = (void __user *) arg;
+       void __user *uarg = (void __user *)arg;
 
        if (!tty || tty->magic != TTY_MAGIC)
                return -ENODEV;
@@ -2644,7 +2576,6 @@ static int dgnc_tty_ioctl(struct tty_struct *tty, unsigned int cmd,
        }
 
        switch (cmd) {
-
        /* Here are all the standard ioctl's that we MUST implement */
 
        case TCSBRK:
@@ -2675,7 +2606,6 @@ static int dgnc_tty_ioctl(struct tty_struct *tty, unsigned int cmd,
 
                return 0;
 
-
        case TCSBRKP:
                /* support for POSIX tcsendbreak()
                 * According to POSIX.1 spec (7.2.2.1.2) breaks should be
@@ -2726,18 +2656,20 @@ static int dgnc_tty_ioctl(struct tty_struct *tty, unsigned int cmd,
 
                spin_unlock_irqrestore(&ch->ch_lock, flags);
 
-               rc = put_user(C_CLOCAL(tty) ? 1 : 0, (unsigned long __user *) arg);
+               rc = put_user(C_CLOCAL(tty) ? 1 : 0,
+                             (unsigned long __user *)arg);
                return rc;
 
        case TIOCSSOFTCAR:
 
                spin_unlock_irqrestore(&ch->ch_lock, flags);
-               rc = get_user(arg, (unsigned long __user *) arg);
+               rc = get_user(arg, (unsigned long __user *)arg);
                if (rc)
                        return rc;
 
                spin_lock_irqsave(&ch->ch_lock, flags);
-               tty->termios.c_cflag = ((tty->termios.c_cflag & ~CLOCAL) | (arg ? CLOCAL : 0));
+               tty->termios.c_cflag = ((tty->termios.c_cflag & ~CLOCAL) |
+                                      (arg ? CLOCAL : 0));
                ch->ch_bd->bd_ops->param(tty);
                spin_unlock_irqrestore(&ch->ch_lock, flags);
 
@@ -2786,15 +2718,16 @@ static int dgnc_tty_ioctl(struct tty_struct *tty, unsigned int cmd,
                                ch->ch_bd->bd_ops->flush_uart_write(ch);
 
                                if (ch->ch_tun.un_flags & (UN_LOW|UN_EMPTY)) {
-                                       ch->ch_tun.un_flags &= ~(UN_LOW|UN_EMPTY);
+                                       ch->ch_tun.un_flags &=
+                                               ~(UN_LOW|UN_EMPTY);
                                        wake_up_interruptible(&ch->ch_tun.un_flags_wait);
                                }
 
                                if (ch->ch_pun.un_flags & (UN_LOW|UN_EMPTY)) {
-                                       ch->ch_pun.un_flags &= ~(UN_LOW|UN_EMPTY);
+                                       ch->ch_pun.un_flags &=
+                                               ~(UN_LOW|UN_EMPTY);
                                        wake_up_interruptible(&ch->ch_pun.un_flags_wait);
                                }
-
                        }
                }
 
@@ -2855,7 +2788,6 @@ static int dgnc_tty_ioctl(struct tty_struct *tty, unsigned int cmd,
 
                /* set information for ditty */
                if (cmd == (DIGI_SETAW)) {
-
                        spin_unlock_irqrestore(&ch->ch_lock, flags);
                        rc = ch->ch_bd->bd_ops->drain(tty, 0);
 
@@ -2875,9 +2807,11 @@ static int dgnc_tty_ioctl(struct tty_struct *tty, unsigned int cmd,
        case DIGI_LOOPBACK:
                {
                        uint loopback = 0;
-                       /* Let go of locks when accessing user space, could sleep */
+                       /* Let go of locks when accessing user space,
+                        * could sleep
+                       */
                        spin_unlock_irqrestore(&ch->ch_lock, flags);
-                       rc = get_user(loopback, (unsigned int __user *) arg);
+                       rc = get_user(loopback, (unsigned int __user *)arg);
                        if (rc)
                                return rc;
                        spin_lock_irqsave(&ch->ch_lock, flags);
@@ -2895,7 +2829,7 @@ static int dgnc_tty_ioctl(struct tty_struct *tty, unsigned int cmd,
 
        case DIGI_GETCUSTOMBAUD:
                spin_unlock_irqrestore(&ch->ch_lock, flags);
-               rc = put_user(ch->ch_custom_speed, (unsigned int __user *) arg);
+               rc = put_user(ch->ch_custom_speed, (unsigned int __user *)arg);
                return rc;
 
        case DIGI_SETCUSTOMBAUD:
@@ -2903,7 +2837,7 @@ static int dgnc_tty_ioctl(struct tty_struct *tty, unsigned int cmd,
                int new_rate;
                /* Let go of locks when accessing user space, could sleep */
                spin_unlock_irqrestore(&ch->ch_lock, flags);
-               rc = get_user(new_rate, (int __user *) arg);
+               rc = get_user(new_rate, (int __user *)arg);
                if (rc)
                        return rc;
                spin_lock_irqsave(&ch->ch_lock, flags);
@@ -2925,7 +2859,7 @@ static int dgnc_tty_ioctl(struct tty_struct *tty, unsigned int cmd,
                unsigned char c;
 
                spin_unlock_irqrestore(&ch->ch_lock, flags);
-               rc = get_user(c, (unsigned char __user *) arg);
+               rc = get_user(c, (unsigned char __user *)arg);
                if (rc)
                        return rc;
                spin_lock_irqsave(&ch->ch_lock, flags);
@@ -2973,14 +2907,16 @@ static int dgnc_tty_ioctl(struct tty_struct *tty, unsigned int cmd,
                /* NOTE: MORE EVENTS NEEDS TO BE ADDED HERE */
                if (ch->ch_flags & CH_BREAK_SENDING)
                        events |= EV_TXB;
-               if ((ch->ch_flags & CH_STOP) || (ch->ch_flags & CH_FORCED_STOP))
+               if ((ch->ch_flags & CH_STOP) ||
+                   (ch->ch_flags & CH_FORCED_STOP))
                        events |= (EV_OPU | EV_OPS);
 
-               if ((ch->ch_flags & CH_STOPI) || (ch->ch_flags & CH_FORCED_STOPI))
+               if ((ch->ch_flags & CH_STOPI) ||
+                   (ch->ch_flags & CH_FORCED_STOPI))
                        events |= (EV_IPU | EV_IPS);
 
                spin_unlock_irqrestore(&ch->ch_lock, flags);
-               rc = put_user(events, (unsigned int __user *) arg);
+               rc = put_user(events, (unsigned int __user *)arg);
                return rc;
        }