diff options
Diffstat (limited to 'drivers/usb/serial/option.c')
-rw-r--r-- | drivers/usb/serial/option.c | 21 |
1 files changed, 16 insertions, 5 deletions
diff --git a/drivers/usb/serial/option.c b/drivers/usb/serial/option.c index 92d0f925d053..7716000045b7 100644 --- a/drivers/usb/serial/option.c +++ b/drivers/usb/serial/option.c | |||
@@ -25,6 +25,9 @@ | |||
25 | 2005-06-20 v0.4.1 add missing braces :-/ | 25 | 2005-06-20 v0.4.1 add missing braces :-/ |
26 | killed end-of-line whitespace | 26 | killed end-of-line whitespace |
27 | 2005-07-15 v0.4.2 rename WLAN product to FUSION, add FUSION2 | 27 | 2005-07-15 v0.4.2 rename WLAN product to FUSION, add FUSION2 |
28 | 2005-09-10 v0.4.3 added HUAWEI E600 card and Audiovox AirCard | ||
29 | 2005-09-20 v0.4.4 increased recv buffer size: the card sometimes | ||
30 | wants to send >2000 bytes. | ||
28 | 31 | ||
29 | Work sponsored by: Sigos GmbH, Germany <info@sigos.de> | 32 | Work sponsored by: Sigos GmbH, Germany <info@sigos.de> |
30 | 33 | ||
@@ -71,15 +74,21 @@ static int option_send_setup(struct usb_serial_port *port); | |||
71 | 74 | ||
72 | /* Vendor and product IDs */ | 75 | /* Vendor and product IDs */ |
73 | #define OPTION_VENDOR_ID 0x0AF0 | 76 | #define OPTION_VENDOR_ID 0x0AF0 |
77 | #define HUAWEI_VENDOR_ID 0x12D1 | ||
78 | #define AUDIOVOX_VENDOR_ID 0x0F3D | ||
74 | 79 | ||
75 | #define OPTION_PRODUCT_OLD 0x5000 | 80 | #define OPTION_PRODUCT_OLD 0x5000 |
76 | #define OPTION_PRODUCT_FUSION 0x6000 | 81 | #define OPTION_PRODUCT_FUSION 0x6000 |
77 | #define OPTION_PRODUCT_FUSION2 0x6300 | 82 | #define OPTION_PRODUCT_FUSION2 0x6300 |
83 | #define HUAWEI_PRODUCT_E600 0x1001 | ||
84 | #define AUDIOVOX_PRODUCT_AIRCARD 0x0112 | ||
78 | 85 | ||
79 | static struct usb_device_id option_ids[] = { | 86 | static struct usb_device_id option_ids[] = { |
80 | { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_OLD) }, | 87 | { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_OLD) }, |
81 | { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_FUSION) }, | 88 | { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_FUSION) }, |
82 | { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_FUSION2) }, | 89 | { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_FUSION2) }, |
90 | { USB_DEVICE(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E600) }, | ||
91 | { USB_DEVICE(AUDIOVOX_VENDOR_ID, AUDIOVOX_PRODUCT_AIRCARD) }, | ||
83 | { } /* Terminating entry */ | 92 | { } /* Terminating entry */ |
84 | }; | 93 | }; |
85 | 94 | ||
@@ -96,10 +105,12 @@ static struct usb_driver option_driver = { | |||
96 | /* The card has three separate interfaces, wich the serial driver | 105 | /* The card has three separate interfaces, wich the serial driver |
97 | * recognizes separately, thus num_port=1. | 106 | * recognizes separately, thus num_port=1. |
98 | */ | 107 | */ |
99 | static struct usb_serial_device_type option_3port_device = { | 108 | static struct usb_serial_driver option_3port_device = { |
100 | .owner = THIS_MODULE, | 109 | .driver = { |
101 | .name = "Option 3G data card", | 110 | .owner = THIS_MODULE, |
102 | .short_name = "option", | 111 | .name = "option", |
112 | }, | ||
113 | .description = "Option 3G data card", | ||
103 | .id_table = option_ids, | 114 | .id_table = option_ids, |
104 | .num_interrupt_in = NUM_DONT_CARE, | 115 | .num_interrupt_in = NUM_DONT_CARE, |
105 | .num_bulk_in = NUM_DONT_CARE, | 116 | .num_bulk_in = NUM_DONT_CARE, |
@@ -132,7 +143,7 @@ static int debug; | |||
132 | 143 | ||
133 | #define N_IN_URB 4 | 144 | #define N_IN_URB 4 |
134 | #define N_OUT_URB 1 | 145 | #define N_OUT_URB 1 |
135 | #define IN_BUFLEN 1024 | 146 | #define IN_BUFLEN 4096 |
136 | #define OUT_BUFLEN 128 | 147 | #define OUT_BUFLEN 128 |
137 | 148 | ||
138 | struct option_port_private { | 149 | struct option_port_private { |