summaryrefslogtreecommitdiff
path: root/target/linux/generic/pending-3.18/193-USB-qmi_wwan-Add-quirk-for-Quectel-EC20-Mini-PCIe-mo.patch
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/generic/pending-3.18/193-USB-qmi_wwan-Add-quirk-for-Quectel-EC20-Mini-PCIe-mo.patch')
-rw-r--r--target/linux/generic/pending-3.18/193-USB-qmi_wwan-Add-quirk-for-Quectel-EC20-Mini-PCIe-mo.patch96
1 files changed, 0 insertions, 96 deletions
diff --git a/target/linux/generic/pending-3.18/193-USB-qmi_wwan-Add-quirk-for-Quectel-EC20-Mini-PCIe-mo.patch b/target/linux/generic/pending-3.18/193-USB-qmi_wwan-Add-quirk-for-Quectel-EC20-Mini-PCIe-mo.patch
deleted file mode 100644
index ee0d7b2..0000000
--- a/target/linux/generic/pending-3.18/193-USB-qmi_wwan-Add-quirk-for-Quectel-EC20-Mini-PCIe-mo.patch
+++ /dev/null
@@ -1,96 +0,0 @@
-From fe29727caa7fe434fcb3166df2a62672bc516b54 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Petr=20=C5=A0tetiar?= <ynezz@true.cz>
-Date: Wed, 4 Nov 2015 16:23:37 +0100
-Subject: [PATCH 2/2] USB: qmi_wwan: Add quirk for Quectel EC20 Mini PCIe
- module
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-This device has same vendor and product IDs as G2K devices, but it has
-different number of interfaces(4 vs 5) and also different interface
-layout where EC20 has QMI on interface 4 instead of 0.
-
-lsusb output:
-
- Bus 002 Device 003: ID 05c6:9215 Qualcomm, Inc. Acer Gobi 2000
- Device Descriptor:
- bLength 18
- bDescriptorType 1
- bcdUSB 2.00
- bDeviceClass 0 (Defined at Interface level)
- bDeviceSubClass 0
- bDeviceProtocol 0
- bMaxPacketSize0 64
- idVendor 0x05c6 Qualcomm, Inc.
- idProduct 0x9215 Acer Gobi 2000 Wireless Modem
- bcdDevice 2.32
- iManufacturer 1 Quectel
- iProduct 2 Quectel LTE Module
- iSerial 0
- bNumConfigurations 1
- Configuration Descriptor:
- bLength 9
- bDescriptorType 2
- wTotalLength 209
- bNumInterfaces 5
- bConfigurationValue 1
- iConfiguration 0
- bmAttributes 0xa0
- (Bus Powered)
- Remote Wakeup
- MaxPower 500mA
-
-Signed-off-by: Petr Štetiar <ynezz@true.cz>
----
- drivers/net/usb/qmi_wwan.c | 21 +++++++++++++++++++++
- 1 file changed, 21 insertions(+)
-
---- a/drivers/net/usb/qmi_wwan.c
-+++ b/drivers/net/usb/qmi_wwan.c
-@@ -825,6 +825,7 @@ static const struct usb_device_id produc
- {QMI_GOBI_DEVICE(0x05c6, 0x9245)}, /* Samsung Gobi 2000 Modem device (VL176) */
- {QMI_GOBI_DEVICE(0x03f0, 0x251d)}, /* HP Gobi 2000 Modem device (VP412) */
- {QMI_GOBI_DEVICE(0x05c6, 0x9215)}, /* Acer Gobi 2000 Modem device (VP413) */
-+ {QMI_FIXED_INTF(0x05c6, 0x9215, 4)}, /* Quectel EC20 Mini PCIe */
- {QMI_GOBI_DEVICE(0x05c6, 0x9265)}, /* Asus Gobi 2000 Modem device (VR305) */
- {QMI_GOBI_DEVICE(0x05c6, 0x9235)}, /* Top Global Gobi 2000 Modem device (VR306) */
- {QMI_GOBI_DEVICE(0x05c6, 0x9275)}, /* iRex Technologies Gobi 2000 Modem device (VR307) */
-@@ -856,10 +857,24 @@ static const struct usb_device_id produc
- };
- MODULE_DEVICE_TABLE(usb, products);
-
-+static bool quectel_ec20_detected(struct usb_interface *intf)
-+{
-+ struct usb_device *dev = interface_to_usbdev(intf);
-+
-+ if (dev->actconfig &&
-+ le16_to_cpu(dev->descriptor.idVendor) == 0x05c6 &&
-+ le16_to_cpu(dev->descriptor.idProduct) == 0x9215 &&
-+ dev->actconfig->desc.bNumInterfaces == 5)
-+ return true;
-+
-+ return false;
-+}
-+
- static int qmi_wwan_probe(struct usb_interface *intf,
- const struct usb_device_id *prod)
- {
- struct usb_device_id *id = (struct usb_device_id *)prod;
-+ struct usb_interface_descriptor *desc = &intf->cur_altsetting->desc;
-
- /* Workaround to enable dynamic IDs. This disables usbnet
- * blacklisting functionality. Which, if required, can be
-@@ -871,6 +886,12 @@ static int qmi_wwan_probe(struct usb_int
- id->driver_info = (unsigned long)&qmi_wwan_info;
- }
-
-+ /* Quectel EC20 quirk where we've QMI on interface 4 instead of 0 */
-+ if (quectel_ec20_detected(intf) && desc->bInterfaceNumber == 0) {
-+ dev_dbg(&intf->dev, "Quectel EC20 quirk, skipping interface 0\n");
-+ return -ENODEV;
-+ }
-+
- return usbnet_probe(intf, id);
- }
-