Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge tag 'usb-serial-4.19-rc7' of https://git.kernel.org/pub/scm/linux/kernel/git/johan/usb-serial into usb-linus

Johan writes:

USB-serial fixes for v4.19-rc7

Here are some device-id patches for 4.19-rc7.

Some Quectel modems have a vendor command which can be used to disable
certain interfaces in their configurations, but unlike some other modems
this also causes the interface numbers to change. These patches allow us
to support all such interface permutations at least for the Quectel
EP06.

All have been in linux-next with no reported issues.

Signed-off-by: Johan Hovold <johan@kernel.org>

* tag 'usb-serial-4.19-rc7' of https://git.kernel.org/pub/scm/linux/kernel/git/johan/usb-serial:
USB: serial: simple: add Motorola Tetra MTP6550 id
USB: serial: option: add two-endpoints device-id flag
USB: serial: option: improve Quectel EP06 detection

+15 -3
+13 -2
drivers/usb/serial/option.c
··· 561 561 /* Interface is reserved */ 562 562 #define RSVD(ifnum) ((BIT(ifnum) & 0xff) << 0) 563 563 564 + /* Interface must have two endpoints */ 565 + #define NUMEP2 BIT(16) 566 + 564 567 565 568 static const struct usb_device_id option_ids[] = { 566 569 { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_COLT) }, ··· 1084 1081 .driver_info = RSVD(4) }, 1085 1082 { USB_DEVICE(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_BG96), 1086 1083 .driver_info = RSVD(4) }, 1087 - { USB_DEVICE(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EP06), 1088 - .driver_info = RSVD(4) | RSVD(5) }, 1084 + { USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EP06, 0xff, 0xff, 0xff), 1085 + .driver_info = RSVD(1) | RSVD(2) | RSVD(3) | RSVD(4) | NUMEP2 }, 1086 + { USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EP06, 0xff, 0, 0) }, 1089 1087 { USB_DEVICE(CMOTECH_VENDOR_ID, CMOTECH_PRODUCT_6001) }, 1090 1088 { USB_DEVICE(CMOTECH_VENDOR_ID, CMOTECH_PRODUCT_CMU_300) }, 1091 1089 { USB_DEVICE(CMOTECH_VENDOR_ID, CMOTECH_PRODUCT_6003), ··· 2001 1997 * the Windows driver .INF files for reserved interface numbers. 2002 1998 */ 2003 1999 if (device_flags & RSVD(iface_desc->bInterfaceNumber)) 2000 + return -ENODEV; 2001 + 2002 + /* 2003 + * Allow matching on bNumEndpoints for devices whose interface numbers 2004 + * can change (e.g. Quectel EP06). 2005 + */ 2006 + if (device_flags & NUMEP2 && iface_desc->bNumEndpoints != 2) 2004 2007 return -ENODEV; 2005 2008 2006 2009 /* Store the device flags so we can use them during attach. */
+2 -1
drivers/usb/serial/usb-serial-simple.c
··· 84 84 85 85 /* Motorola Tetra driver */ 86 86 #define MOTOROLA_TETRA_IDS() \ 87 - { USB_DEVICE(0x0cad, 0x9011) } /* Motorola Solutions TETRA PEI */ 87 + { USB_DEVICE(0x0cad, 0x9011) }, /* Motorola Solutions TETRA PEI */ \ 88 + { USB_DEVICE(0x0cad, 0x9012) } /* MTP6550 */ 88 89 DEVICE(motorola_tetra, MOTOROLA_TETRA_IDS); 89 90 90 91 /* Novatel Wireless GPS driver */