Message ID | 3db5418fe9e516f4b290736c5a199c9796025e3c.1601715478.git.wilken.gottwalt@mailbox.org |
---|---|
State | Superseded |
Headers | show |
Series | add Cellient MPL200 card | expand |
On Sat, Oct 03, 2020 at 11:40:29AM +0200, Wilken Gottwalt wrote: > Add usb ids of the Cellient MPL200 card. > > Signed-off-by: Wilken Gottwalt <wilken.gottwalt@mailbox.org> > --- > drivers/usb/serial/option.c | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/drivers/usb/serial/option.c b/drivers/usb/serial/option.c > index 0c6f160a214a..a65e620b2277 100644 > --- a/drivers/usb/serial/option.c > +++ b/drivers/usb/serial/option.c > @@ -528,6 +528,7 @@ static void option_instat_callback(struct urb *urb); > /* Cellient products */ > #define CELLIENT_VENDOR_ID 0x2692 > #define CELLIENT_PRODUCT_MEN200 0x9005 > +#define CELLIENT_PRODUCT_MPL200 0x9025 > > /* Hyundai Petatel Inc. products */ > #define PETATEL_VENDOR_ID 0x1ff4 > @@ -1982,6 +1983,8 @@ static const struct usb_device_id option_ids[] = { > { USB_DEVICE_AND_INTERFACE_INFO(MEDIATEK_VENDOR_ID, MEDIATEK_PRODUCT_DC_4COM2, 0xff, 0x02, 0x01) }, > { USB_DEVICE_AND_INTERFACE_INFO(MEDIATEK_VENDOR_ID, MEDIATEK_PRODUCT_DC_4COM2, 0xff, 0x00, 0x00) }, > { USB_DEVICE(CELLIENT_VENDOR_ID, CELLIENT_PRODUCT_MEN200) }, > + { USB_DEVICE(CELLIENT_VENDOR_ID, CELLIENT_PRODUCT_MPL200), > + .driver_info = RSVD(1) | RSVD(4) }, Would you mind posting the output of "lsusb -v" for this device? > { USB_DEVICE(PETATEL_VENDOR_ID, PETATEL_PRODUCT_NP10T_600A) }, > { USB_DEVICE(PETATEL_VENDOR_ID, PETATEL_PRODUCT_NP10T_600E) }, > { USB_DEVICE_AND_INTERFACE_INFO(TPLINK_VENDOR_ID, TPLINK_PRODUCT_LTE, 0xff, 0x00, 0x00) }, /* TP-Link LTE Module */ Johan
On Mon, 5 Oct 2020 10:20:45 +0200 Johan Hovold <johan@kernel.org> wrote: > On Sat, Oct 03, 2020 at 11:40:29AM +0200, Wilken Gottwalt wrote: > > Add usb ids of the Cellient MPL200 card. > > > > Signed-off-by: Wilken Gottwalt <wilken.gottwalt@mailbox.org> > > --- > > drivers/usb/serial/option.c | 3 +++ > > 1 file changed, 3 insertions(+) > > > > diff --git a/drivers/usb/serial/option.c b/drivers/usb/serial/option.c > > index 0c6f160a214a..a65e620b2277 100644 > > --- a/drivers/usb/serial/option.c > > +++ b/drivers/usb/serial/option.c > > @@ -528,6 +528,7 @@ static void option_instat_callback(struct urb *urb); > > /* Cellient products */ > > #define CELLIENT_VENDOR_ID 0x2692 > > #define CELLIENT_PRODUCT_MEN200 0x9005 > > +#define CELLIENT_PRODUCT_MPL200 0x9025 > > > > /* Hyundai Petatel Inc. products */ > > #define PETATEL_VENDOR_ID 0x1ff4 > > @@ -1982,6 +1983,8 @@ static const struct usb_device_id option_ids[] = { > > { USB_DEVICE_AND_INTERFACE_INFO(MEDIATEK_VENDOR_ID, MEDIATEK_PRODUCT_DC_4COM2, 0xff, > > 0x02, 0x01) }, { USB_DEVICE_AND_INTERFACE_INFO(MEDIATEK_VENDOR_ID, MEDIATEK_PRODUCT_DC_4COM2, > > 0xff, 0x00, 0x00) }, { USB_DEVICE(CELLIENT_VENDOR_ID, CELLIENT_PRODUCT_MEN200) }, > > + { USB_DEVICE(CELLIENT_VENDOR_ID, CELLIENT_PRODUCT_MPL200), > > + .driver_info = RSVD(1) | RSVD(4) }, > > Would you mind posting the output of "lsusb -v" for this device? I would like to, but unfortunately I lost access to this really rare hardware about a month ago. It is a Qualcomm device (0x05c6:0x9025) with a slightly modified firmware to rebrand it as a Cellient product with a different vendor id. How to proceed here, if I have no access to it anymore? Drop it? > > { USB_DEVICE(PETATEL_VENDOR_ID, PETATEL_PRODUCT_NP10T_600A) }, > > { USB_DEVICE(PETATEL_VENDOR_ID, PETATEL_PRODUCT_NP10T_600E) }, > > { USB_DEVICE_AND_INTERFACE_INFO(TPLINK_VENDOR_ID, TPLINK_PRODUCT_LTE, 0xff, 0x00, > > 0x00) }, /* TP-Link LTE Module */ > > Johan greetings, Will
On Mon, Oct 05, 2020 at 01:01:34PM +0200, Wilken Gottwalt wrote: > On Mon, 5 Oct 2020 10:20:45 +0200 > Johan Hovold <johan@kernel.org> wrote: > > > On Sat, Oct 03, 2020 at 11:40:29AM +0200, Wilken Gottwalt wrote: > > > Add usb ids of the Cellient MPL200 card. > > > > > > Signed-off-by: Wilken Gottwalt <wilken.gottwalt@mailbox.org> > > > --- > > > @@ -1982,6 +1983,8 @@ static const struct usb_device_id option_ids[] = { > > > { USB_DEVICE_AND_INTERFACE_INFO(MEDIATEK_VENDOR_ID, MEDIATEK_PRODUCT_DC_4COM2, 0xff, > > > 0x02, 0x01) }, { USB_DEVICE_AND_INTERFACE_INFO(MEDIATEK_VENDOR_ID, MEDIATEK_PRODUCT_DC_4COM2, > > > 0xff, 0x00, 0x00) }, { USB_DEVICE(CELLIENT_VENDOR_ID, CELLIENT_PRODUCT_MEN200) }, > > > + { USB_DEVICE(CELLIENT_VENDOR_ID, CELLIENT_PRODUCT_MPL200), > > > + .driver_info = RSVD(1) | RSVD(4) }, > > > > Would you mind posting the output of "lsusb -v" for this device? > > I would like to, but unfortunately I lost access to this really rare hardware > about a month ago. It is a Qualcomm device (0x05c6:0x9025) with a slightly > modified firmware to rebrand it as a Cellient product with a different vendor > id. How to proceed here, if I have no access to it anymore? Drop it? No, that's ok, I've applied the patch now. It's just that in case we ever need to revisit the handling of quirky devices, it has proven useful to have a record the descriptors. Do you remember the interface layout and why you blacklisted interface 1? Johan
On 10/5/2020 18:06, Johan Hovold wrote: > On Mon, Oct 05, 2020 at 01:01:34PM +0200, Wilken Gottwalt wrote: >> On Mon, 5 Oct 2020 10:20:45 +0200 >> Johan Hovold <johan@kernel.org> wrote: >> >>> On Sat, Oct 03, 2020 at 11:40:29AM +0200, Wilken Gottwalt wrote: >>>> Add usb ids of the Cellient MPL200 card. >>>> >>>> Signed-off-by: Wilken Gottwalt <wilken.gottwalt@mailbox.org> >>>> --- > >>>> @@ -1982,6 +1983,8 @@ static const struct usb_device_id option_ids[] = { >>>> { USB_DEVICE_AND_INTERFACE_INFO(MEDIATEK_VENDOR_ID, MEDIATEK_PRODUCT_DC_4COM2, 0xff, >>>> 0x02, 0x01) }, { USB_DEVICE_AND_INTERFACE_INFO(MEDIATEK_VENDOR_ID, MEDIATEK_PRODUCT_DC_4COM2, >>>> 0xff, 0x00, 0x00) }, { USB_DEVICE(CELLIENT_VENDOR_ID, CELLIENT_PRODUCT_MEN200) }, >>>> + { USB_DEVICE(CELLIENT_VENDOR_ID, CELLIENT_PRODUCT_MPL200), >>>> + .driver_info = RSVD(1) | RSVD(4) }, >>> >>> Would you mind posting the output of "lsusb -v" for this device? >> >> I would like to, but unfortunately I lost access to this really rare hardware >> about a month ago. It is a Qualcomm device (0x05c6:0x9025) with a slightly >> modified firmware to rebrand it as a Cellient product with a different vendor >> id. How to proceed here, if I have no access to it anymore? Drop it? > > No, that's ok, I've applied the patch now. It's just that in case we > ever need to revisit the handling of quirky devices, it has proven > useful to have a record the descriptors. > > Do you remember the interface layout and why you blacklisted interface > 1? > > Johan > It is very likely that Cellient has replaced the VID with their own and kept the PID, it is something other mfgrs has done when buying modules from Qualcomm's series of devices with predefined composition. The MS Windows driver for 05c6:9025 describes the interfaces as: MI_00 Qualcomm HS-USB Diagnostics 9025 MI_01 Android Composite ADB Interface MI_02 Qualcomm HS-USB Android Modem 9025 MI_03 Qualcomm HS-USB NMEA 9025 MI_04 Qualcomm Wireless HS-USB Ethernet Adapter 9025 MI_05 USB Mass Storage Device where the net interface is for QMI/RMNET. It fully matches the blacklisting Wilken has done for 2692:9025 br Lars
On Mon, 5 Oct 2020 13:06:38 +0200 Johan Hovold <johan@kernel.org> wrote: > On Mon, Oct 05, 2020 at 01:01:34PM +0200, Wilken Gottwalt wrote: > > On Mon, 5 Oct 2020 10:20:45 +0200 > > Johan Hovold <johan@kernel.org> wrote: > > > > > On Sat, Oct 03, 2020 at 11:40:29AM +0200, Wilken Gottwalt wrote: > > > > Add usb ids of the Cellient MPL200 card. > > > > > > > > Signed-off-by: Wilken Gottwalt <wilken.gottwalt@mailbox.org> > > > > --- > > > > > @@ -1982,6 +1983,8 @@ static const struct usb_device_id option_ids[] = { > > > > { USB_DEVICE_AND_INTERFACE_INFO(MEDIATEK_VENDOR_ID, MEDIATEK_PRODUCT_DC_4COM2, > > > > 0xff, 0x02, 0x01) }, { USB_DEVICE_AND_INTERFACE_INFO(MEDIATEK_VENDOR_ID, > > > > MEDIATEK_PRODUCT_DC_4COM2, 0xff, 0x00, 0x00) }, { USB_DEVICE(CELLIENT_VENDOR_ID, > > > > CELLIENT_PRODUCT_MEN200) }, > > > > + { USB_DEVICE(CELLIENT_VENDOR_ID, CELLIENT_PRODUCT_MPL200), > > > > + .driver_info = RSVD(1) | RSVD(4) }, > > > > > > Would you mind posting the output of "lsusb -v" for this device? > > > > I would like to, but unfortunately I lost access to this really rare hardware > > about a month ago. It is a Qualcomm device (0x05c6:0x9025) with a slightly > > modified firmware to rebrand it as a Cellient product with a different vendor > > id. How to proceed here, if I have no access to it anymore? Drop it? > > No, that's ok, I've applied the patch now. It's just that in case we > ever need to revisit the handling of quirky devices, it has proven > useful to have a record the descriptors. > > Do you remember the interface layout and why you blacklisted interface > 1? If I remember correctly this interface belongs to the GPS data, but the card itself has no connector for a GPS antenna. The NMEA protocol data there were bogus values. I'm not sure if there is a hardware revision which has the connector, but the firmware seems to support it. Interface 4 is the qmi endpoint for sure. The other endpoints are Hayes protocol and diag. greetings, Will
On Mon, 5 Oct 2020 18:36:36 +0700 Lars Melin <larsm17@gmail.com> wrote: > On 10/5/2020 18:06, Johan Hovold wrote: > > On Mon, Oct 05, 2020 at 01:01:34PM +0200, Wilken Gottwalt wrote: > >> On Mon, 5 Oct 2020 10:20:45 +0200 > >> Johan Hovold <johan@kernel.org> wrote: > >> > >>> On Sat, Oct 03, 2020 at 11:40:29AM +0200, Wilken Gottwalt wrote: > >>>> Add usb ids of the Cellient MPL200 card. > >>>> > >>>> Signed-off-by: Wilken Gottwalt <wilken.gottwalt@mailbox.org> > >>>> --- > > > >>>> @@ -1982,6 +1983,8 @@ static const struct usb_device_id option_ids[] = { > >>>> { USB_DEVICE_AND_INTERFACE_INFO(MEDIATEK_VENDOR_ID, MEDIATEK_PRODUCT_DC_4COM2, > >>>> 0xff, 0x02, 0x01) }, { USB_DEVICE_AND_INTERFACE_INFO(MEDIATEK_VENDOR_ID, > >>>> MEDIATEK_PRODUCT_DC_4COM2, 0xff, 0x00, 0x00) }, { USB_DEVICE(CELLIENT_VENDOR_ID, > >>>> CELLIENT_PRODUCT_MEN200) }, > >>>> + { USB_DEVICE(CELLIENT_VENDOR_ID, CELLIENT_PRODUCT_MPL200), > >>>> + .driver_info = RSVD(1) | RSVD(4) }, > >>> > >>> Would you mind posting the output of "lsusb -v" for this device? > >> > >> I would like to, but unfortunately I lost access to this really rare hardware > >> about a month ago. It is a Qualcomm device (0x05c6:0x9025) with a slightly > >> modified firmware to rebrand it as a Cellient product with a different vendor > >> id. How to proceed here, if I have no access to it anymore? Drop it? > > > > No, that's ok, I've applied the patch now. It's just that in case we > > ever need to revisit the handling of quirky devices, it has proven > > useful to have a record the descriptors. > > > > Do you remember the interface layout and why you blacklisted interface > > 1? > > > > Johan > > > > It is very likely that Cellient has replaced the VID with their own and > kept the PID, it is something other mfgrs has done when buying modules > from Qualcomm's series of devices with predefined composition. > > The MS Windows driver for 05c6:9025 describes the interfaces as: > > MI_00 Qualcomm HS-USB Diagnostics 9025 > MI_01 Android Composite ADB Interface > MI_02 Qualcomm HS-USB Android Modem 9025 > MI_03 Qualcomm HS-USB NMEA 9025 > MI_04 Qualcomm Wireless HS-USB Ethernet Adapter 9025 > MI_05 USB Mass Storage Device > > where the net interface is for QMI/RMNET. > It fully matches the blacklisting Wilken has done for 2692:9025 Does your device have a GPS connector? Mine had not and I'm not sure if the description of MI_01 is actually correct. I remember looking at this port and seeing bogus NMEA data. greetings, Will
On Mon, Oct 05, 2020 at 02:07:23PM +0200, Wilken Gottwalt wrote: > On Mon, 5 Oct 2020 18:36:36 +0700 Lars Melin <larsm17@gmail.com> wrote: > > On 10/5/2020 18:06, Johan Hovold wrote: > > > Do you remember the interface layout and why you blacklisted interface > > > 1? > > It is very likely that Cellient has replaced the VID with their own and > > kept the PID, it is something other mfgrs has done when buying modules > > from Qualcomm's series of devices with predefined composition. > > > > The MS Windows driver for 05c6:9025 describes the interfaces as: > > > > MI_00 Qualcomm HS-USB Diagnostics 9025 > > MI_01 Android Composite ADB Interface > > MI_02 Qualcomm HS-USB Android Modem 9025 > > MI_03 Qualcomm HS-USB NMEA 9025 > > MI_04 Qualcomm Wireless HS-USB Ethernet Adapter 9025 > > MI_05 USB Mass Storage Device > > > > where the net interface is for QMI/RMNET. > > It fully matches the blacklisting Wilken has done for 2692:9025 > > Does your device have a GPS connector? Mine had not and I'm not sure > if the description of MI_01 is actually correct. I remember looking at > this port and seeing bogus NMEA data. Well if it's NMEA then the interface shouldn't be blacklisted (even if the values are bogus on your device), but if it's ADB it should be as that is handled by userspace. Here's some lsusb output from a Cellient MPL200 that still uses the Qualcomm VID: https://www.mail-archive.com/modemmanager-devel@lists.freedesktop.org/msg04523.html which gives some support to Lars's hypothesis. I guess we'll just keep the first interface reserved. Johan
On Tue, 6 Oct 2020 09:02:01 +0200 Johan Hovold <johan@kernel.org> wrote: > On Mon, Oct 05, 2020 at 02:07:23PM +0200, Wilken Gottwalt wrote: > > On Mon, 5 Oct 2020 18:36:36 +0700 Lars Melin <larsm17@gmail.com> wrote: > > > On 10/5/2020 18:06, Johan Hovold wrote: > > > > > Do you remember the interface layout and why you blacklisted interface > > > > 1? > > > > It is very likely that Cellient has replaced the VID with their own and > > > kept the PID, it is something other mfgrs has done when buying modules > > > from Qualcomm's series of devices with predefined composition. > > > > > > The MS Windows driver for 05c6:9025 describes the interfaces as: > > > > > > MI_00 Qualcomm HS-USB Diagnostics 9025 > > > MI_01 Android Composite ADB Interface > > > MI_02 Qualcomm HS-USB Android Modem 9025 > > > MI_03 Qualcomm HS-USB NMEA 9025 > > > MI_04 Qualcomm Wireless HS-USB Ethernet Adapter 9025 > > > MI_05 USB Mass Storage Device > > > > > > where the net interface is for QMI/RMNET. > > > It fully matches the blacklisting Wilken has done for 2692:9025 > > > > Does your device have a GPS connector? Mine had not and I'm not sure > > if the description of MI_01 is actually correct. I remember looking at > > this port and seeing bogus NMEA data. > > Well if it's NMEA then the interface shouldn't be blacklisted (even if > the values are bogus on your device), but if it's ADB it should be as > that is handled by userspace. > > Here's some lsusb output from a Cellient MPL200 that still uses the > Qualcomm VID: > > https://www.mail-archive.com/modemmanager-devel@lists.freedesktop.org/msg04523.html > > which gives some support to Lars's hypothesis. I guess we'll just keep > the first interface reserved. Lars and Johan are right here. I found an older external Gobi driver where I actually added comments saying interface 1 is ADB and interface 3 is NMEA delivering only zeroed values because of the missing antenna connector, at least for the models I had access to. Will
On Thu, Oct 08, 2020 at 08:47:33AM +0200, Wilken Gottwalt wrote: > On Tue, 6 Oct 2020 09:02:01 +0200 > Johan Hovold <johan@kernel.org> wrote: > > > On Mon, Oct 05, 2020 at 02:07:23PM +0200, Wilken Gottwalt wrote: > > > On Mon, 5 Oct 2020 18:36:36 +0700 Lars Melin <larsm17@gmail.com> wrote: > > > > It is very likely that Cellient has replaced the VID with their own and > > > > kept the PID, it is something other mfgrs has done when buying modules > > > > from Qualcomm's series of devices with predefined composition. > > > > > > > > The MS Windows driver for 05c6:9025 describes the interfaces as: > > > > > > > > MI_00 Qualcomm HS-USB Diagnostics 9025 > > > > MI_01 Android Composite ADB Interface > > > > MI_02 Qualcomm HS-USB Android Modem 9025 > > > > MI_03 Qualcomm HS-USB NMEA 9025 > > > > MI_04 Qualcomm Wireless HS-USB Ethernet Adapter 9025 > > > > MI_05 USB Mass Storage Device > > > > > > > > where the net interface is for QMI/RMNET. > > > > It fully matches the blacklisting Wilken has done for 2692:9025 > > > > > > Does your device have a GPS connector? Mine had not and I'm not sure > > > if the description of MI_01 is actually correct. I remember looking at > > > this port and seeing bogus NMEA data. > > > > Well if it's NMEA then the interface shouldn't be blacklisted (even if > > the values are bogus on your device), but if it's ADB it should be as > > that is handled by userspace. > > > > Here's some lsusb output from a Cellient MPL200 that still uses the > > Qualcomm VID: > > > > https://www.mail-archive.com/modemmanager-devel@lists.freedesktop.org/msg04523.html > > > > which gives some support to Lars's hypothesis. I guess we'll just keep > > the first interface reserved. > > Lars and Johan are right here. I found an older external Gobi driver > where I actually added comments saying interface 1 is ADB and interface 3 > is NMEA delivering only zeroed values because of the missing antenna > connector, at least for the models I had access to. Great, thanks for confirming. Johan
diff --git a/drivers/usb/serial/option.c b/drivers/usb/serial/option.c index 0c6f160a214a..a65e620b2277 100644 --- a/drivers/usb/serial/option.c +++ b/drivers/usb/serial/option.c @@ -528,6 +528,7 @@ static void option_instat_callback(struct urb *urb); /* Cellient products */ #define CELLIENT_VENDOR_ID 0x2692 #define CELLIENT_PRODUCT_MEN200 0x9005 +#define CELLIENT_PRODUCT_MPL200 0x9025 /* Hyundai Petatel Inc. products */ #define PETATEL_VENDOR_ID 0x1ff4 @@ -1982,6 +1983,8 @@ static const struct usb_device_id option_ids[] = { { USB_DEVICE_AND_INTERFACE_INFO(MEDIATEK_VENDOR_ID, MEDIATEK_PRODUCT_DC_4COM2, 0xff, 0x02, 0x01) }, { USB_DEVICE_AND_INTERFACE_INFO(MEDIATEK_VENDOR_ID, MEDIATEK_PRODUCT_DC_4COM2, 0xff, 0x00, 0x00) }, { USB_DEVICE(CELLIENT_VENDOR_ID, CELLIENT_PRODUCT_MEN200) }, + { USB_DEVICE(CELLIENT_VENDOR_ID, CELLIENT_PRODUCT_MPL200), + .driver_info = RSVD(1) | RSVD(4) }, { USB_DEVICE(PETATEL_VENDOR_ID, PETATEL_PRODUCT_NP10T_600A) }, { USB_DEVICE(PETATEL_VENDOR_ID, PETATEL_PRODUCT_NP10T_600E) }, { USB_DEVICE_AND_INTERFACE_INFO(TPLINK_VENDOR_ID, TPLINK_PRODUCT_LTE, 0xff, 0x00, 0x00) }, /* TP-Link LTE Module */
Add usb ids of the Cellient MPL200 card. Signed-off-by: Wilken Gottwalt <wilken.gottwalt@mailbox.org> --- drivers/usb/serial/option.c | 3 +++ 1 file changed, 3 insertions(+)