From b69461bdf0c184f67a58ef04fb6b8990b62068e4 Mon Sep 17 00:00:00 2001 From: John Klug Date: Mon, 21 Jan 2019 12:56:01 -0600 Subject: Put back Vizzini driver and install the kernel patch --- .../linux-4.9-cdc-acm-ignore-exar-devices.patch | 36 ++++++++++++++++++++++ recipes-kernel/linux/linux-at91_4.9.87.bb | 1 + 2 files changed, 37 insertions(+) create mode 100644 recipes-kernel/linux/linux-at91-4.9.87/linux-4.9-cdc-acm-ignore-exar-devices.patch (limited to 'recipes-kernel') diff --git a/recipes-kernel/linux/linux-at91-4.9.87/linux-4.9-cdc-acm-ignore-exar-devices.patch b/recipes-kernel/linux/linux-at91-4.9.87/linux-4.9-cdc-acm-ignore-exar-devices.patch new file mode 100644 index 0000000..90af4de --- /dev/null +++ b/recipes-kernel/linux/linux-at91-4.9.87/linux-4.9-cdc-acm-ignore-exar-devices.patch @@ -0,0 +1,36 @@ +diff -Naru linux-4.9.87.orig/drivers/usb/class/cdc-acm.c linux-4.9.87/drivers/usb/class/cdc-acm.c +--- linux-4.9.87.orig/drivers/usb/class/cdc-acm.c 2019-01-21 09:33:23.938147201 -0600 ++++ linux-4.9.87/drivers/usb/class/cdc-acm.c 2019-01-21 09:40:50.374133985 -0600 +@@ -1161,8 +1161,10 @@ + /* normal quirks */ + quirks = (unsigned long)id->driver_info; + +- if (quirks == IGNORE_DEVICE) ++ if (quirks == IGNORE_DEVICE) { ++ dev_dbg(&intf->dev, "Ignoring device\n"); + return -ENODEV; ++ } + + memset(&h, 0x00, sizeof(struct usb_cdc_parsed_header)); + +@@ -1877,6 +1879,20 @@ + .driver_info = IGNORE_DEVICE, + }, + ++ /* Ignore Exar XR21V141X usb serial chips ++ * This elminates conflicting with the Exar vizzini driver. ++ * The ACM driver cannot use features in the Exar chip, ++ * such as setting the baud rate. */ ++ {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) }, diff --git a/recipes-kernel/linux/linux-at91_4.9.87.bb b/recipes-kernel/linux/linux-at91_4.9.87.bb index adbe4d9..a6bdc4f 100644 --- a/recipes-kernel/linux/linux-at91_4.9.87.bb +++ b/recipes-kernel/linux/linux-at91_4.9.87.bb @@ -49,6 +49,7 @@ SRC_URI_append_mtcdt = "\ file://linux-4.9-add-num_accessory_ports-config-option.patch \ file://950-0090-OF-DT-Overlay-configfs-interface.patch \ file://linux-4.9-spidev_squack.patch \ + file://linux-4.9-cdc-acm-ignore-exar-devices.patch \ " SRC_URI_append_mtrv1 = "\ ${COMMON_PATCHES} \ -- cgit v1.2.3