f4c433978dc6ea4ab4b35dd33a780fb00f8f2ebb
[openwrt/staging/981213.git] /
1 From d0b55a012bbf2ffe4307f2632165dc1f8cdc351f Mon Sep 17 00:00:00 2001
2 From: =?UTF-8?q?Bj=C3=B8rn=20Mork?= <bjorn@mork.no>
3 Date: Fri, 25 May 2018 15:00:20 +0200
4 Subject: [PATCH 415/454] qmi_wwan: apply SET_DTR quirk to the SIMCOM shared
5 device ID
6 MIME-Version: 1.0
7 Content-Type: text/plain; charset=UTF-8
8 Content-Transfer-Encoding: 8bit
9
10 commit 102cd909635612c0be784a519651954a7924c786 upstream.
11
12 SIMCOM are reusing a single device ID for many (all of their?)
13 different modems, based on different chipsets and firmwares. Newer
14 Qualcomm chipset generations require setting DTR to wake the QMI
15 function. The SIM7600E modem is using such a chipset, making it
16 fail to work with this driver despite the device ID match.
17
18 Fix by unconditionally enabling the SET_DTR quirk for all SIMCOM
19 modems using this specific device ID. This is similar to what
20 we already have done for another case of device IDs recycled over
21 multiple chipset generations: 14cf4a771b30 ("drivers: net: usb:
22 qmi_wwan: add QMI_QUIRK_SET_DTR for Telit PID 0x1201")
23
24 Initial testing on an older SIM7100 modem shows no immediate side
25 effects.
26
27 Reported-by: Sebastian Sjoholm <sebastian.sjoholm@gmail.com>
28 Cc: Reinhard Speyerer <rspmn@arcor.de>
29 Signed-off-by: Bjørn Mork <bjorn@mork.no>
30 Signed-off-by: David S. Miller <davem@davemloft.net>
31 ---
32 drivers/net/usb/qmi_wwan.c | 2 +-
33 1 file changed, 1 insertion(+), 1 deletion(-)
34
35 --- a/drivers/net/usb/qmi_wwan.c
36 +++ b/drivers/net/usb/qmi_wwan.c
37 @@ -1250,7 +1250,7 @@ static const struct usb_device_id produc
38 {QMI_FIXED_INTF(0x03f0, 0x4e1d, 8)}, /* HP lt4111 LTE/EV-DO/HSPA+ Gobi 4G Module */
39 {QMI_FIXED_INTF(0x03f0, 0x9d1d, 1)}, /* HP lt4120 Snapdragon X5 LTE */
40 {QMI_FIXED_INTF(0x22de, 0x9061, 3)}, /* WeTelecom WPD-600N */
41 - {QMI_FIXED_INTF(0x1e0e, 0x9001, 5)}, /* SIMCom 7230E */
42 + {QMI_QUIRK_SET_DTR(0x1e0e, 0x9001, 5)}, /* SIMCom 7100E, 7230E, 7600E ++ */
43 {QMI_QUIRK_SET_DTR(0x2c7c, 0x0125, 4)}, /* Quectel EC25, EC20 R2.0 Mini PCIe */
44 {QMI_QUIRK_SET_DTR(0x2c7c, 0x0121, 4)}, /* Quectel EC21 Mini PCIe */
45 {QMI_QUIRK_SET_DTR(0x2c7c, 0x0191, 4)}, /* Quectel EG91 */