summaryrefslogtreecommitdiff
path: root/multitech/recipes/linux
diff options
context:
space:
mode:
authorJesse Gilles <jgilles@multitech.com>2013-02-19 09:56:33 -0600
committerJesse Gilles <jgilles@multitech.com>2013-02-19 09:56:33 -0600
commit4331f87843c8a2293c51be96d0adb9e9324bafdf (patch)
tree917cac38f6402fc006cee2546a676c2c78aa6e8b /multitech/recipes/linux
parent9194f7b6bd21e7fb0d5f3cb13bba1570f4f66177 (diff)
linux-2.6.39.4: mtocgd3: add cdc-acm patch to ignore exar devices
This patch forces the cdc-acm driver to ignore the Exar usb serial chip that is on the MTOCGD3 so that it can be used with the Exar vizzini driver instead. The vizzini driver provides RS485 support.
Diffstat (limited to 'multitech/recipes/linux')
-rw-r--r--multitech/recipes/linux/linux-2.6.39.4/mtocgd3/linux-2.6.39.4-cdc-acm-ignore-exar-devices.patch45
-rw-r--r--multitech/recipes/linux/linux_2.6.39.4.bb3
2 files changed, 47 insertions, 1 deletions
diff --git a/multitech/recipes/linux/linux-2.6.39.4/mtocgd3/linux-2.6.39.4-cdc-acm-ignore-exar-devices.patch b/multitech/recipes/linux/linux-2.6.39.4/mtocgd3/linux-2.6.39.4-cdc-acm-ignore-exar-devices.patch
new file mode 100644
index 0000000..5f9d8f7
--- /dev/null
+++ b/multitech/recipes/linux/linux-2.6.39.4/mtocgd3/linux-2.6.39.4-cdc-acm-ignore-exar-devices.patch
@@ -0,0 +1,45 @@
+Index: linux-2.6.39.4/drivers/usb/class/cdc-acm.c
+===================================================================
+--- linux-2.6.39.4.orig/drivers/usb/class/cdc-acm.c 2013-02-19 09:22:57.860051682 -0600
++++ linux-2.6.39.4/drivers/usb/class/cdc-acm.c 2013-02-19 09:30:35.274209660 -0600
+@@ -963,6 +963,12 @@
+ goto skip_normal_probe;
+ }
+
++ /* ignore devices we don't want to support */
++ if (quirks == IGNORE_DEVICE) {
++ dev_dbg(&intf->dev, "Ignoring device\n");
++ return -ENODEV;
++ }
++
+ /* normal probing*/
+ if (!buffer) {
+ dev_err(&intf->dev, "Weird descriptor references\n");
+@@ -1633,6 +1639,18 @@
+ .driver_info = NO_DATA_INTERFACE,
+ },
+
++ /* Ignore Exar XR21V141X usb serial chips
++ * This elminates conflicting with the Exar vizzini driver */
++ { USB_DEVICE(0x04e2, 0x1410),
++ .driver_info = IGNORE_DEVICE,
++ },
++ { USB_DEVICE(0x04e2, 0x1412),
++ .driver_info = IGNORE_DEVICE,
++ },
++ { USB_DEVICE(0x04e2, 0x1414),
++ .driver_info = IGNORE_DEVICE,
++ },
++
+ /* control interfaces without any protocol set */
+ { USB_INTERFACE_INFO(USB_CLASS_COMM, USB_CDC_SUBCLASS_ACM,
+ USB_CDC_PROTO_NONE) },
+Index: linux-2.6.39.4/drivers/usb/class/cdc-acm.h
+===================================================================
+--- linux-2.6.39.4.orig/drivers/usb/class/cdc-acm.h 2013-02-19 09:22:54.860050647 -0600
++++ linux-2.6.39.4/drivers/usb/class/cdc-acm.h 2013-02-19 09:24:00.856126438 -0600
+@@ -138,3 +138,4 @@
+ #define NO_CAP_LINE 4
+ #define NOT_A_MODEM 8
+ #define NO_DATA_INTERFACE 16
++#define IGNORE_DEVICE 32
diff --git a/multitech/recipes/linux/linux_2.6.39.4.bb b/multitech/recipes/linux/linux_2.6.39.4.bb
index 2939bd9..fa39c26 100644
--- a/multitech/recipes/linux/linux_2.6.39.4.bb
+++ b/multitech/recipes/linux/linux_2.6.39.4.bb
@@ -4,7 +4,7 @@ require recipes/linux/linux.inc
SRC_URI = " \
${KERNELORG_MIRROR}/pub/linux/kernel/v2.6/linux-${PV}.tar.bz2;name=kernel \
- "
+ "
# 2.6.39-at91 patches from ftp://ftp.linux4sam.org/pub/linux/2.6.39-at91
AT91SAM9X5_PATCHES = " \
@@ -153,6 +153,7 @@ SRC_URI_append_mtocgd3 = " \
file://linux-2.6.35.14-option-zte.patch \
file://linux-2.6.39.4-option-telit.patch \
file://linux-2.6.38-sierra-1.7.40.patch \
+ file://linux-2.6.39.4-cdc-acm-ignore-exar-devices.patch \
"
SRC_URI_append_mt100eocg-pcie-dk = "file://defconfig \