Message ID | 20190815082602.51765-1-tony@atomide.com (mailing list archive) |
---|---|
State | Mainlined |
Commit | 6caf0be40a707689e8ff8824fdb96ef77685b1ba |
Headers | show |
Series | [PATCHv2] USB: serial: option: Add Motorola modem UARTs | expand |
On Thu 2019-08-15 01:26:02, Tony Lindgren wrote: > On Motorola Mapphone devices such as Droid 4 there are five USB ports > that do not use the same layout as Gobi 1K/2K/etc devices listed in > qcserial.c. So we should use qcaux.c or option.c as noted by > Dan Williams <dan.j.williams@intel.com>. > > As the Motorola USB serial ports have an interrupt endpoint as shown > with lsusb -v, we should use option.c instead of qcaux.c as pointed out > by Johan Hovold <johan@kernel.org>. > > The ff/ff/ff interfaces seem to always be UARTs on Motorola devices. > For the other interfaces, class 0x0a (CDC Data) should not in general > be added as they are typically part of a multi-interface function as > noted earlier by Bjørn Mork <bjorn@mork.no>. Acked-by: Pavel Machek <pavel@ucw.cz> > Cc: Sebastian Reichel <sre@kernel.org> > Tested-by: Pavel Machek <pavel@ucw.cz> > Signed-off-by: Tony Lingren <tony@atomide.com>
On Thu, Aug 15, 2019 at 01:26:02AM -0700, Tony Lindgren wrote: > On Motorola Mapphone devices such as Droid 4 there are five USB ports > that do not use the same layout as Gobi 1K/2K/etc devices listed in > qcserial.c. So we should use qcaux.c or option.c as noted by > Dan Williams <dan.j.williams@intel.com>. > > As the Motorola USB serial ports have an interrupt endpoint as shown > with lsusb -v, we should use option.c instead of qcaux.c as pointed out > by Johan Hovold <johan@kernel.org>. > > The ff/ff/ff interfaces seem to always be UARTs on Motorola devices. > For the other interfaces, class 0x0a (CDC Data) should not in general > be added as they are typically part of a multi-interface function as > noted earlier by Bjørn Mork <bjorn@mork.no>. > > However, looking at the Motorola mapphone kernel code, the mdm6600 0x0a > class is only used for flashing the modem firmware, and there are no > other interfaces. So I've added that too with more details below as it > works just fine. > > The ttyUSB ports on Droid 4 are: > > ttyUSB0 DIAG, CQDM-capable > ttyUSB1 MUX or NMEA, no response > ttyUSB2 MUX or NMEA, no response > ttyUSB3 TCMD > ttyUSB4 AT-capable > Tested-by: Pavel Machek <pavel@ucw.cz> > Signed-off-by: Tony Lingren <tony@atomide.com> I fixed up the typo in your name here, which checkpatch caught. > --- > > Changes since v1: > - Leave out defines as suggested by Lars Thanks, Tony. Now applied. Johan
* Johan Hovold <johan@kernel.org> [190815 11:28]: > On Thu, Aug 15, 2019 at 01:26:02AM -0700, Tony Lindgren wrote: > > Tested-by: Pavel Machek <pavel@ucw.cz> > > Signed-off-by: Tony Lingren <tony@atomide.com> > > I fixed up the typo in your name here, which checkpatch caught. Oopsie :) > > Changes since v1: > > - Leave out defines as suggested by Lars > > Thanks, Tony. Now applied. Thanks, Tony
diff --git a/drivers/usb/serial/option.c b/drivers/usb/serial/option.c --- a/drivers/usb/serial/option.c +++ b/drivers/usb/serial/option.c @@ -968,6 +968,11 @@ static const struct usb_device_id option_ids[] = { { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x06, 0x7B) }, { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x06, 0x7C) }, + /* Motorola devices */ + { USB_DEVICE_AND_INTERFACE_INFO(0x22b8, 0x2a70, 0xff, 0xff, 0xff) }, /* mdm6600 */ + { USB_DEVICE_AND_INTERFACE_INFO(0x22b8, 0x2e0a, 0xff, 0xff, 0xff) }, /* mdm9600 */ + { USB_DEVICE_AND_INTERFACE_INFO(0x22b8, 0x4281, 0x0a, 0x00, 0xfc) }, /* mdm ram dl */ + { USB_DEVICE_AND_INTERFACE_INFO(0x22b8, 0x900e, 0xff, 0xff, 0xff) }, /* mdm qc dl */ { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_V640) }, { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_V620) },