--- /dev/null
+From 7da7cbbbeb60e0939fecdf9723b388136c175e5c Mon Sep 17 00:00:00 2001
+From: Anders F. U. Kiær <ablacksheep@gmail.com>
+Date: Tue, 1 Oct 2013 19:22:05 +0200
+Subject: HID: add Holtek USB ID 04d9:a081 SHARKOON DarkGlider
+
+From: Anders F. U. Kiær <ablacksheep@gmail.com>
+
+commit 7da7cbbbeb60e0939fecdf9723b388136c175e5c upstream.
+
+Added id, bindings and comments for Holtek USB ID 04d9:a081 SHARKOON
+DarkGlider Gaming mouse to use the same corrections of the report
+descriptor as Holtek 04d9:a04a. As the mouse exceed HID_MAX_USAGES
+at the same offsets in the reported descriptor.
+Tested on the hardware.
+
+Signed-off-by: Anders F. U. Kiær <ablacksheep@gmail.com>
+Signed-off-by: Jiri Kosina <jkosina@suse.cz>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/hid/Kconfig | 1 +
+ drivers/hid/hid-core.c | 1 +
+ drivers/hid/hid-holtek-mouse.c | 4 ++++
+ drivers/hid/hid-ids.h | 1 +
+ 4 files changed, 7 insertions(+)
+
+--- a/drivers/hid/Kconfig
++++ b/drivers/hid/Kconfig
+@@ -241,6 +241,7 @@ config HID_HOLTEK
+ - Sharkoon Drakonia / Perixx MX-2000 gaming mice
+ - Tracer Sniper TRM-503 / NOVA Gaming Slider X200 /
+ Zalman ZM-GM1
++ - SHARKOON DarkGlider Gaming mouse
+
+ config HOLTEK_FF
+ bool "Holtek On Line Grip force feedback support"
+--- a/drivers/hid/hid-core.c
++++ b/drivers/hid/hid-core.c
+@@ -1673,6 +1673,7 @@ static const struct hid_device_id hid_ha
+ { HID_USB_DEVICE(USB_VENDOR_ID_HOLTEK_ALT, USB_DEVICE_ID_HOLTEK_ALT_KEYBOARD) },
+ { HID_USB_DEVICE(USB_VENDOR_ID_HOLTEK_ALT, USB_DEVICE_ID_HOLTEK_ALT_MOUSE_A04A) },
+ { HID_USB_DEVICE(USB_VENDOR_ID_HOLTEK_ALT, USB_DEVICE_ID_HOLTEK_ALT_MOUSE_A067) },
++ { HID_USB_DEVICE(USB_VENDOR_ID_HOLTEK_ALT, USB_DEVICE_ID_HOLTEK_ALT_MOUSE_A081) },
+ { HID_USB_DEVICE(USB_VENDOR_ID_HUION, USB_DEVICE_ID_HUION_580) },
+ { HID_USB_DEVICE(USB_VENDOR_ID_JESS2, USB_DEVICE_ID_JESS2_COLOR_RUMBLE_PAD) },
+ { HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_ION, USB_DEVICE_ID_ICADE) },
+--- a/drivers/hid/hid-holtek-mouse.c
++++ b/drivers/hid/hid-holtek-mouse.c
+@@ -27,6 +27,7 @@
+ * - USB ID 04d9:a067, sold as Sharkoon Drakonia and Perixx MX-2000
+ * - USB ID 04d9:a04a, sold as Tracer Sniper TRM-503, NOVA Gaming Slider X200
+ * and Zalman ZM-GM1
++ * - USB ID 04d9:a081, sold as SHARKOON DarkGlider Gaming mouse
+ */
+
+ static __u8 *holtek_mouse_report_fixup(struct hid_device *hdev, __u8 *rdesc,
+@@ -46,6 +47,7 @@ static __u8 *holtek_mouse_report_fixup(s
+ }
+ break;
+ case USB_DEVICE_ID_HOLTEK_ALT_MOUSE_A04A:
++ case USB_DEVICE_ID_HOLTEK_ALT_MOUSE_A081:
+ if (*rsize >= 113 && rdesc[106] == 0xff && rdesc[107] == 0x7f
+ && rdesc[111] == 0xff && rdesc[112] == 0x7f) {
+ hid_info(hdev, "Fixing up report descriptor\n");
+@@ -63,6 +65,8 @@ static const struct hid_device_id holtek
+ USB_DEVICE_ID_HOLTEK_ALT_MOUSE_A067) },
+ { HID_USB_DEVICE(USB_VENDOR_ID_HOLTEK_ALT,
+ USB_DEVICE_ID_HOLTEK_ALT_MOUSE_A04A) },
++ { HID_USB_DEVICE(USB_VENDOR_ID_HOLTEK_ALT,
++ USB_DEVICE_ID_HOLTEK_ALT_MOUSE_A081) },
+ { }
+ };
+ MODULE_DEVICE_TABLE(hid, holtek_mouse_devices);
+--- a/drivers/hid/hid-ids.h
++++ b/drivers/hid/hid-ids.h
+@@ -450,6 +450,7 @@
+ #define USB_DEVICE_ID_HOLTEK_ALT_KEYBOARD 0xa055
+ #define USB_DEVICE_ID_HOLTEK_ALT_MOUSE_A067 0xa067
+ #define USB_DEVICE_ID_HOLTEK_ALT_MOUSE_A04A 0xa04a
++#define USB_DEVICE_ID_HOLTEK_ALT_MOUSE_A081 0xa081
+
+ #define USB_VENDOR_ID_IMATION 0x0718
+ #define USB_DEVICE_ID_DISC_STAKKA 0xd000
--- /dev/null
+From 0470667caa8261beb8a9141102b04a5357dd45b5 Mon Sep 17 00:00:00 2001
+From: Bjørn Mork <bjorn@mork.no>
+Date: Tue, 10 Sep 2013 15:06:20 +0200
+Subject: net: qmi_wwan: add new Qualcomm devices
+
+From: Bjørn Mork <bjorn@mork.no>
+
+commit 0470667caa8261beb8a9141102b04a5357dd45b5 upstream.
+
+Adding the device list from the Windows driver description files
+included with a new Qualcomm MDM9615 based device, "Alcatel-sbell
+ASB TL131 TDD LTE", from China Mobile. This device is tested
+and verified to work. The others are assumed to work based on
+using the same Windows driver.
+
+Many of these devices support multiple QMI/wwan ports, requiring
+multiple interface matching entries. All devices are composite,
+providing a mix of one or more serial, storage or Android Debug
+Brigde functions in addition to the wwan function.
+
+This device list included an update of one previously known device,
+which was incorrectly assumed to have a Gobi 2K layout. This is
+corrected.
+
+Reported-by: 王康 <scateu@gmail.com>
+Signed-off-by: Bjørn Mork <bjorn@mork.no>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/net/usb/qmi_wwan.c | 130 ++++++++++++++++++++++++++++++++++++++++++++-
+ 1 file changed, 129 insertions(+), 1 deletion(-)
+
+--- a/drivers/net/usb/qmi_wwan.c
++++ b/drivers/net/usb/qmi_wwan.c
+@@ -518,6 +518,135 @@ static const struct usb_device_id produc
+
+ /* 3. Combined interface devices matching on interface number */
+ {QMI_FIXED_INTF(0x0408, 0xea42, 4)}, /* Yota / Megafon M100-1 */
++ {QMI_FIXED_INTF(0x05c6, 0x7000, 0)},
++ {QMI_FIXED_INTF(0x05c6, 0x7001, 1)},
++ {QMI_FIXED_INTF(0x05c6, 0x7002, 1)},
++ {QMI_FIXED_INTF(0x05c6, 0x7101, 1)},
++ {QMI_FIXED_INTF(0x05c6, 0x7101, 2)},
++ {QMI_FIXED_INTF(0x05c6, 0x7101, 3)},
++ {QMI_FIXED_INTF(0x05c6, 0x7102, 1)},
++ {QMI_FIXED_INTF(0x05c6, 0x7102, 2)},
++ {QMI_FIXED_INTF(0x05c6, 0x7102, 3)},
++ {QMI_FIXED_INTF(0x05c6, 0x8000, 7)},
++ {QMI_FIXED_INTF(0x05c6, 0x8001, 6)},
++ {QMI_FIXED_INTF(0x05c6, 0x9000, 4)},
++ {QMI_FIXED_INTF(0x05c6, 0x9003, 4)},
++ {QMI_FIXED_INTF(0x05c6, 0x9005, 2)},
++ {QMI_FIXED_INTF(0x05c6, 0x900a, 4)},
++ {QMI_FIXED_INTF(0x05c6, 0x900b, 2)},
++ {QMI_FIXED_INTF(0x05c6, 0x900c, 4)},
++ {QMI_FIXED_INTF(0x05c6, 0x900c, 5)},
++ {QMI_FIXED_INTF(0x05c6, 0x900c, 6)},
++ {QMI_FIXED_INTF(0x05c6, 0x900d, 5)},
++ {QMI_FIXED_INTF(0x05c6, 0x900f, 3)},
++ {QMI_FIXED_INTF(0x05c6, 0x900f, 4)},
++ {QMI_FIXED_INTF(0x05c6, 0x900f, 5)},
++ {QMI_FIXED_INTF(0x05c6, 0x9010, 4)},
++ {QMI_FIXED_INTF(0x05c6, 0x9010, 5)},
++ {QMI_FIXED_INTF(0x05c6, 0x9011, 3)},
++ {QMI_FIXED_INTF(0x05c6, 0x9011, 4)},
++ {QMI_FIXED_INTF(0x05c6, 0x9021, 1)},
++ {QMI_FIXED_INTF(0x05c6, 0x9022, 2)},
++ {QMI_FIXED_INTF(0x05c6, 0x9025, 4)}, /* Alcatel-sbell ASB TL131 TDD LTE (China Mobile) */
++ {QMI_FIXED_INTF(0x05c6, 0x9026, 3)},
++ {QMI_FIXED_INTF(0x05c6, 0x902e, 5)},
++ {QMI_FIXED_INTF(0x05c6, 0x9031, 5)},
++ {QMI_FIXED_INTF(0x05c6, 0x9032, 4)},
++ {QMI_FIXED_INTF(0x05c6, 0x9033, 3)},
++ {QMI_FIXED_INTF(0x05c6, 0x9033, 4)},
++ {QMI_FIXED_INTF(0x05c6, 0x9033, 5)},
++ {QMI_FIXED_INTF(0x05c6, 0x9033, 6)},
++ {QMI_FIXED_INTF(0x05c6, 0x9034, 3)},
++ {QMI_FIXED_INTF(0x05c6, 0x9034, 4)},
++ {QMI_FIXED_INTF(0x05c6, 0x9034, 5)},
++ {QMI_FIXED_INTF(0x05c6, 0x9034, 6)},
++ {QMI_FIXED_INTF(0x05c6, 0x9034, 7)},
++ {QMI_FIXED_INTF(0x05c6, 0x9035, 4)},
++ {QMI_FIXED_INTF(0x05c6, 0x9036, 3)},
++ {QMI_FIXED_INTF(0x05c6, 0x9037, 5)},
++ {QMI_FIXED_INTF(0x05c6, 0x9038, 4)},
++ {QMI_FIXED_INTF(0x05c6, 0x903b, 7)},
++ {QMI_FIXED_INTF(0x05c6, 0x903c, 6)},
++ {QMI_FIXED_INTF(0x05c6, 0x903d, 6)},
++ {QMI_FIXED_INTF(0x05c6, 0x903e, 5)},
++ {QMI_FIXED_INTF(0x05c6, 0x9043, 3)},
++ {QMI_FIXED_INTF(0x05c6, 0x9046, 3)},
++ {QMI_FIXED_INTF(0x05c6, 0x9046, 4)},
++ {QMI_FIXED_INTF(0x05c6, 0x9046, 5)},
++ {QMI_FIXED_INTF(0x05c6, 0x9047, 2)},
++ {QMI_FIXED_INTF(0x05c6, 0x9047, 3)},
++ {QMI_FIXED_INTF(0x05c6, 0x9047, 4)},
++ {QMI_FIXED_INTF(0x05c6, 0x9048, 4)},
++ {QMI_FIXED_INTF(0x05c6, 0x9048, 5)},
++ {QMI_FIXED_INTF(0x05c6, 0x9048, 6)},
++ {QMI_FIXED_INTF(0x05c6, 0x9048, 7)},
++ {QMI_FIXED_INTF(0x05c6, 0x9048, 8)},
++ {QMI_FIXED_INTF(0x05c6, 0x904c, 5)},
++ {QMI_FIXED_INTF(0x05c6, 0x904c, 6)},
++ {QMI_FIXED_INTF(0x05c6, 0x904c, 7)},
++ {QMI_FIXED_INTF(0x05c6, 0x904c, 8)},
++ {QMI_FIXED_INTF(0x05c6, 0x9050, 3)},
++ {QMI_FIXED_INTF(0x05c6, 0x9052, 4)},
++ {QMI_FIXED_INTF(0x05c6, 0x9053, 6)},
++ {QMI_FIXED_INTF(0x05c6, 0x9053, 7)},
++ {QMI_FIXED_INTF(0x05c6, 0x9054, 5)},
++ {QMI_FIXED_INTF(0x05c6, 0x9054, 6)},
++ {QMI_FIXED_INTF(0x05c6, 0x9055, 3)},
++ {QMI_FIXED_INTF(0x05c6, 0x9055, 4)},
++ {QMI_FIXED_INTF(0x05c6, 0x9055, 5)},
++ {QMI_FIXED_INTF(0x05c6, 0x9055, 6)},
++ {QMI_FIXED_INTF(0x05c6, 0x9055, 7)},
++ {QMI_FIXED_INTF(0x05c6, 0x9056, 3)},
++ {QMI_FIXED_INTF(0x05c6, 0x9062, 2)},
++ {QMI_FIXED_INTF(0x05c6, 0x9062, 3)},
++ {QMI_FIXED_INTF(0x05c6, 0x9062, 4)},
++ {QMI_FIXED_INTF(0x05c6, 0x9062, 5)},
++ {QMI_FIXED_INTF(0x05c6, 0x9062, 6)},
++ {QMI_FIXED_INTF(0x05c6, 0x9062, 7)},
++ {QMI_FIXED_INTF(0x05c6, 0x9062, 8)},
++ {QMI_FIXED_INTF(0x05c6, 0x9062, 9)},
++ {QMI_FIXED_INTF(0x05c6, 0x9064, 3)},
++ {QMI_FIXED_INTF(0x05c6, 0x9065, 6)},
++ {QMI_FIXED_INTF(0x05c6, 0x9065, 7)},
++ {QMI_FIXED_INTF(0x05c6, 0x9066, 5)},
++ {QMI_FIXED_INTF(0x05c6, 0x9066, 6)},
++ {QMI_FIXED_INTF(0x05c6, 0x9067, 1)},
++ {QMI_FIXED_INTF(0x05c6, 0x9068, 2)},
++ {QMI_FIXED_INTF(0x05c6, 0x9068, 3)},
++ {QMI_FIXED_INTF(0x05c6, 0x9068, 4)},
++ {QMI_FIXED_INTF(0x05c6, 0x9068, 5)},
++ {QMI_FIXED_INTF(0x05c6, 0x9068, 6)},
++ {QMI_FIXED_INTF(0x05c6, 0x9068, 7)},
++ {QMI_FIXED_INTF(0x05c6, 0x9069, 5)},
++ {QMI_FIXED_INTF(0x05c6, 0x9069, 6)},
++ {QMI_FIXED_INTF(0x05c6, 0x9069, 7)},
++ {QMI_FIXED_INTF(0x05c6, 0x9069, 8)},
++ {QMI_FIXED_INTF(0x05c6, 0x9070, 4)},
++ {QMI_FIXED_INTF(0x05c6, 0x9070, 5)},
++ {QMI_FIXED_INTF(0x05c6, 0x9075, 5)},
++ {QMI_FIXED_INTF(0x05c6, 0x9076, 4)},
++ {QMI_FIXED_INTF(0x05c6, 0x9076, 5)},
++ {QMI_FIXED_INTF(0x05c6, 0x9076, 6)},
++ {QMI_FIXED_INTF(0x05c6, 0x9076, 7)},
++ {QMI_FIXED_INTF(0x05c6, 0x9076, 8)},
++ {QMI_FIXED_INTF(0x05c6, 0x9077, 3)},
++ {QMI_FIXED_INTF(0x05c6, 0x9077, 4)},
++ {QMI_FIXED_INTF(0x05c6, 0x9077, 5)},
++ {QMI_FIXED_INTF(0x05c6, 0x9077, 6)},
++ {QMI_FIXED_INTF(0x05c6, 0x9078, 3)},
++ {QMI_FIXED_INTF(0x05c6, 0x9079, 4)},
++ {QMI_FIXED_INTF(0x05c6, 0x9079, 5)},
++ {QMI_FIXED_INTF(0x05c6, 0x9079, 6)},
++ {QMI_FIXED_INTF(0x05c6, 0x9079, 7)},
++ {QMI_FIXED_INTF(0x05c6, 0x9079, 8)},
++ {QMI_FIXED_INTF(0x05c6, 0x9080, 5)},
++ {QMI_FIXED_INTF(0x05c6, 0x9080, 6)},
++ {QMI_FIXED_INTF(0x05c6, 0x9080, 7)},
++ {QMI_FIXED_INTF(0x05c6, 0x9080, 8)},
++ {QMI_FIXED_INTF(0x05c6, 0x9083, 3)},
++ {QMI_FIXED_INTF(0x05c6, 0x9084, 4)},
++ {QMI_FIXED_INTF(0x05c6, 0x920d, 0)},
++ {QMI_FIXED_INTF(0x05c6, 0x920d, 5)},
+ {QMI_FIXED_INTF(0x12d1, 0x140c, 1)}, /* Huawei E173 */
+ {QMI_FIXED_INTF(0x12d1, 0x14ac, 1)}, /* Huawei E1820 */
+ {QMI_FIXED_INTF(0x19d2, 0x0002, 1)},
+@@ -612,7 +741,6 @@ static const struct usb_device_id produc
+ {QMI_GOBI_DEVICE(0x413c, 0x8186)}, /* Dell Gobi 2000 Modem device (N0218, VU936) */
+ {QMI_GOBI_DEVICE(0x413c, 0x8194)}, /* Dell Gobi 3000 Composite */
+ {QMI_GOBI_DEVICE(0x05c6, 0x920b)}, /* Generic Gobi 2000 Modem device */
+- {QMI_GOBI_DEVICE(0x05c6, 0x920d)}, /* Gobi 3000 Composite */
+ {QMI_GOBI_DEVICE(0x05c6, 0x9225)}, /* Sony Gobi 2000 Modem device (N0279, VU730) */
+ {QMI_GOBI_DEVICE(0x05c6, 0x9245)}, /* Samsung Gobi 2000 Modem device (VL176) */
+ {QMI_GOBI_DEVICE(0x03f0, 0x251d)}, /* HP Gobi 2000 Modem device (VP412) */