diff options
author | Jesse Gilles <jgilles@multitech.com> | 2013-02-19 09:56:33 -0600 |
---|---|---|
committer | Jesse Gilles <jgilles@multitech.com> | 2013-02-19 09:56:33 -0600 |
commit | 4331f87843c8a2293c51be96d0adb9e9324bafdf (patch) | |
tree | 917cac38f6402fc006cee2546a676c2c78aa6e8b /multitech/recipes/linux | |
parent | 9194f7b6bd21e7fb0d5f3cb13bba1570f4f66177 (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.patch | 45 | ||||
-rw-r--r-- | multitech/recipes/linux/linux_2.6.39.4.bb | 3 |
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 \ |