git: 0923ff82fb38 - main - Add USB ID and quirks for Huawei E3372

From: Wojciech Macek <wma_at_FreeBSD.org>
Date: Thu, 28 Apr 2022 06:42:40 UTC
The branch main has been updated by wma:

URL: https://cgit.FreeBSD.org/src/commit/?id=0923ff82fb383a755b2402bbf2cfece4c199a86c

commit 0923ff82fb383a755b2402bbf2cfece4c199a86c
Author:     Kornel Duleba <mindal@semihalf.com>
AuthorDate: 2022-04-26 12:11:50 +0000
Commit:     Wojciech Macek <wma@FreeBSD.org>
CommitDate: 2022-04-28 06:42:30 +0000

    Add USB ID and quirks for Huawei E3372
    
    Set UQ_MSC_NO_INQUIRY and UQ_MSC_NO_GETMAXLUN quirks for mass storage,
    which is the initial mode of this dongle.
    The modem is shipped with at least two firmware versions: 10.X and 11.X,
    without ability to update to the newer one.
    The 11.X version works more or less fine, but the 10.X one resets after
    receiving either an SCSI INQUIRY, or a get_max_lun command.
    Since both of those are used for automatic quirk detection, this leads
    to a reset cycle making the device somewhat unusable.
    
    Sponsored by: Stormshield
    Obtained from: Semihalf
    Reviewed by: hps, wma
    Differential Revision: https://reviews.freebsd.org/D35076
---
 sys/dev/usb/quirk/usb_quirk.c | 2 ++
 sys/dev/usb/usbdevs           | 1 +
 2 files changed, 3 insertions(+)

diff --git a/sys/dev/usb/quirk/usb_quirk.c b/sys/dev/usb/quirk/usb_quirk.c
index d86ca5643515..60baed81863d 100644
--- a/sys/dev/usb/quirk/usb_quirk.c
+++ b/sys/dev/usb/quirk/usb_quirk.c
@@ -270,6 +270,8 @@ static struct usb_quirk_entry usb_quirks[USB_DEV_QUIRKS_MAX] = {
 	USB_QUIRK(HP, CDW8200, 0x0000, 0xffff, UQ_MSC_FORCE_WIRE_CBI_I,
 	    UQ_MSC_FORCE_PROTO_ATAPI, UQ_MSC_NO_TEST_UNIT_READY,
 	    UQ_MSC_NO_START_STOP),
+	USB_QUIRK(HUAWEI, E3372_INIT, 0, 0xffff, UQ_MSC_NO_INQUIRY,
+	    UQ_MSC_NO_GETMAXLUN),
 	USB_QUIRK(IMAGINATION, DBX1, 0x0000, 0xffff, UQ_MSC_FORCE_WIRE_BBB,
 	    UQ_MSC_FORCE_PROTO_SCSI, UQ_MSC_WRONG_CSWSIG),
 	USB_QUIRK(INSYSTEM, USBCABLE, 0x0000, 0xffff, UQ_MSC_FORCE_WIRE_CBI,
diff --git a/sys/dev/usb/usbdevs b/sys/dev/usb/usbdevs
index 6faaca058b96..f69dacb5fb9b 100644
--- a/sys/dev/usb/usbdevs
+++ b/sys/dev/usb/usbdevs
@@ -2557,6 +2557,7 @@ product HUAWEI ETS2055		0x1803	CDMA modem
 product HUAWEI E173		0x1c05	3G modem
 product HUAWEI E173_INIT	0x1c0b	3G modem initial
 product HUAWEI E3272		0x1c1e	LTE modem
+product HUAWEI E3372_INIT	0x1f01  LTE modem initial
 
 /* HUAWEI 3com products */
 product HUAWEI3COM WUB320G	0x0009	Aolynk WUB320g