dect
/
linux-2.6
Archived
13
0
Fork 0

staging/serqt_usb2: Refactor qt_status_change_check() in serqt_usb2.c

Modify qt_status_change_check() and delete qt_status_change().

Signed-off-by: YAMANE Toshiaki <yamanetoshi@gmail.com>
Acked-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
YAMANE Toshiaki 2012-11-17 05:19:22 +09:00 committed by Greg Kroah-Hartman
parent 27cf2d1b87
commit 9d36976fad
1 changed files with 22 additions and 31 deletions

View File

@ -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: