USB: cdc-acm: ignore Exar XR21V141X when serial driver is built
authorMauro Carvalho Chehab <mchehab+huawei@kernel.org>
Sun, 22 Nov 2020 17:08:22 +0000 (22:38 +0530)
committerJohan Hovold <johan@kernel.org>
Thu, 21 Jan 2021 09:49:45 +0000 (10:49 +0100)
The Exar XR21V141X can be used in either ACM mode using the cdc-acm
driver or in "custom driver" mode in which further features such as
hardware and software flow control, GPIO control and in-band line-status
reporting are available.

In ACM mode the device always enables RTS/CTS flow control, something
which could prevent transmission in case the CTS input isn't wired up
correctly.

Ensure that cdc_acm will not bind to the device if the custom USB-serial
driver is enabled.

Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
Signed-off-by: Manivannan Sadhasivam <mani@kernel.org>
Link: https://lore.kernel.org/r/20201122170822.21715-4-mani@kernel.org
[ johan: rewrite commit message ]
Signed-off-by: Johan Hovold <johan@kernel.org>
drivers/usb/class/cdc-acm.c

index 781905745812eaab77053a423fd4181129807a46..37f824b59daae8f96f7c2660adff672215956ef2 100644 (file)
@@ -1901,6 +1901,12 @@ static const struct usb_device_id acm_ids[] = {
        },
 #endif
 
+#if IS_ENABLED(CONFIG_USB_SERIAL_XR)
+       { USB_DEVICE(0x04e2, 0x1410),   /* Ignore XR21V141X USB to Serial converter */
+       .driver_info = IGNORE_DEVICE,
+       },
+#endif
+
        /*Samsung phone in firmware update mode */
        { USB_DEVICE(0x04e8, 0x685d),
        .driver_info = IGNORE_DEVICE,