Modify qt_status_change_check() and delete qt_status_change().

Signed-off-by: YAMANE Toshiaki <yamaneto...@gmail.com>
---
 drivers/staging/serqt_usb2/serqt_usb2.c |   53 +++++++++++++------------------
 1 file changed, 22 insertions(+), 31 deletions(-)

diff --git a/drivers/staging/serqt_usb2/serqt_usb2.c 
b/drivers/staging/serqt_usb2/serqt_usb2.c
index f68a855..1b3e995 100644
--- a/drivers/staging/serqt_usb2/serqt_usb2.c
+++ b/drivers/staging/serqt_usb2/serqt_usb2.c
@@ -291,33 +291,6 @@ static void qt_interrupt_callback(struct urb *urb)
        /* FIXME */
 }
 
-static int qt_status_change(unsigned int limit,
-                           unsigned char *data,
-                           int i,
-                           struct quatech_port *qt_port,
-                           struct usb_serial_port *port)
-{
-       void (*fn)(struct quatech_port *, unsigned char);
-
-       if (0x00 == data[i + 2]) {
-               dev_dbg(&port->dev, "Line status status.\n");
-               fn = ProcessLineStatus;
-       } else {
-               dev_dbg(&port->dev, "Modem status status.\n");
-               fn = ProcessModemStatus;
-       }
-
-       if (i > limit) {
-               dev_dbg(&port->dev,
-                       "Illegal escape seuences in received data\n");
-               return 0;
-       }
-
-       (*fn)(qt_port, data[i + 3]);
-
-       return 1;
-}
-
 static void qt_status_change_check(struct tty_struct *tty,
                                   struct urb *urb,
                                   struct quatech_port *qt_port,
@@ -334,11 +307,29 @@ static void qt_status_change_check(struct tty_struct *tty,
                        flag = 0;
                        switch (data[i + 2]) {
                        case 0x00:
+                               if (i > (RxCount - 4)) {
+                                       dev_dbg(&port->dev,
+                                               "Illegal escape seuences in 
received data\n");
+                                       break;
+                               }
+
+                               ProcessLineStatus(qt_port, data[i + 3]);
+
+                               i += 3;
+                               flag = 1;
+                               break;
+
                        case 0x01:
-                               flag = qt_status_change((RxCount - 4), data, i,
-                                                       qt_port, port);
-                               if (flag == 1)
-                                       i += 3;
+                               if (i > (RxCount - 4)) {
+                                       dev_dbg(&port->dev,
+                                               "Illegal escape seuences in 
received data\n");
+                                       break;
+                               }
+
+                               ProcessModemStatus(qt_port, data[i + 3]);
+
+                               i += 3;
+                               flag = 1;
                                break;
 
                        case 0xff:
-- 
1.7.9.5

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to