diff options
author | Bjørn Mork <bjorn@mork.no> | 2014-04-25 12:49:20 -0400 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2014-04-25 14:35:04 -0400 |
commit | 34f972d6156fe9eea2ab7bb418c71f9d1d5c8e7b (patch) | |
tree | 31b9587194c12d35c242c518f9d742c71318bde1 /drivers/usb/serial/option.c | |
parent | dd6b48ecec2ea7d15f28d5e5474388681899a5e1 (diff) |
usb: option: add and update a number of CMOTech devices
A number of older CMOTech modems are based on Qualcomm
chips. The blacklisted interfaces are QMI/wwan.
Reported-by: Lars Melin <larsm17@gmail.com>
Cc: <stable@vger.kernel.org>
Signed-off-by: Bjørn Mork <bjorn@mork.no>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/usb/serial/option.c')
-rw-r--r-- | drivers/usb/serial/option.c | 74 |
1 files changed, 70 insertions, 4 deletions
diff --git a/drivers/usb/serial/option.c b/drivers/usb/serial/option.c index 776c86f3c091..f213ee978516 100644 --- a/drivers/usb/serial/option.c +++ b/drivers/usb/serial/option.c | |||
@@ -234,8 +234,31 @@ static void option_instat_callback(struct urb *urb); | |||
234 | #define QUALCOMM_VENDOR_ID 0x05C6 | 234 | #define QUALCOMM_VENDOR_ID 0x05C6 |
235 | 235 | ||
236 | #define CMOTECH_VENDOR_ID 0x16d8 | 236 | #define CMOTECH_VENDOR_ID 0x16d8 |
237 | #define CMOTECH_PRODUCT_6008 0x6008 | 237 | #define CMOTECH_PRODUCT_6001 0x6001 |
238 | #define CMOTECH_PRODUCT_6280 0x6280 | 238 | #define CMOTECH_PRODUCT_CMU_300 0x6002 |
239 | #define CMOTECH_PRODUCT_6003 0x6003 | ||
240 | #define CMOTECH_PRODUCT_6004 0x6004 | ||
241 | #define CMOTECH_PRODUCT_6005 0x6005 | ||
242 | #define CMOTECH_PRODUCT_CGU_628A 0x6006 | ||
243 | #define CMOTECH_PRODUCT_CHE_628S 0x6007 | ||
244 | #define CMOTECH_PRODUCT_CMU_301 0x6008 | ||
245 | #define CMOTECH_PRODUCT_CHU_628 0x6280 | ||
246 | #define CMOTECH_PRODUCT_CHU_628S 0x6281 | ||
247 | #define CMOTECH_PRODUCT_CDU_680 0x6803 | ||
248 | #define CMOTECH_PRODUCT_CDU_685A 0x6804 | ||
249 | #define CMOTECH_PRODUCT_CHU_720S 0x7001 | ||
250 | #define CMOTECH_PRODUCT_7002 0x7002 | ||
251 | #define CMOTECH_PRODUCT_CHU_629K 0x7003 | ||
252 | #define CMOTECH_PRODUCT_7004 0x7004 | ||
253 | #define CMOTECH_PRODUCT_7005 0x7005 | ||
254 | #define CMOTECH_PRODUCT_CGU_629 0x7006 | ||
255 | #define CMOTECH_PRODUCT_CHU_629S 0x700a | ||
256 | #define CMOTECH_PRODUCT_CHU_720I 0x7211 | ||
257 | #define CMOTECH_PRODUCT_7212 0x7212 | ||
258 | #define CMOTECH_PRODUCT_7213 0x7213 | ||
259 | #define CMOTECH_PRODUCT_7251 0x7251 | ||
260 | #define CMOTECH_PRODUCT_7252 0x7252 | ||
261 | #define CMOTECH_PRODUCT_7253 0x7253 | ||
239 | 262 | ||
240 | #define TELIT_VENDOR_ID 0x1bc7 | 263 | #define TELIT_VENDOR_ID 0x1bc7 |
241 | #define TELIT_PRODUCT_UC864E 0x1003 | 264 | #define TELIT_PRODUCT_UC864E 0x1003 |
@@ -504,6 +527,10 @@ static const struct option_blacklist_info huawei_cdc12_blacklist = { | |||
504 | .reserved = BIT(1) | BIT(2), | 527 | .reserved = BIT(1) | BIT(2), |
505 | }; | 528 | }; |
506 | 529 | ||
530 | static const struct option_blacklist_info net_intf0_blacklist = { | ||
531 | .reserved = BIT(0), | ||
532 | }; | ||
533 | |||
507 | static const struct option_blacklist_info net_intf1_blacklist = { | 534 | static const struct option_blacklist_info net_intf1_blacklist = { |
508 | .reserved = BIT(1), | 535 | .reserved = BIT(1), |
509 | }; | 536 | }; |
@@ -1037,8 +1064,47 @@ static const struct usb_device_id option_ids[] = { | |||
1037 | { USB_DEVICE(QUALCOMM_VENDOR_ID, 0x6613)}, /* Onda H600/ZTE MF330 */ | 1064 | { USB_DEVICE(QUALCOMM_VENDOR_ID, 0x6613)}, /* Onda H600/ZTE MF330 */ |
1038 | { USB_DEVICE(QUALCOMM_VENDOR_ID, 0x0023)}, /* ONYX 3G device */ | 1065 | { USB_DEVICE(QUALCOMM_VENDOR_ID, 0x0023)}, /* ONYX 3G device */ |
1039 | { USB_DEVICE(QUALCOMM_VENDOR_ID, 0x9000)}, /* SIMCom SIM5218 */ | 1066 | { USB_DEVICE(QUALCOMM_VENDOR_ID, 0x9000)}, /* SIMCom SIM5218 */ |
1040 | { USB_DEVICE(CMOTECH_VENDOR_ID, CMOTECH_PRODUCT_6280) }, /* BP3-USB & BP3-EXT HSDPA */ | 1067 | { USB_DEVICE(CMOTECH_VENDOR_ID, CMOTECH_PRODUCT_6001) }, |
1041 | { USB_DEVICE(CMOTECH_VENDOR_ID, CMOTECH_PRODUCT_6008) }, | 1068 | { USB_DEVICE(CMOTECH_VENDOR_ID, CMOTECH_PRODUCT_CMU_300) }, |
1069 | { USB_DEVICE(CMOTECH_VENDOR_ID, CMOTECH_PRODUCT_6003), | ||
1070 | .driver_info = (kernel_ulong_t)&net_intf0_blacklist }, | ||
1071 | { USB_DEVICE(CMOTECH_VENDOR_ID, CMOTECH_PRODUCT_6004) }, | ||
1072 | { USB_DEVICE(CMOTECH_VENDOR_ID, CMOTECH_PRODUCT_6005) }, | ||
1073 | { USB_DEVICE(CMOTECH_VENDOR_ID, CMOTECH_PRODUCT_CGU_628A) }, | ||
1074 | { USB_DEVICE(CMOTECH_VENDOR_ID, CMOTECH_PRODUCT_CHE_628S), | ||
1075 | .driver_info = (kernel_ulong_t)&net_intf0_blacklist }, | ||
1076 | { USB_DEVICE(CMOTECH_VENDOR_ID, CMOTECH_PRODUCT_CMU_301), | ||
1077 | .driver_info = (kernel_ulong_t)&net_intf0_blacklist }, | ||
1078 | { USB_DEVICE(CMOTECH_VENDOR_ID, CMOTECH_PRODUCT_CHU_628), | ||
1079 | .driver_info = (kernel_ulong_t)&net_intf0_blacklist }, | ||
1080 | { USB_DEVICE(CMOTECH_VENDOR_ID, CMOTECH_PRODUCT_CHU_628S) }, | ||
1081 | { USB_DEVICE(CMOTECH_VENDOR_ID, CMOTECH_PRODUCT_CDU_680) }, | ||
1082 | { USB_DEVICE(CMOTECH_VENDOR_ID, CMOTECH_PRODUCT_CDU_685A) }, | ||
1083 | { USB_DEVICE(CMOTECH_VENDOR_ID, CMOTECH_PRODUCT_CHU_720S), | ||
1084 | .driver_info = (kernel_ulong_t)&net_intf0_blacklist }, | ||
1085 | { USB_DEVICE(CMOTECH_VENDOR_ID, CMOTECH_PRODUCT_7002), | ||
1086 | .driver_info = (kernel_ulong_t)&net_intf0_blacklist }, | ||
1087 | { USB_DEVICE(CMOTECH_VENDOR_ID, CMOTECH_PRODUCT_CHU_629K), | ||
1088 | .driver_info = (kernel_ulong_t)&net_intf4_blacklist }, | ||
1089 | { USB_DEVICE(CMOTECH_VENDOR_ID, CMOTECH_PRODUCT_7004), | ||
1090 | .driver_info = (kernel_ulong_t)&net_intf3_blacklist }, | ||
1091 | { USB_DEVICE(CMOTECH_VENDOR_ID, CMOTECH_PRODUCT_7005) }, | ||
1092 | { USB_DEVICE(CMOTECH_VENDOR_ID, CMOTECH_PRODUCT_CGU_629), | ||
1093 | .driver_info = (kernel_ulong_t)&net_intf5_blacklist }, | ||
1094 | { USB_DEVICE(CMOTECH_VENDOR_ID, CMOTECH_PRODUCT_CHU_629S), | ||
1095 | .driver_info = (kernel_ulong_t)&net_intf4_blacklist }, | ||
1096 | { USB_DEVICE(CMOTECH_VENDOR_ID, CMOTECH_PRODUCT_CHU_720I), | ||
1097 | .driver_info = (kernel_ulong_t)&net_intf0_blacklist }, | ||
1098 | { USB_DEVICE(CMOTECH_VENDOR_ID, CMOTECH_PRODUCT_7212), | ||
1099 | .driver_info = (kernel_ulong_t)&net_intf0_blacklist }, | ||
1100 | { USB_DEVICE(CMOTECH_VENDOR_ID, CMOTECH_PRODUCT_7213), | ||
1101 | .driver_info = (kernel_ulong_t)&net_intf0_blacklist }, | ||
1102 | { USB_DEVICE(CMOTECH_VENDOR_ID, CMOTECH_PRODUCT_7251), | ||
1103 | .driver_info = (kernel_ulong_t)&net_intf1_blacklist }, | ||
1104 | { USB_DEVICE(CMOTECH_VENDOR_ID, CMOTECH_PRODUCT_7252), | ||
1105 | .driver_info = (kernel_ulong_t)&net_intf1_blacklist }, | ||
1106 | { USB_DEVICE(CMOTECH_VENDOR_ID, CMOTECH_PRODUCT_7253), | ||
1107 | .driver_info = (kernel_ulong_t)&net_intf1_blacklist }, | ||
1042 | { USB_DEVICE(TELIT_VENDOR_ID, TELIT_PRODUCT_UC864E) }, | 1108 | { USB_DEVICE(TELIT_VENDOR_ID, TELIT_PRODUCT_UC864E) }, |
1043 | { USB_DEVICE(TELIT_VENDOR_ID, TELIT_PRODUCT_UC864G) }, | 1109 | { USB_DEVICE(TELIT_VENDOR_ID, TELIT_PRODUCT_UC864G) }, |
1044 | { USB_DEVICE(TELIT_VENDOR_ID, TELIT_PRODUCT_CC864_DUAL) }, | 1110 | { USB_DEVICE(TELIT_VENDOR_ID, TELIT_PRODUCT_CC864_DUAL) }, |