diff options
Diffstat (limited to 'drivers/usb/serial/option.c')
-rw-r--r-- | drivers/usb/serial/option.c | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/drivers/usb/serial/option.c b/drivers/usb/serial/option.c index 130afbbd3fca..ced9f32b29d9 100644 --- a/drivers/usb/serial/option.c +++ b/drivers/usb/serial/option.c | |||
@@ -59,7 +59,7 @@ static int option_chars_in_buffer(struct usb_serial_port *port); | |||
59 | static int option_ioctl(struct usb_serial_port *port, struct file *file, | 59 | static int option_ioctl(struct usb_serial_port *port, struct file *file, |
60 | unsigned int cmd, unsigned long arg); | 60 | unsigned int cmd, unsigned long arg); |
61 | static void option_set_termios(struct usb_serial_port *port, | 61 | static void option_set_termios(struct usb_serial_port *port, |
62 | struct termios *old); | 62 | struct ktermios *old); |
63 | static void option_break_ctl(struct usb_serial_port *port, int break_state); | 63 | static void option_break_ctl(struct usb_serial_port *port, int break_state); |
64 | static int option_tiocmget(struct usb_serial_port *port, struct file *file); | 64 | static int option_tiocmget(struct usb_serial_port *port, struct file *file); |
65 | static int option_tiocmset(struct usb_serial_port *port, struct file *file, | 65 | static int option_tiocmset(struct usb_serial_port *port, struct file *file, |
@@ -78,7 +78,9 @@ static int option_send_setup(struct usb_serial_port *port); | |||
78 | #define OPTION_PRODUCT_FUSION2 0x6300 | 78 | #define OPTION_PRODUCT_FUSION2 0x6300 |
79 | #define OPTION_PRODUCT_COBRA 0x6500 | 79 | #define OPTION_PRODUCT_COBRA 0x6500 |
80 | #define OPTION_PRODUCT_COBRA2 0x6600 | 80 | #define OPTION_PRODUCT_COBRA2 0x6600 |
81 | #define OPTION_PRODUCT_GTMAX36 0x6701 | ||
81 | #define HUAWEI_PRODUCT_E600 0x1001 | 82 | #define HUAWEI_PRODUCT_E600 0x1001 |
83 | #define HUAWEI_PRODUCT_E220 0x1003 | ||
82 | #define AUDIOVOX_PRODUCT_AIRCARD 0x0112 | 84 | #define AUDIOVOX_PRODUCT_AIRCARD 0x0112 |
83 | #define NOVATELWIRELESS_PRODUCT_U740 0x1400 | 85 | #define NOVATELWIRELESS_PRODUCT_U740 0x1400 |
84 | #define ANYDATA_PRODUCT_ID 0x6501 | 86 | #define ANYDATA_PRODUCT_ID 0x6501 |
@@ -89,7 +91,9 @@ static struct usb_device_id option_ids[] = { | |||
89 | { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_FUSION2) }, | 91 | { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_FUSION2) }, |
90 | { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_COBRA) }, | 92 | { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_COBRA) }, |
91 | { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_COBRA2) }, | 93 | { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_COBRA2) }, |
94 | { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_GTMAX36) }, | ||
92 | { USB_DEVICE(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E600) }, | 95 | { USB_DEVICE(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E600) }, |
96 | { USB_DEVICE(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E220) }, | ||
93 | { USB_DEVICE(AUDIOVOX_VENDOR_ID, AUDIOVOX_PRODUCT_AIRCARD) }, | 97 | { USB_DEVICE(AUDIOVOX_VENDOR_ID, AUDIOVOX_PRODUCT_AIRCARD) }, |
94 | { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID,NOVATELWIRELESS_PRODUCT_U740) }, | 98 | { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID,NOVATELWIRELESS_PRODUCT_U740) }, |
95 | { USB_DEVICE(ANYDATA_VENDOR_ID, ANYDATA_PRODUCT_ID) }, | 99 | { USB_DEVICE(ANYDATA_VENDOR_ID, ANYDATA_PRODUCT_ID) }, |
@@ -102,7 +106,9 @@ static struct usb_device_id option_ids1[] = { | |||
102 | { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_FUSION2) }, | 106 | { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_FUSION2) }, |
103 | { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_COBRA) }, | 107 | { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_COBRA) }, |
104 | { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_COBRA2) }, | 108 | { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_COBRA2) }, |
109 | { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_GTMAX36) }, | ||
105 | { USB_DEVICE(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E600) }, | 110 | { USB_DEVICE(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E600) }, |
111 | { USB_DEVICE(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E220) }, | ||
106 | { USB_DEVICE(AUDIOVOX_VENDOR_ID, AUDIOVOX_PRODUCT_AIRCARD) }, | 112 | { USB_DEVICE(AUDIOVOX_VENDOR_ID, AUDIOVOX_PRODUCT_AIRCARD) }, |
107 | { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID,NOVATELWIRELESS_PRODUCT_U740) }, | 113 | { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID,NOVATELWIRELESS_PRODUCT_U740) }, |
108 | { USB_DEVICE(ANYDATA_VENDOR_ID, ANYDATA_PRODUCT_ID) }, | 114 | { USB_DEVICE(ANYDATA_VENDOR_ID, ANYDATA_PRODUCT_ID) }, |
@@ -129,6 +135,7 @@ static struct usb_serial_driver option_1port_device = { | |||
129 | .name = "option1", | 135 | .name = "option1", |
130 | }, | 136 | }, |
131 | .description = "GSM modem (1-port)", | 137 | .description = "GSM modem (1-port)", |
138 | .usb_driver = &option_driver, | ||
132 | .id_table = option_ids1, | 139 | .id_table = option_ids1, |
133 | .num_interrupt_in = NUM_DONT_CARE, | 140 | .num_interrupt_in = NUM_DONT_CARE, |
134 | .num_bulk_in = NUM_DONT_CARE, | 141 | .num_bulk_in = NUM_DONT_CARE, |
@@ -230,7 +237,7 @@ static void option_break_ctl(struct usb_serial_port *port, int break_state) | |||
230 | } | 237 | } |
231 | 238 | ||
232 | static void option_set_termios(struct usb_serial_port *port, | 239 | static void option_set_termios(struct usb_serial_port *port, |
233 | struct termios *old_termios) | 240 | struct ktermios *old_termios) |
234 | { | 241 | { |
235 | dbg("%s", __FUNCTION__); | 242 | dbg("%s", __FUNCTION__); |
236 | 243 | ||
@@ -622,6 +629,9 @@ static int option_send_setup(struct usb_serial_port *port) | |||
622 | 629 | ||
623 | dbg("%s", __FUNCTION__); | 630 | dbg("%s", __FUNCTION__); |
624 | 631 | ||
632 | if (port->number != 0) | ||
633 | return 0; | ||
634 | |||
625 | portdata = usb_get_serial_port_data(port); | 635 | portdata = usb_get_serial_port_data(port); |
626 | 636 | ||
627 | if (port->tty) { | 637 | if (port->tty) { |