Re: [PATCH v3] USB: serial: option: add id for Motorola Solutions TETRA PEI

From: Max Schulze
Date: Mon Jan 15 2018 - 18:12:42 EST



> This indicates that option isn't the right driver for this for device.
>
> I think we should add a new simple driver for it instead, which reports
> that modem control isn't (yet) supported (yes, your python script would
> need to be updated). This can be extended into a "real" driver, should
> we learn more about the protocol used.

Thank you. Tested with miniterm.py - it doesn't need any changes because
no erroneous URB's are sent.

[Â 172.249297] usb_serial_simple 1-1.4:1.0: motorola_tetra converter
detected
[Â 172.249403] usb 1-1.4: motorola_tetra converter now attached to ttyUSB0
[Â 172.249502] usb_serial_simple 1-1.4:1.1: motorola_tetra converter
detected
[Â 172.249578] usb 1-1.4: motorola_tetra converter now attached to ttyUSB1

> >From a7ab87acf85b67303e7bf606734176a365aae9cd Mon Sep 17 00:00:00 2001
> From: Johan Hovold <johan@xxxxxxxxxx>
> Date: Fri, 12 Jan 2018 17:53:35 +0100
> Subject: [PATCH] USB: serial: simple: add Motorola Tetra driver
>
> Add new Motorola Tetra (simple) driver for Motorola Solutions TETRA PEI
> devices.
>
> D: Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs= 1
> P: Vendor=0cad ProdID=9011 Rev=24.16
> S: Manufacturer=Motorola Solutions Inc.
> S: Product=Motorola Solutions TETRA PEI interface
> C: #Ifs= 2 Cfg#= 1 Atr=80 MxPwr=500mA
> I: If#= 0 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=00 Prot=00 Driver=(none)
> I: If#= 1 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=00 Prot=00 Driver=(none)
>
> Note that these devices do not support the CDC SET_CONTROL_LINE_STATE
> request (for any interface).
>
> Reported-by: Max Schulze <max.schulze@xxxxxxxxx>
> Cc: stable <stable@xxxxxxxxxxxxxxx>
> Signed-off-by: Johan Hovold <johan@xxxxxxxxxx>
> ---
> drivers/usb/serial/Kconfig | 1 +
> drivers/usb/serial/usb-serial-simple.c | 7 +++++++
> 2 files changed, 8 insertions(+)
>
> diff --git a/drivers/usb/serial/Kconfig b/drivers/usb/serial/Kconfig
> index a8d5f2e4878d..c66b93664d54 100644
> --- a/drivers/usb/serial/Kconfig
> +++ b/drivers/usb/serial/Kconfig
> @@ -63,6 +63,7 @@ config USB_SERIAL_SIMPLE
> - Google USB serial devices
> - HP4x calculators
> - a number of Motorola phones
> + - Motorola Tetra devices
> - Novatel Wireless GPS receivers
> - Siemens USB/MPI adapter.
> - ViVOtech ViVOpay USB device.
> diff --git a/drivers/usb/serial/usb-serial-simple.c b/drivers/usb/serial/usb-serial-simple.c
> index 74172fe158df..4ef79e29cb26 100644
> --- a/drivers/usb/serial/usb-serial-simple.c
> +++ b/drivers/usb/serial/usb-serial-simple.c
> @@ -77,6 +77,11 @@ DEVICE(vivopay, VIVOPAY_IDS);
> { USB_DEVICE(0x22b8, 0x2c64) } /* Motorola V950 phone */
> DEVICE(moto_modem, MOTO_IDS);
>
> +/* Motorola Tetra driver */
> +#define MOTOROLA_TETRA_IDS() \
> + { USB_DEVICE(0x0cad, 0x9011) } /* Motorola Solutions TETRA PEI */
> +DEVICE(motorola_tetra, MOTOROLA_TETRA_IDS);
> +
> /* Novatel Wireless GPS driver */
> #define NOVATEL_IDS() \
> { USB_DEVICE(0x09d7, 0x0100) } /* NovAtel FlexPack GPS */
> @@ -107,6 +112,7 @@ static struct usb_serial_driver * const serial_drivers[] = {
> &google_device,
> &vivopay_device,
> &moto_modem_device,
> + &motorola_tetra_device,
> &novatel_gps_device,
> &hp4x_device,
> &suunto_device,
> @@ -122,6 +128,7 @@ static const struct usb_device_id id_table[] = {
> GOOGLE_IDS(),
> VIVOPAY_IDS(),
> MOTO_IDS(),
> + MOTOROLA_TETRA_IDS(),
> NOVATEL_IDS(),
> HP4X_IDS(),
> SUUNTO_IDS(),
> --
> 2.15.1
>
> --

Works as-is. Tested in miniterm.py and minicom.

Tested-by: Max Schulze <max.schulze@xxxxxxxxx>