From 4331f87843c8a2293c51be96d0adb9e9324bafdf Mon Sep 17 00:00:00 2001 From: Jesse Gilles Date: Tue, 19 Feb 2013 09:56:33 -0600 Subject: 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. --- ...inux-2.6.39.4-cdc-acm-ignore-exar-devices.patch | 45 ++++++++++++++++++++++ multitech/recipes/linux/linux_2.6.39.4.bb | 3 +- 2 files changed, 47 insertions(+), 1 deletion(-) create mode 100644 multitech/recipes/linux/linux-2.6.39.4/mtocgd3/linux-2.6.39.4-cdc-acm-ignore-exar-devices.patch 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 \ -- cgit v1.2.3