Commit eb44da0b authored by Sarah Sharp's avatar Sarah Sharp Committed by Greg Kroah-Hartman

USB: pl2303: Cleanup FISH and SOUP macros in pl2303 driver.

Replace the FISH and SOUP macros that violated the macro guidelines in CodingStyle.
Turn them into function calls with clearer variable names.
Signed-off-by: default avatarSarah Sharp <saharabeara@gmail.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
parent caf29f62
...@@ -312,6 +312,28 @@ static unsigned int pl2303_buf_get(struct pl2303_buf *pb, char *buf, ...@@ -312,6 +312,28 @@ static unsigned int pl2303_buf_get(struct pl2303_buf *pb, char *buf,
return count; return count;
} }
static int pl2303_vendor_read(__u16 value, __u16 index,
struct usb_serial *serial, unsigned char *buf)
{
int res = usb_control_msg(serial->dev, usb_rcvctrlpipe(serial->dev, 0),
VENDOR_READ_REQUEST, VENDOR_READ_REQUEST_TYPE,
value, index, buf, 1, 100);
dbg("0x%x:0x%x:0x%x:0x%x %d - %x", VENDOR_READ_REQUEST_TYPE,
VENDOR_READ_REQUEST, value, index, res, buf[0]);
return res;
}
static int pl2303_vendor_write(__u16 value, __u16 index,
struct usb_serial *serial)
{
int res = usb_control_msg(serial->dev, usb_sndctrlpipe(serial->dev, 0),
VENDOR_WRITE_REQUEST, VENDOR_WRITE_REQUEST_TYPE,
value, index, NULL, 0, 100);
dbg("0x%x:0x%x:0x%x:0x%x %d", VENDOR_WRITE_REQUEST_TYPE,
VENDOR_WRITE_REQUEST, value, index, res);
return res;
}
static int pl2303_startup(struct usb_serial *serial) static int pl2303_startup(struct usb_serial *serial)
{ {
struct pl2303_private *priv; struct pl2303_private *priv;
...@@ -584,24 +606,12 @@ static void pl2303_set_termios(struct usb_serial_port *port, ...@@ -584,24 +606,12 @@ static void pl2303_set_termios(struct usb_serial_port *port,
buf[0], buf[1], buf[2], buf[3], buf[4], buf[5], buf[6]); buf[0], buf[1], buf[2], buf[3], buf[4], buf[5], buf[6]);
if (cflag & CRTSCTS) { if (cflag & CRTSCTS) {
__u16 index;
if (priv->type == HX) if (priv->type == HX)
index = 0x61; pl2303_vendor_write(0x0, 0x61, serial);
else else
index = 0x41; pl2303_vendor_write(0x0, 0x41, serial);
i = usb_control_msg(serial->dev,
usb_sndctrlpipe(serial->dev, 0),
VENDOR_WRITE_REQUEST,
VENDOR_WRITE_REQUEST_TYPE,
0x0, index, NULL, 0, 100);
dbg("0x40:0x1:0x0:0x%x %d", index, i);
} else { } else {
i = usb_control_msg(serial->dev, pl2303_vendor_write(0x0, 0x0, serial);
usb_sndctrlpipe(serial->dev, 0),
VENDOR_WRITE_REQUEST,
VENDOR_WRITE_REQUEST_TYPE,
0x0, 0x0, NULL, 0, 100);
dbg ("0x40:0x1:0x0:0x0 %d", i);
} }
/* FIXME: Need to read back resulting baud rate */ /* FIXME: Need to read back resulting baud rate */
...@@ -694,35 +704,25 @@ static int pl2303_open(struct usb_serial_port *port, struct file *filp) ...@@ -694,35 +704,25 @@ static int pl2303_open(struct usb_serial_port *port, struct file *filp)
if (buf==NULL) if (buf==NULL)
return -ENOMEM; return -ENOMEM;
#define FISH(a,b,c,d) \ pl2303_vendor_read(0x8484, 0, serial, buf);
result=usb_control_msg(serial->dev, usb_rcvctrlpipe(serial->dev,0), \ pl2303_vendor_write(0x0404, 0, serial);
b, a, c, d, buf, 1, 100); \ pl2303_vendor_read(0x8484, 0, serial, buf);
dbg("0x%x:0x%x:0x%x:0x%x %d - %x",a,b,c,d,result,buf[0]); pl2303_vendor_read(0x8383, 0, serial, buf);
pl2303_vendor_read(0x8484, 0, serial, buf);
#define SOUP(a,b,c,d) \ pl2303_vendor_write(0x0404, 1, serial);
result=usb_control_msg(serial->dev, usb_sndctrlpipe(serial->dev,0), \ pl2303_vendor_read(0x8484, 0, serial, buf);
b, a, c, d, NULL, 0, 100); \ pl2303_vendor_read(0x8383, 0, serial, buf);
dbg("0x%x:0x%x:0x%x:0x%x %d",a,b,c,d,result); pl2303_vendor_write(0, 1, serial);
pl2303_vendor_write(1, 0, serial);
FISH (VENDOR_READ_REQUEST_TYPE, VENDOR_READ_REQUEST, 0x8484, 0);
SOUP (VENDOR_WRITE_REQUEST_TYPE, VENDOR_WRITE_REQUEST, 0x0404, 0);
FISH (VENDOR_READ_REQUEST_TYPE, VENDOR_READ_REQUEST, 0x8484, 0);
FISH (VENDOR_READ_REQUEST_TYPE, VENDOR_READ_REQUEST, 0x8383, 0);
FISH (VENDOR_READ_REQUEST_TYPE, VENDOR_READ_REQUEST, 0x8484, 0);
SOUP (VENDOR_WRITE_REQUEST_TYPE, VENDOR_WRITE_REQUEST, 0x0404, 1);
FISH (VENDOR_READ_REQUEST_TYPE, VENDOR_READ_REQUEST, 0x8484, 0);
FISH (VENDOR_READ_REQUEST_TYPE, VENDOR_READ_REQUEST, 0x8383, 0);
SOUP (VENDOR_WRITE_REQUEST_TYPE, VENDOR_WRITE_REQUEST, 0, 1);
SOUP (VENDOR_WRITE_REQUEST_TYPE, VENDOR_WRITE_REQUEST, 1, 0);
if (priv->type == HX) { if (priv->type == HX) {
/* HX chip */ /* HX chip */
SOUP (VENDOR_WRITE_REQUEST_TYPE, VENDOR_WRITE_REQUEST, 2, 0x44); pl2303_vendor_write(2, 0x44, serial);
/* reset upstream data pipes */ /* reset upstream data pipes */
SOUP (VENDOR_WRITE_REQUEST_TYPE, VENDOR_WRITE_REQUEST, 8, 0); pl2303_vendor_write(8, 0, serial);
SOUP (VENDOR_WRITE_REQUEST_TYPE, VENDOR_WRITE_REQUEST, 9, 0); pl2303_vendor_write(9, 0, serial);
} else { } else {
SOUP (VENDOR_WRITE_REQUEST_TYPE, VENDOR_WRITE_REQUEST, 2, 0x24); pl2303_vendor_write(2, 0x24, serial);
} }
kfree(buf); kfree(buf);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment