summaryrefslogtreecommitdiff
path: root/multitech/recipes/linux/linux-2.6.35/linux-2.6.35.14-option-telit-20150120.patch
diff options
context:
space:
mode:
Diffstat (limited to 'multitech/recipes/linux/linux-2.6.35/linux-2.6.35.14-option-telit-20150120.patch')
-rw-r--r--multitech/recipes/linux/linux-2.6.35/linux-2.6.35.14-option-telit-20150120.patch43
1 files changed, 43 insertions, 0 deletions
diff --git a/multitech/recipes/linux/linux-2.6.35/linux-2.6.35.14-option-telit-20150120.patch b/multitech/recipes/linux/linux-2.6.35/linux-2.6.35.14-option-telit-20150120.patch
new file mode 100644
index 0000000..7e73340
--- /dev/null
+++ b/multitech/recipes/linux/linux-2.6.35/linux-2.6.35.14-option-telit-20150120.patch
@@ -0,0 +1,43 @@
+Index: linux-2.6.35/drivers/usb/serial/option.c
+===================================================================
+--- linux-2.6.35.orig/drivers/usb/serial/option.c
++++ linux-2.6.35/drivers/usb/serial/option.c
+@@ -279,6 +279,13 @@ static void option_instat_callback(struc
+ #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
++
+ #define TELIT_PRODUCT_CC864_DUAL 0x1005
+ #define TELIT_PRODUCT_CC864_SINGLE 0x1006
+ #define TELIT_PRODUCT_DE910_DUAL 0x1010
+@@ -601,6 +608,9 @@ static const struct usb_device_id option
+ { 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) },
+@@ -1088,6 +1098,14 @@ static int option_probe(struct usb_seria
+ serial->interface->cur_altsetting->desc.bInterfaceNumber == 1)
+ 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)