Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F145758678
D38383.id116504.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Size
7 KB
Referenced Files
None
Subscribers
None
D38383.id116504.diff
View Options
diff --git a/share/man/man4/u3g.4 b/share/man/man4/u3g.4
--- a/share/man/man4/u3g.4
+++ b/share/man/man4/u3g.4
@@ -74,7 +74,7 @@
.It
QUECTEL EC25, EM05, EM12-G.
.It
- Huawei B190, E180v, E220 ('<Huawei Mobile>')
+ Huawei B190, E180v, E220, E3372, E3372v153, E5573Cs322, ('<Huawei Mobile>')
.It
Novatel U740, MC950D, X950D, etc.
.It
diff --git a/sys/dev/usb/net/if_cdce.c b/sys/dev/usb/net/if_cdce.c
--- a/sys/dev/usb/net/if_cdce.c
+++ b/sys/dev/usb/net/if_cdce.c
@@ -265,6 +265,9 @@
static const STRUCT_USB_HOST_ID cdce_switch_devs[] = {
{USB_VPI(USB_VENDOR_HUAWEI, USB_PRODUCT_HUAWEI_E3272_INIT, MSC_EJECT_HUAWEI2)},
+ {USB_VPI(USB_VENDOR_HUAWEI, USB_PRODUCT_HUAWEI_E3372v153_INIT, MSC_EJECT_HUAWEI2)},
+ {USB_VPI(USB_VENDOR_HUAWEI, USB_PRODUCT_HUAWEI_E3372_INIT, MSC_EJECT_HUAWEI4)},
+ {USB_VPI(USB_VENDOR_HUAWEI, USB_PRODUCT_HUAWEI_E5573Cs322_ECM, MSC_EJECT_HUAWEI3)},
};
static const STRUCT_USB_HOST_ID cdce_host_devs[] = {
diff --git a/sys/dev/usb/quirk/usb_quirk.h b/sys/dev/usb/quirk/usb_quirk.h
--- a/sys/dev/usb/quirk/usb_quirk.h
+++ b/sys/dev/usb/quirk/usb_quirk.h
@@ -108,6 +108,8 @@
UQ_MSC_EJECT_SAEL_M460, /* ejects after Sael USB commands */
UQ_MSC_EJECT_HUAWEISCSI, /* ejects after Huawei SCSI command */
UQ_MSC_EJECT_HUAWEISCSI2, /* ejects after Huawei SCSI 2 command */
+ UQ_MSC_EJECT_HUAWEISCSI3, /* ejects after Huawei SCSI 3 command */
+ UQ_MSC_EJECT_HUAWEISCSI4, /* ejects after Huawei SCSI 4 command */
UQ_MSC_EJECT_TCT, /* ejects after TCT SCSI command */
UQ_BAD_MIDI, /* device claims MIDI class, but isn't */
diff --git a/sys/dev/usb/quirk/usb_quirk.c b/sys/dev/usb/quirk/usb_quirk.c
--- a/sys/dev/usb/quirk/usb_quirk.c
+++ b/sys/dev/usb/quirk/usb_quirk.c
@@ -698,6 +698,8 @@
[UQ_MSC_EJECT_SAEL_M460] = "UQ_MSC_EJECT_SAEL_M460",
[UQ_MSC_EJECT_HUAWEISCSI] = "UQ_MSC_EJECT_HUAWEISCSI",
[UQ_MSC_EJECT_HUAWEISCSI2] = "UQ_MSC_EJECT_HUAWEISCSI2",
+ [UQ_MSC_EJECT_HUAWEISCSI3] = "UQ_MSC_EJECT_HUAWEISCSI3",
+ [UQ_MSC_EJECT_HUAWEISCSI4] = "UQ_MSC_EJECT_HUAWEISCSI4",
[UQ_MSC_EJECT_TCT] = "UQ_MSC_EJECT_TCT",
[UQ_BAD_MIDI] = "UQ_BAD_MIDI",
[UQ_AU_VENDOR_CLASS] = "UQ_AU_VENDOR_CLASS",
diff --git a/sys/dev/usb/serial/u3g.c b/sys/dev/usb/serial/u3g.c
--- a/sys/dev/usb/serial/u3g.c
+++ b/sys/dev/usb/serial/u3g.c
@@ -89,7 +89,9 @@
#define U3GINIT_SAEL_M460 8 /* Requires vendor init */
#define U3GINIT_HUAWEISCSI 9 /* Requires Huawei SCSI init command */
#define U3GINIT_HUAWEISCSI2 10 /* Requires Huawei SCSI init command (2) */
-#define U3GINIT_TCT 11 /* Requires TCT Mobile init command */
+#define U3GINIT_HUAWEISCSI3 11 /* Requires Huawei SCSI init command (3) */
+#define U3GINIT_HUAWEISCSI4 12 /* Requires Huawei SCSI init command (4) */
+#define U3GINIT_TCT 13 /* Requires TCT Mobile init command */
enum {
U3G_BULK_WR,
@@ -318,8 +320,6 @@
U3G_DEV(HUAWEI, E143F, U3GINIT_HUAWEI),
U3G_DEV(HUAWEI, E173, 0),
U3G_DEV(HUAWEI, E173_INIT, U3GINIT_HUAWEISCSI),
- U3G_DEV(HUAWEI, E3131, 0),
- U3G_DEV(HUAWEI, E3131_INIT, U3GINIT_HUAWEISCSI2),
U3G_DEV(HUAWEI, E180V, U3GINIT_HUAWEI),
U3G_DEV(HUAWEI, E220, U3GINIT_HUAWEI),
U3G_DEV(HUAWEI, E220BIS, U3GINIT_HUAWEI),
@@ -342,6 +342,12 @@
U3G_DEV(HUAWEI, ETS2055, U3GINIT_HUAWEI),
U3G_DEV(HUAWEI, E3272_INIT, U3GINIT_HUAWEISCSI2),
U3G_DEV(HUAWEI, E3272, 0),
+ U3G_DEV(HUAWEI, E3372_INIT, U3GINIT_HUAWEISCSI3),
+ U3G_DEV(HUAWEI, E3372v153_INIT, U3GINIT_HUAWEISCSI2),
+ U3G_DEV(HUAWEI, E3372v153_NCM, 0),
+ U3G_DEV(HUAWEI, E5573Cs322_NCM, 0),
+ U3G_DEV(HUAWEI, E5573Cs322_ECM, 0),
+ U3G_DEV(HUAWEI, E5573Cs322_ACM, 0),
U3G_DEV(KYOCERA2, CDMA_MSM_K, 0),
U3G_DEV(KYOCERA2, KPC680, 0),
U3G_DEV(LONGCHEER, WM66, U3GINIT_HUAWEI),
@@ -815,6 +821,10 @@
method = U3GINIT_HUAWEISCSI;
else if (usb_test_quirk(uaa, UQ_MSC_EJECT_HUAWEISCSI2))
method = U3GINIT_HUAWEISCSI2;
+ else if (usb_test_quirk(uaa, UQ_MSC_EJECT_HUAWEISCSI3))
+ method = U3GINIT_HUAWEISCSI3;
+ else if (usb_test_quirk(uaa, UQ_MSC_EJECT_HUAWEISCSI4))
+ method = U3GINIT_HUAWEISCSI4;
else if (usb_test_quirk(uaa, UQ_MSC_EJECT_TCT))
method = U3GINIT_TCT;
else if (usbd_lookup_id_by_uaa(u3g_devs, sizeof(u3g_devs), uaa) == 0)
@@ -837,6 +847,12 @@
break;
case U3GINIT_HUAWEISCSI2:
error = usb_msc_eject(udev, 0, MSC_EJECT_HUAWEI2);
+ break;
+ case U3GINIT_HUAWEISCSI3:
+ error = usb_msc_eject(udev, 0, MSC_EJECT_HUAWEI3);
+ break;
+ case U3GINIT_HUAWEISCSI4:
+ error = usb_msc_eject(udev, 0, MSC_EJECT_HUAWEI4);
break;
case U3GINIT_SCSIEJECT:
error = usb_msc_eject(udev, 0, MSC_EJECT_STOPUNIT);
diff --git a/sys/dev/usb/usb_msctest.h b/sys/dev/usb/usb_msctest.h
--- a/sys/dev/usb/usb_msctest.h
+++ b/sys/dev/usb/usb_msctest.h
@@ -36,6 +36,8 @@
MSC_EJECT_CMOTECH,
MSC_EJECT_HUAWEI,
MSC_EJECT_HUAWEI2,
+ MSC_EJECT_HUAWEI3,
+ MSC_EJECT_HUAWEI4,
MSC_EJECT_TCT,
};
diff --git a/sys/dev/usb/usb_msctest.c b/sys/dev/usb/usb_msctest.c
--- a/sys/dev/usb/usb_msctest.c
+++ b/sys/dev/usb/usb_msctest.c
@@ -107,6 +107,12 @@
static uint8_t scsi_huawei_eject2[] = { 0x11, 0x06, 0x20, 0x00, 0x00, 0x01,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00 };
+static uint8_t scsi_huawei_eject3[] = { 0x11, 0x06, 0x20, 0x00, 0x00, 0x01,
+ 0x01, 0x00, 0x01, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00 };
+static uint8_t scsi_huawei_eject4[] = { 0x11, 0x06, 0x30, 0x00, 0x00, 0x00,
+ 0x00, 0x01, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00 };
static uint8_t scsi_tct_eject[] = { 0x06, 0xf5, 0x04, 0x02, 0x52, 0x70 };
static uint8_t scsi_sync_cache[] = { 0x35, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00 };
@@ -1003,6 +1009,16 @@
case MSC_EJECT_HUAWEI2:
err = bbb_command_start(sc, DIR_IN, 0, NULL, 0,
&scsi_huawei_eject2, sizeof(scsi_huawei_eject2),
+ USB_MS_HZ);
+ break;
+ case MSC_EJECT_HUAWEI3:
+ err = bbb_command_start(sc, DIR_IN, 0, NULL, 0,
+ &scsi_huawei_eject3, sizeof(scsi_huawei_eject3),
+ USB_MS_HZ);
+ break;
+ case MSC_EJECT_HUAWEI4:
+ err = bbb_command_start(sc, DIR_IN, 0, NULL, 0,
+ &scsi_huawei_eject4, sizeof(scsi_huawei_eject4),
USB_MS_HZ);
break;
case MSC_EJECT_TCT:
diff --git a/sys/dev/usb/usbdevs b/sys/dev/usb/usbdevs
--- a/sys/dev/usb/usbdevs
+++ b/sys/dev/usb/usbdevs
@@ -2552,9 +2552,7 @@
product HUAWEI K3771 0x14ca K3771
product HUAWEI K3772 0x14cf K3772
product HUAWEI K3770_INIT 0x14d1 K3770 Initial
-product HUAWEI E3131_INIT 0x14fe 3G modem initial
product HUAWEI E392 0x1505 LTE modem
-product HUAWEI E3131 0x1506 3G modem
product HUAWEI K3765_INIT 0x1520 K3765 Initial
product HUAWEI K4505_INIT 0x1521 K4505 Initial
product HUAWEI K3772_INIT 0x1526 K3772 Initial
@@ -2568,6 +2566,12 @@
product HUAWEI E173_INIT 0x1c0b 3G modem initial
product HUAWEI E3272 0x1c1e LTE modem
product HUAWEI E3372_INIT 0x1f01 LTE modem initial
+product HUAWEI E3372_NCM 0x1506 LTE modem in NCM mode
+product HUAWEI E3372v153_INIT 0x14fe LTE modem initial
+product HUAWEI E3372v153_NCM 0x155f LTE modem in NCM mode
+product HUAWEI E5573Cs322_NCM 0x155e LTE AP modem NCM mode
+product HUAWEI E5573Cs322_ECM 0x14db LTE AP modem ECM mode
+product HUAWEI E5573Cs322_ACM 0x1442 LTE AP modem ACM mode
/* HUAWEI 3com products */
product HUAWEI3COM WUB320G 0x0009 Aolynk WUB320g
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Wed, Feb 25, 2:12 AM (7 h, 20 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
28981956
Default Alt Text
D38383.id116504.diff (7 KB)
Attached To
Mode
D38383: Add support for Huawei 4G Modem devices (2022)
Attached
Detach File
Event Timeline
Log In to Comment