// SPDX-License-Identifier: GPL-2.0
/*
USB Driver for GSM modems
Copyright (C) 2005 Matthias Urlichs <smurf@smurf.noris.de>
Portions copied from the Keyspan driver by Hugh Blemings <hugh@blemings.org>
History: see the git log.
Work sponsored by: Sigos GmbH, Germany <info@sigos.de>
This driver exists because the "normal" serial driver doesn't work too well
with GSM modems. Issues:
- data loss -- one single Receive URB is not nearly enough
- nonstandard flow (Option devices) control
- controlling the baud rate doesn't make sense
This driver is named "option" because the most common device it's
used for is a PC-Card (with an internal OHCI-USB interface, behind
which the GSM interface sits), made by Option Inc.
Some of the "one port" devices actually exhibit multiple USB instances
on the USB bus. This is not a bug, these ports are used for different
device features.
*/
#define DRIVER_AUTHOR "Matthias Urlichs <smurf@smurf.noris.de>"
#define DRIVER_DESC "USB Driver for GSM modems"
#include <linux/kernel.h>
#include <linux/jiffies.h>
#include <linux/errno.h>
#include <linux/tty.h>
#include <linux/tty_flip.h>
#include <linux/slab.h>
#include <linux/module.h>
#include <linux/bitops.h>
#include <linux/usb.h>
#include <linux/usb/serial.h>
#include "usb-wwan.h"
/* Function prototypes */
static int option_probe(struct usb_serial *serial,
const struct usb_device_id *id);
static int option_attach(struct usb_serial *serial);
static void option_release(struct usb_serial *serial);
static void option_instat_callback(struct urb *urb);
/* Vendor and product IDs */
#define OPTION_VENDOR_ID 0x0AF0
#define OPTION_PRODUCT_COLT 0x5000
#define OPTION_PRODUCT_RICOLA 0x6000
#define OPTION_PRODUCT_RICOLA_LIGHT 0x6100
#define OPTION_PRODUCT_RICOLA_QUAD 0x6200
#define OPTION_PRODUCT_RICOLA_QUAD_LIGHT 0x6300
#define OPTION_PRODUCT_RICOLA_NDIS 0x6050
#define OPTION_PRODUCT_RICOLA_NDIS_LIGHT 0x6150
#define OPTION_PRODUCT_RICOLA_NDIS_QUAD 0x6250
#define OPTION_PRODUCT_RICOLA_NDIS_QUAD_LIGHT 0x6350
#define OPTION_PRODUCT_COBRA 0x6500
#define OPTION_PRODUCT_COBRA_BUS 0x6501
#define OPTION_PRODUCT_VIPER 0x6600
#define OPTION_PRODUCT_VIPER_BUS 0x6601
#define OPTION_PRODUCT_GT_MAX_READY 0x6701
#define OPTION_PRODUCT_FUJI_MODEM_LIGHT 0x6721
#define OPTION_PRODUCT_FUJI_MODEM_GT 0x6741
#define OPTION_PRODUCT_FUJI_MODEM_EX 0x6761
#define OPTION_PRODUCT_KOI_MODEM 0x6800
#define OPTION_PRODUCT_SCORPION_MODEM 0x6901
#define OPTION_PRODUCT_ETNA_MODEM 0x7001
#define OPTION_PRODUCT_ETNA_MODEM_LITE 0x7021
#define OPTION_PRODUCT_ETNA_MODEM_GT 0x7041
#define OPTION_PRODUCT_ETNA_MODEM_EX 0x7061
#define OPTION_PRODUCT_ETNA_KOI_MODEM 0x7100
#define OPTION_PRODUCT_GTM380_MODEM 0x7201
#define HUAWEI_VENDOR_ID 0x12D1
#define HUAWEI_PRODUCT_E173 0x140C
#define HUAWEI_PRODUCT_E1750 0x1406
#define HUAWEI_PRODUCT_K4505 0x1464
#define HUAWEI_PRODUCT_K3765 0x1465
#define HUAWEI_PRODUCT_K4605 0x14C6
#define HUAWEI_PRODUCT_E173S6 0x1C07
#define QUANTA_VENDOR_ID 0x0408
#define QUANTA_PRODUCT_Q101 0xEA02
#define QUANTA_PRODUCT_Q111 0xEA03
#define QUANTA_PRODUCT_GLX 0xEA04
#define QUANTA_PRODUCT_GKE 0xEA05
#define QUANTA_PRODUCT_GLE 0xEA06
#define NOVATELWIRELESS_VENDOR_ID 0x1410
/* YISO PRODUCTS */
#define YISO_VENDOR_ID 0x0EAB
#define YISO_PRODUCT_U893 0xC893
/*
* NOVATEL WIRELESS PRODUCTS
*
* Note from Novatel Wireless:
* If your Novatel modem does not work on linux, don't
* change the option module, but check our website. If
* that does not help, contact ddeschepper@nvtl.com
*/
/* MERLIN EVDO PRODUCTS */
#define NOVATELWIRELESS_PRODUCT_V640 0x1100
#define NOVATELWIRELESS_PRODUCT_V620 0x1110
#define NOVATELWIRELESS_PRODUCT_V740 0x1120
#define NOVATELWIRELESS_PRODUCT_V720 0x1130
/* MERLIN HSDPA/HSPA PRODUCTS */
#define NOVATELWIRELESS_PRODUCT_U730 0x1400
#define NOVATELWIRELESS_PRODUCT_U740 0x1410
#define NOVATELWIRELESS_PRODUCT_U870 0x1420
#define NOVATELWIRELESS_PRODUCT_XU870 0x1430
#define NOVATELWIRELESS_PRODUCT_X950D 0x1450
/* EXPEDITE PRODUCTS */
#define NOVATELWIRELESS_PRODUCT_EV620 0x2100
#define NOVATELWIRELESS_PRODUCT_ES720 0x2110
#define NOVATELWIRELESS_PRODUCT_E725 0x2120
#define NOVATELWIRELESS_PRODUCT_ES620 0x2130
#define NOVATELWIRELESS_PRODUCT_EU730 0x2400
#define NOVATELWIRELESS_PRODUCT_EU740 0x2410
#define NOVATELWIRELESS_PRODUCT_EU870D 0x2420
/* OVATION PRODUCTS */
#define NOVATELWIRELESS_PRODUCT_MC727 0x4100
#define NOVATELWIRELESS_PRODUCT_MC950D 0x4400
/*
* Note from Novatel Wireless:
* All PID in the 5xxx range are currently reserved for
* auto-install CDROMs, and should not be added to this
* module.
*
* #define NOVATELWIRELESS_PRODUCT_U727 0x5010
* #define NOVATELWIRELESS_PRODUCT_MC727_NEW 0x5100
*/
#define NOVATELWIRELESS_PRODUCT_OVMC760 0x6002
#define NOVATELWIRELESS_PRODUCT_MC780 0x6010
#define NOVATELWIRELESS_PRODUCT_EVDO_FULLSPEED 0x6000
#define NOVATELWIRELESS_PRODUCT_EVDO_HIGHSPEED 0x6001
#define NOVATELWIRELESS_PRODUCT_HSPA_FULLSPEED 0x7000
#define NOVATELWIRELESS_PRODUCT_HSPA_HIGHSPEED 0x7001
#define NOVATELWIRELESS_PRODUCT_HSPA_HIGHSPEED3 0x7003
#define NOVATELWIRELESS_PRODUCT_HSPA_HIGHSPEED4 0x7004
#define NOVATELWIRELESS_PRODUCT_HSPA_HIGHSPEED5 0x7005
#define NOVATELWIRELESS_PRODUCT_HSPA_HIGHSPEED6 0x7006
#define NOVATELWIRELESS_PRODUCT_HSPA_HIGHSPEED7 0x7007
#define NOVATELWIRELESS_PRODUCT_MC996D 0x7030
#define NOVATELWIRELESS_PRODUCT_MF3470 0x7041
#define NOVATELWIRELESS_PRODUCT_MC547 0x7042
#define NOVATELWIRELESS_PRODUCT_EVDO_EMBEDDED_FULLSPEED 0x8000
#define NOVATELWIRELESS_PRODUCT_EVDO_EMBEDDED_HIGHSPEED 0x8001
#define NOVATELWIRELESS_PRODUCT_HSPA_EMBEDDED_FULLSPEED 0x9000
#define NOVATELWIRELESS_PRODUCT_HSPA_EMBEDDED_HIGHSPEED 0x9001
#define NOVATELWIRELESS_PRODUCT_E362 0x9010
#define NOVATELWIRELESS_PRODUCT_E371 0x9011
#define NOVATELWIRELESS_PRODUCT_U620L 0x9022
#define NOVATELWIRELESS_PRODUCT_G2 0xA010
#define NOVATELWIRELESS_PRODUCT_MC551 0xB001
/* AMOI PRODUCTS */
#define AMOI_VENDOR_ID 0x1614
#define AMOI_PRODUCT_H01 0x0800
#define AMOI_PRODUCT_H01A 0x7002
#define AMOI_PRODUCT_H02 0x0802
#define AMOI_PRODUCT_SKYPEPHONE_S2 0x0407
#define DELL_VENDOR_ID 0x413C
/* Dell modems */
#define DELL_PRODUCT_5700_MINICARD 0x8114
#define DELL_PRODUCT_5500_MINICARD 0x8115
#define DELL_PRODUCT_5505_MINICARD 0x8116
#define DELL_PRODUCT_5700_EXPRESSCARD 0x8117
#define DELL_PRODUCT_5510_EXPRESSCARD 0x8118
#define DELL_PRODUCT_5700_MINICARD_SPRINT 0x8128
#define DELL_PRODUCT_5700_MINICARD_TELUS 0x8129
#define DELL_PRODUCT_5720_MINICARD_VZW 0x8133
#define DELL_PRODUCT_5720_MINICARD_SPRINT 0x8134
#define DELL_PRODUCT_5720_MINICARD_TELUS 0x8135
#define DELL_PRODUCT_5520_MINICARD_CINGULAR 0x8136
#define DELL_PRODUCT_5520_MINICARD_GENERIC_L 0x8137
#define DELL_PRODUCT_5520_MINICARD_GENERIC_I 0x8138
#define DELL_PRODUCT_5730_MINICARD_SPRINT 0x8180
#define DELL_PRODUCT_5730_MINICARD_TELUS 0x8181
#define DELL_PRODUCT_5730_MINICARD_VZW 0x8182
#define DELL_PRODUCT_5800_MINICARD_VZW 0x8195 /* Novatel E362 */
#define DELL_PRODUCT_5800_V2_MINICARD_VZW 0x8196 /* Novatel E362 */
#define DELL_PRODUCT_5804_MINICARD_ATT 0x819b /* Novatel E371 */
#define DELL_PRODUCT_5821E 0x81d7
#define DELL_PRODUCT_5821E_ESIM 0x81e0
#define DELL_PRODUCT_5829E_ESIM 0x81e4
#define DELL_PRODUCT_5829E 0x81e6
#define KYOCERA_VENDOR_ID 0x0c88
#define KYOCERA_PRODUCT_KPC650 0x17da
#define KYOCERA_PRODUCT_KPC680 0x180a
#define ANYDATA_VENDOR_ID 0x16d5
#define ANYDATA_PRODUCT_ADU_620UW 0x6202
#define ANYDATA_PRODUCT_ADU_E100A 0x6501
#define ANYDATA_PRODUCT_ADU_500A 0x6502
#define AXESSTEL_VENDOR_ID 0x1726
#define AXESSTEL_PRODUCT_MV110H 0x1000
#define BANDRICH_VENDOR_ID 0x1A8D
#define BANDRICH_PRODUCT_C100_1 0x1002
#define BANDRICH_PRODUCT_C100_2 0x1003
#define BANDRICH_PRODUCT_1004 0x1004
#define BANDRICH_PRODUCT_1005 0x1005
#define BANDRICH_PRODUCT_1006 0x1006
#define BANDRICH_PRODUCT_1007 0x1007
#de
没有合适的资源?快使用搜索试试~ 我知道了~
蜂窝模块Linux驱动文件Quectel-Linux-USB-Serial-Option-Driver-20220902
需积分: 1 5 下载量 190 浏览量
2023-03-31
16:05:39
上传
评论
收藏 5.21MB TGZ 举报
温馨提示
共1554个文件
c:432个
makefile:156个
h:139个
支持版本: v2.6.12 ········ ······ ··· v2.6.38 v2.6.39 v3.0.1 v3.0.11 v3.0.51 v3.1.1 v3.2.1 v3.2.51 v3.3.1 v3.4.1 v3.4.11 v3.4.51 v3.4.111 v3.5.1 v3.6.1 v3.7.1 v3.8.1 v3.8.11 v3.9.1 v3.9.11 v3.10.1 v3.10.11 v3.10.51 v3.11.1 v3.12.1 v3.12.11 v3.12.51 v3.13.1 v3.13.11 v3.14.1 --- v5.14.11 v5.15.1 v5.15.6 v5.15.11 v5.16.1 v5.16.11 v5.17.1 v5.17.11 v5.18.1 v5.18.5 v5.18.11 v5.19.1 v5.19.5
资源推荐
资源详情
资源评论
收起资源包目录
蜂窝模块Linux驱动文件Quectel-Linux-USB-Serial-Option-Driver-20220902 (1554个子文件)
0073335aedf8e65aa798fa3dfcb645b20f3085 48B
00e4045543d373abe84291c7d562fd48e0b26b 149B
00e67f6676b3256f80700be2c65cd419483fb7 45B
01025a4c637176a0503e5c71a0079700fc7e9a 8KB
01283d4d1593e7f6c5c450a310121ca6a4d27f 5KB
013b1ed997f5f753de43478c4d0f2aefe0c257 89B
013fca6a798a6f5f358f24c9e7038276e69f7b 86B
014e2ecd68ef6fcdf0c6c9f5e0d15a8e046c41 5KB
01eaa95cedfb124724d597ddd6340fba149729 87B
024907043124adff31167408321cdd7edbdf0c 148B
026fb14f2d69cb02a19db1f2caa2cf263fa72f 49B
02d8c0e264851800aa11beeba9e2faefc3ce39 149B
03465fe210ad6d9fc6e9118db0a24f5d5bb8fa 46B
034d2397c6c6ea3888e79aa6cd2ddb6d73202b 791B
038670363d26a799ffbba54dde281bdf5f011a 48B
0401d3137f1341929b3c3027175ac11938ca2f 4KB
0425bbf5376481bc5f9063a36223f3b1b2e43b 18KB
0436ec60e99cf0eae9e9ea7ddeaa7fe3120436 6KB
0459aec47792a72249c30014014e8a070f36d2 87B
04b0482a9947c676b5629353b789d2879bcc40 45B
04b1f6165a0ee797baced167dc0f4f9eea26b1 45B
04b95484b04f4612cd4f6849fb015e07c3fb09 149B
0562b2a9282398298786b7c55356f43faa0170 49B
05dd3fc28d4e2da9735ce0beba8d5a0097606d 45B
065e1b86b8ac9f1ff72773045d170e9aa38f17 86B
06af0173ca2137d550a97077d8720c87a7be08 49B
06b10c9e6e174506b9b05431ee2a3519549025 3KB
071974e08766454324ef4cf0bb48c49790310d 48B
07fcfc86469f1ee1fe3bfcdb8022b3afb93805 86B
08162f9484875922b2cb38eda277b64d73c634 46B
0824f4a67f412657120b6fe1afc9c0ee56ff22 149B
083bbabf875127ff69de4c309e9b6c6a797b7c 48B
08584ef4fe78f1394fc74dcce169efc2dc38ec 18KB
09338b4a5f76a5c9c1440d8f17cc17f844d08d 149B
0a542e8ec1820d60d03f5a7896843d4a6b96f6 4KB
0add59a4ec678be87df44c9e2eaec5db1bf6d0 148B
0afbbd3fca6c97b9e8c9400961b1583eca6c72 6KB
0b2d340084e0f8368c66781ee123a6afe16ad6 87B
0b878d1c648500208571b90e29dfe8f1d3001c 148B
0b9f3985fdb932d39fe357ce32eea1fdb2bc5d 86B
0cbac74a94109dc192118cd80fec1e2b26a1ad 46B
0cf536de186c0958582ce497a17426668edffa 5KB
0dfa3d2a3923d9ca9e92f99318a54ffd7d3e97 45B
0e3142c898fe95c5450737109ea54c7c1c9e69 48B
0e9e47680b74f6d0ed9cdfba8079523a90de10 45B
0ec8636e734a8fd24ad9dc8f14fb8eed6426c8 86B
0f8aed81df79bc5cea680f49b54a802c1ed189 45B
0fceefe5eea0a366534655ac9437453c62341c 48B
0fe0173236807c3178d53265da8588a01cb730 5KB
0fec5df963ee31a67652dd86716961d2fb3769 86B
103f404b3cb2320aa75fe8b77f22d5a4797c83 13KB
1084f77caa1248731a316a860b4bea9afdc58f 46B
1123e3f7818905798211548c44bf1ca33e98fb 86B
11f569aa1757e62fdac7394407331bb586f9b5 16KB
120eaf4091c05c4f279d5e703177a906074965 784B
12159223bf2209d602692230725ae1cd2ebc11 46B
1219b85b958afc460ad96de02ce986bfad5842 149B
123153b1a5439f016f2637d4f9d19f0fde3f14 16KB
124551fb56cacf50190ce9b10a7e1975701c46 16KB
12fc1cb562b7d5fd698ad62e24da73352d8606 87B
13aa298feb0be7a0e22f8181ad960e3dcd31da 86B
13fdf32f3f10a2667617876a8f57efb794cd43 86B
144b5c2a7ac2085a8de3b01d8deb92b918e9df 48B
145eb36e95eb8edba53d108238e9881674af97 45B
148c21ea40e82a6f49b58b855ed2278f53cf3a 3KB
1499d4cb7a0729d4cc7378250cb431a023dd8a 149B
15b70c4efc7893d7b60d633fc37cc999ae9ff5 16KB
15e6aae87dcaa8b1f1e827c12f6407ab14f5ec 46B
16000045b73dd632d41f1104c9696b8d715077 6KB
161ecb47f9530d759fe215c86323058fb5be6e 86B
1667a4348e6b690efe61b2bdd48a273c98ee00 45B
16ad2ca8877b0cab87d6209aa57ebc54fbaf61 149B
17b82889ca5e56eeb0c63a01c9351cf1a02612 10KB
17cfd8dd7e64831195c7de4ada670f2e4493c1 49B
17fd7e1801f7647d909eeed86eb1eb9228c095 46B
18075e5eaebac0745452e47bfcc30ca14736db 15KB
185f53447b3f0b915807376dc99867509e755c 7KB
18c43a02eccfd829d2a8f97e3bf8cd8c9ea6c0 16KB
18e92661ffab6725882876c5dcb956c66d1abe 48B
1965aa1cc015257eaf4bde8316ce10045a82a0 5KB
19c8f585927fd4fce5d19399b1d093a9ddebd6 45B
19d2a9faf278177aacf32c149fda22b00a1d83 4KB
1a0b0f4b68011a1363b09da21426e3f640e760 148B
1a9883e8695e736434564b0a38a6b38e08f92c 5KB
1abba4c3eb870ddf42b4fb8af85567d4969410 86B
1aca3a641e41af9ab0fd964bb980470a539e3d 53B
1c65f196a8b648d7de470de09881591c114575 49B
1cb5832a67acd204dd9487f975a3f1486cbf88 86B
1ce21c8a3a9032a19960a8bb7742f9b80f323f 86B
1cf587320e12ce7258887ed0a2e91438643407 46B
1dd7788c14b49b341d2169789e27ff3758b0e2 89B
1f217da0478fc2f27ef84487b2f2b85edf5660 48B
1ffd53dc7fdc4df223db85aec59b8241fead56 86B
203e7cccbdd835841b836cced5ec50f2cc62ee 150B
20e423061131316cd12912b8a868b564f59485 149B
2123371510429bea9b1845481bcd73fc36ab51 48B
2173365333c1f0478d838bef2f26220f59cc01 86B
2182e00ebbdb06063c19b1260277f30903c9ec 48B
22175f108f60b63eab8f811b96d478054bf6b7 6KB
2241c6495549b8cad445648abbfd8118199713 149B
共 1554 条
- 1
- 2
- 3
- 4
- 5
- 6
- 16
资源评论
weixin_37613240
- 粉丝: 2571
- 资源: 20
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功