TTY: isdn, make some functions readable
authorJiri Slaby <jslaby@suse.cz>
Mon, 2 Apr 2012 11:53:52 +0000 (13:53 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 9 Apr 2012 18:16:54 +0000 (11:16 -0700)
Huh, this was a mess.

* Remove the 5 indent levels by just returning from isdn_tty_try_read
  when the conditions there are not satisfied.
* Use 'continue' in loop in isdn_tty_readmodem to save 2 levels.
* Chain 'if's in isdn_tty_modem_escape.
* Use 'continue' in loop in isdn_tty_carrier_timeout to save 1 level.

Better to look at this patch with -w -b.

Signed-off-by: Jiri Slaby <jslaby@suse.cz>
Cc: Karsten Keil <isdn@linux-pingi.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/isdn/i4l/isdn_tty.c

index 1ff3072..74b0518 100644 (file)
@@ -65,49 +65,54 @@ isdn_tty_try_read(modem_info *info, struct sk_buff *skb)
        struct tty_struct *tty;
        char last;
 
-       if (info->online) {
-               if ((tty = info->tty)) {
-                       if (info->mcr & UART_MCR_RTS) {
-                               len = skb->len
+       if (!info->online)
+               return 0;
+
+       tty = info->tty;
+       if (!tty)
+               return 0;
+
+       if (!(info->mcr & UART_MCR_RTS))
+               return 0;
+
+       len = skb->len
 #ifdef CONFIG_ISDN_AUDIO
-                                       + ISDN_AUDIO_SKB_DLECOUNT(skb)
+               + ISDN_AUDIO_SKB_DLECOUNT(skb)
 #endif
-                                       ;
+               ;
+
+       c = tty_buffer_request_room(tty, len);
+       if (c < len)
+               return 0;
 
-                               c = tty_buffer_request_room(tty, len);
-                               if (c >= len) {
-#ifdef CONFIG_ISDN_AUDIO
-                                       if (ISDN_AUDIO_SKB_DLECOUNT(skb)) {
-                                               int l = skb->len;
-                                               unsigned char *dp = skb->data;
-                                               while (--l) {
-                                                       if (*dp == DLE)
-                                                               tty_insert_flip_char(tty, DLE, 0);
-                                                       tty_insert_flip_char(tty, *dp++, 0);
-                                               }
-                                               if (*dp == DLE)
-                                                       tty_insert_flip_char(tty, DLE, 0);
-                                               last = *dp;
-                                       } else {
-#endif
-                                               if (len > 1)
-                                                       tty_insert_flip_string(tty, skb->data, len - 1);
-                                               last = skb->data[len - 1];
 #ifdef CONFIG_ISDN_AUDIO
-                                       }
+       if (ISDN_AUDIO_SKB_DLECOUNT(skb)) {
+               int l = skb->len;
+               unsigned char *dp = skb->data;
+               while (--l) {
+                       if (*dp == DLE)
+                               tty_insert_flip_char(tty, DLE, 0);
+                       tty_insert_flip_char(tty, *dp++, 0);
+               }
+               if (*dp == DLE)
+                       tty_insert_flip_char(tty, DLE, 0);
+               last = *dp;
+       } else {
 #endif
-                                       if (info->emu.mdmreg[REG_CPPP] & BIT_CPPP)
-                                               tty_insert_flip_char(tty, last, 0xFF);
-                                       else
-                                               tty_insert_flip_char(tty, last, TTY_NORMAL);
-                                       tty_flip_buffer_push(tty);
-                                       kfree_skb(skb);
-                                       return 1;
-                               }
-                       }
-               }
+               if (len > 1)
+                       tty_insert_flip_string(tty, skb->data, len - 1);
+               last = skb->data[len - 1];
+#ifdef CONFIG_ISDN_AUDIO
        }
-       return 0;
+#endif
+       if (info->emu.mdmreg[REG_CPPP] & BIT_CPPP)
+               tty_insert_flip_char(tty, last, 0xFF);
+       else
+               tty_insert_flip_char(tty, last, TTY_NORMAL);
+       tty_flip_buffer_push(tty);
+       kfree_skb(skb);
+
+       return 1;
 }
 
 /* isdn_tty_readmodem() is called periodically from within timer-interrupt.
@@ -125,35 +130,39 @@ isdn_tty_readmodem(void)
        modem_info *info;
 
        for (i = 0; i < ISDN_MAX_CHANNELS; i++) {
-               if ((midx = dev->m_idx[i]) >= 0) {
-                       info = &dev->mdm.info[midx];
-                       if (info->online) {
-                               r = 0;
+               midx = dev->m_idx[i];
+               if (midx < 0)
+                       continue;
+
+               info = &dev->mdm.info[midx];
+               if (!info->online)
+                       continue;
+
+               r = 0;
 #ifdef CONFIG_ISDN_AUDIO
-                               isdn_audio_eval_dtmf(info);
-                               if ((info->vonline & 1) && (info->emu.vpar[1]))
-                                       isdn_audio_eval_silence(info);
-#endif
-                               if ((tty = info->tty)) {
-                                       if (info->mcr & UART_MCR_RTS) {
-                                               /* CISCO AsyncPPP Hack */
-                                               if (!(info->emu.mdmreg[REG_CPPP] & BIT_CPPP))
-                                                       r = isdn_readbchan_tty(info->isdn_driver, info->isdn_channel, tty, 0);
-                                               else
-                                                       r = isdn_readbchan_tty(info->isdn_driver, info->isdn_channel, tty, 1);
-                                               if (r)
-                                                       tty_flip_buffer_push(tty);
-                                       } else
-                                               r = 1;
-                               } else
-                                       r = 1;
-                               if (r) {
-                                       info->rcvsched = 0;
-                                       resched = 1;
-                               } else
-                                       info->rcvsched = 1;
-                       }
-               }
+               isdn_audio_eval_dtmf(info);
+               if ((info->vonline & 1) && (info->emu.vpar[1]))
+                       isdn_audio_eval_silence(info);
+#endif
+               tty = info->tty;
+               if (tty) {
+                       if (info->mcr & UART_MCR_RTS) {
+                               /* CISCO AsyncPPP Hack */
+                               if (!(info->emu.mdmreg[REG_CPPP] & BIT_CPPP))
+                                       r = isdn_readbchan_tty(info->isdn_driver, info->isdn_channel, tty, 0);
+                               else
+                                       r = isdn_readbchan_tty(info->isdn_driver, info->isdn_channel, tty, 1);
+                               if (r)
+                                       tty_flip_buffer_push(tty);
+                       } else
+                               r = 1;
+               } else
+                       r = 1;
+               if (r) {
+                       info->rcvsched = 0;
+                       resched = 1;
+               } else
+                       info->rcvsched = 1;
        }
        if (!resched)
                isdn_timer_ctrl(ISDN_TIMER_MODEMREAD, 0);
@@ -3769,19 +3778,19 @@ isdn_tty_modem_escape(void)
        int midx;
 
        for (i = 0; i < ISDN_MAX_CHANNELS; i++)
-               if (USG_MODEM(dev->usage[i]))
-                       if ((midx = dev->m_idx[i]) >= 0) {
-                               modem_info *info = &dev->mdm.info[midx];
-                               if (info->online) {
-                                       ton = 1;
-                                       if ((info->emu.pluscount == 3) &&
-                                           time_after(jiffies , info->emu.lastplus + PLUSWAIT2)) {
-                                               info->emu.pluscount = 0;
-                                               info->online = 0;
-                                               isdn_tty_modem_result(RESULT_OK, info);
-                                       }
+               if (USG_MODEM(dev->usage[i]) && (midx = dev->m_idx[i]) >= 0) {
+                       modem_info *info = &dev->mdm.info[midx];
+                       if (info->online) {
+                               ton = 1;
+                               if ((info->emu.pluscount == 3) &&
+                                   time_after(jiffies,
+                                           info->emu.lastplus + PLUSWAIT2)) {
+                                       info->emu.pluscount = 0;
+                                       info->online = 0;
+                                       isdn_tty_modem_result(RESULT_OK, info);
                                }
                        }
+               }
        isdn_timer_ctrl(ISDN_TIMER_MODEMPLUS, ton);
 }
 
@@ -3839,15 +3848,14 @@ isdn_tty_carrier_timeout(void)
 
        for (i = 0; i < ISDN_MAX_CHANNELS; i++) {
                modem_info *info = &dev->mdm.info[i];
-               if (info->dialing) {
-                       if (info->emu.carrierwait++ > info->emu.mdmreg[REG_WAITC]) {
-                               info->dialing = 0;
-                               isdn_tty_modem_result(RESULT_NO_CARRIER, info);
-                               isdn_tty_modem_hup(info, 1);
-                       }
-                       else
-                               ton = 1;
-               }
+               if (!info->dialing)
+                       continue;
+               if (info->emu.carrierwait++ > info->emu.mdmreg[REG_WAITC]) {
+                       info->dialing = 0;
+                       isdn_tty_modem_result(RESULT_NO_CARRIER, info);
+                       isdn_tty_modem_hup(info, 1);
+               } else
+                       ton = 1;
        }
        isdn_timer_ctrl(ISDN_TIMER_CARRIER, ton);
 }