* [v3] USB: serial: option: add id for Motorola Solutions TETRA PEI
@ 2018-01-12 9:29 Max Schulze
0 siblings, 0 replies; 4+ messages in thread
From: Max Schulze @ 2018-01-12 9:29 UTC (permalink / raw)
To: johan, gregkh, linux-usb, linux-kernel; +Cc: Max Schulze
Add Motorola Device ID and blacklist entry to the driver usb/serial/option
The device responds with URB status: Broken pipe (-EPIPE) (-32)
to URB setup requests for setting dtr/rts.
So blacklisting to avoid the usb_wwan_send_setup in usb_wwan_dtr_rts of usb_wwan.
Tested now to work with miniterm.py and minicom without errors.
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)
Signed-off-by: Max Schulze <max.schulze@posteo.de>
---
v3: reformatted Patch
drivers/usb/serial/option.c | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/drivers/usb/serial/option.c b/drivers/usb/serial/option.c
index b6320e3be429..c8819a41d2df 100644
--- a/drivers/usb/serial/option.c
+++ b/drivers/usb/serial/option.c
@@ -686,6 +686,10 @@ static const struct option_blacklist_info yuga_clm920_nc5_blacklist = {
.reserved = BIT(1) | BIT(4),
};
+static const struct option_blacklist_info motorola_pei_blacklist = {
+ .sendsetup = BIT(0) | BIT(1),
+};
+
static const struct usb_device_id option_ids[] = {
{ USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_COLT) },
{ USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_RICOLA) },
@@ -2054,6 +2058,8 @@ static const struct usb_device_id option_ids[] = {
{ USB_DEVICE_AND_INTERFACE_INFO(WETELECOM_VENDOR_ID, WETELECOM_PRODUCT_6802, 0xff, 0xff, 0xff) },
{ USB_DEVICE_AND_INTERFACE_INFO(WETELECOM_VENDOR_ID, WETELECOM_PRODUCT_WMD300, 0xff, 0xff, 0xff) },
{ USB_DEVICE_AND_INTERFACE_INFO(0x03f0, 0x421d, 0xff, 0xff, 0xff) }, /* HP lt2523 (Novatel E371) */
+ { USB_DEVICE(0x0cad, 0x9011), /* Motorola Solutions TETRA PEI */
+ .driver_info = (kernel_ulong_t)&motorola_pei_blacklist },
{ } /* Terminating entry */
};
MODULE_DEVICE_TABLE(usb, option_ids);
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [v3] USB: serial: option: add id for Motorola Solutions TETRA PEI
@ 2018-01-12 17:19 Johan Hovold
0 siblings, 0 replies; 4+ messages in thread
From: Johan Hovold @ 2018-01-12 17:19 UTC (permalink / raw)
To: Max Schulze; +Cc: johan, gregkh, linux-usb, linux-kernel
On Fri, Jan 12, 2018 at 10:29:54AM +0100, Max Schulze wrote:
> Add Motorola Device ID and blacklist entry to the driver usb/serial/option
>
> The device responds with URB status: Broken pipe (-EPIPE) (-32)
> to URB setup requests for setting dtr/rts.
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.
Please give the below patch a try.
> So blacklisting to avoid the usb_wwan_send_setup in usb_wwan_dtr_rts of usb_wwan.
> Tested now to work with miniterm.py and minicom without errors.
>
> 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)
>
>
> Signed-off-by: Max Schulze <max.schulze@posteo.de>
Even if this is a trivial patch, you clearly based it on the patch I
sent you and this is something that should at least have been mentioned
in the commit message. Something to keep in mind for future submissions.
Thanks,
Johan
>From a7ab87acf85b67303e7bf606734176a365aae9cd Mon Sep 17 00:00:00 2001
From: Johan Hovold <johan@kernel.org>
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@posteo.de>
Cc: stable <stable@vger.kernel.org>
Signed-off-by: Johan Hovold <johan@kernel.org>
---
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(),
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [v3] USB: serial: option: add id for Motorola Solutions TETRA PEI
@ 2018-01-15 23:12 Max Schulze
0 siblings, 0 replies; 4+ messages in thread
From: Max Schulze @ 2018-01-15 23:12 UTC (permalink / raw)
To: Johan Hovold; +Cc: gregkh, linux-usb, linux-kernel
> 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@kernel.org>
> 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@posteo.de>
> Cc: stable <stable@vger.kernel.org>
> Signed-off-by: Johan Hovold <johan@kernel.org>
> ---
> 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@posteo.de>
---
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] 4+ messages in thread
* [v3] USB: serial: option: add id for Motorola Solutions TETRA PEI
@ 2018-01-18 3:26 Johan Hovold
0 siblings, 0 replies; 4+ messages in thread
From: Johan Hovold @ 2018-01-18 3:26 UTC (permalink / raw)
To: Max Schulze; +Cc: Johan Hovold, gregkh, linux-usb, linux-kernel
On Tue, Jan 16, 2018 at 12:12:33AM +0100, Max Schulze wrote:
>
> > 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.
That's good. In your initial mail you mentioned that it was doing a
TIOCMBIS that was failing with the generic driver (which is essentially
the same thing as a "simple" driver).
> [ 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@kernel.org>
> > 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@posteo.de>
> > Cc: stable <stable@vger.kernel.org>
> > Signed-off-by: Johan Hovold <johan@kernel.org>
> Works as-is. Tested in miniterm.py and minicom.
>
> Tested-by: Max Schulze <max.schulze@posteo.de>
Thanks for testing!
Johan
---
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2018-01-18 3:26 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-01-12 17:19 [v3] USB: serial: option: add id for Motorola Solutions TETRA PEI Johan Hovold
-- strict thread matches above, loose matches on Subject: below --
2018-01-18 3:26 Johan Hovold
2018-01-15 23:12 Max Schulze
2018-01-12 9:29 Max Schulze
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).