summaryrefslogtreecommitdiff
path: root/multitech/recipes/linux/linux-2.6.39-at91/linux-2.6.39.4-option-telit-20140120.patch
diff options
context:
space:
mode:
Diffstat (limited to 'multitech/recipes/linux/linux-2.6.39-at91/linux-2.6.39.4-option-telit-20140120.patch')
-rw-r--r--multitech/recipes/linux/linux-2.6.39-at91/linux-2.6.39.4-option-telit-20140120.patch61
1 files changed, 61 insertions, 0 deletions
diff --git a/multitech/recipes/linux/linux-2.6.39-at91/linux-2.6.39.4-option-telit-20140120.patch b/multitech/recipes/linux/linux-2.6.39-at91/linux-2.6.39.4-option-telit-20140120.patch
new file mode 100644
index 0000000..a5c666f
--- /dev/null
+++ b/multitech/recipes/linux/linux-2.6.39-at91/linux-2.6.39.4-option-telit-20140120.patch
@@ -0,0 +1,61 @@
+From 7204cf584836c24b4b06e4ad4a8e6bb8ea84908e Mon Sep 17 00:00:00 2001
+From: Daniele Palmas <dnlplm@gmail.com>
+Date: Wed, 29 Feb 2012 15:32:05 +0100
+Subject: [PATCH] USB: option driver: adding support for Telit CC864-SINGLE,
+ CC864-DUAL and DE910-DUAL modems
+
+Adding PID for Telit CC864-SINGLE, CC864-DUAL and DE910-DUAL
+modems
+
+Signed-off-by: Daniele Palmas <dnlplm@gmail.com>
+Cc: stable <stable@vger.kernel.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ drivers/usb/serial/option.c | 6 ++++++
+ 1 files changed, 6 insertions(+), 0 deletions(-)
+
+Index: git/drivers/usb/serial/option.c
+===================================================================
+--- git.orig/drivers/usb/serial/option.c 2014-01-20 11:23:31.341035594 -0600
++++ git/drivers/usb/serial/option.c 2014-01-20 11:27:29.449162530 -0600
+@@ -300,6 +300,13 @@
+ #define TELIT_VENDOR_ID 0x1bc7
+ #define TELIT_PRODUCT_UC864E 0x1003
+ #define TELIT_PRODUCT_UC864G 0x1004
++#define TELIT_PRODUCT_CC864_DUAL 0x1005
++#define TELIT_PRODUCT_CC864_SINGLE 0x1006
++#define TELIT_PRODUCT_DE910_DUAL 0x1010
++#define TELIT_PRODUCT_CE910_DUAL 0x1011
++#define TELIT_PRODUCT_LE920 0x1201
++#define TELIT_PRODUCT_UE910_V2 0x1012
++
+
+ /* ZTE PRODUCTS */
+ #define ZTE_VENDOR_ID 0x19d2
+@@ -638,6 +645,12 @@
+ { USB_DEVICE(CMOTECH_VENDOR_ID, CMOTECH_PRODUCT_6008) },
+ { USB_DEVICE(TELIT_VENDOR_ID, TELIT_PRODUCT_UC864E) },
+ { USB_DEVICE(TELIT_VENDOR_ID, TELIT_PRODUCT_UC864G) },
++ { USB_DEVICE(TELIT_VENDOR_ID, TELIT_PRODUCT_CC864_DUAL) },
++ { USB_DEVICE(TELIT_VENDOR_ID, TELIT_PRODUCT_CC864_SINGLE) },
++ { USB_DEVICE(TELIT_VENDOR_ID, TELIT_PRODUCT_DE910_DUAL) },
++ { USB_DEVICE(TELIT_VENDOR_ID, TELIT_PRODUCT_CE910_DUAL) },
++ { USB_DEVICE(TELIT_VENDOR_ID, TELIT_PRODUCT_LE920) },
++ { USB_DEVICE(TELIT_VENDOR_ID, TELIT_PRODUCT_UE910_V2) },
+ { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, ZTE_PRODUCT_MF622, 0xff, 0xff, 0xff) }, /* ZTE WCDMA products */
+ { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0002, 0xff, 0xff, 0xff) },
+ { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0003, 0xff, 0xff, 0xff) },
+@@ -1136,6 +1149,13 @@
+ serial->interface->cur_altsetting->desc.bInterfaceClass != USB_CLASS_CDC_DATA)
+ return -ENODEV;
+
++ /* Don't bind interfaces 1,7 on Telit LE920 */
++ if (serial->dev->descriptor.idVendor == TELIT_VENDOR_ID &&
++ serial->dev->descriptor.idProduct == TELIT_PRODUCT_LE920 &&
++ (serial->interface->cur_altsetting->desc.bInterfaceNumber == 1 ||
++ serial->interface->cur_altsetting->desc.bInterfaceNumber == 7))
++ return -ENODEV;
++
+ data = serial->private = kzalloc(sizeof(struct usb_wwan_intf_private), GFP_KERNEL);
+
+ if (!data)