diff mbox

usb:serial:optrion: fix dwm-158 3g modem interface

Message ID 20180423070306.30796-1-giu.lippolis@gmail.com (mailing list archive)
State New, archived
Headers show

Commit Message

Giuseppe Lippolis April 23, 2018, 7:03 a.m. UTC
The dwm-158 interface 4 and 5 doesn't answer to the AT commands
and doesn't appears a option interface.
Tested on openwrt distribution (kernel 4.14 using the old blacklist
definitions).

Signed-off-by: Giuseppe Lippolis <giu.lippolis@gmail.com>
---
 drivers/usb/serial/option.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

Comments

Lars Melin April 23, 2018, 7:14 a.m. UTC | #1
On 4/23/2018 14:03, Giuseppe Lippolis wrote:
> The dwm-158 interface 4 and 5 doesn't answer to the AT commands
> and doesn't appears a option interface.
> Tested on openwrt distribution (kernel 4.14 using the old blacklist
> definitions).
> 
> Signed-off-by: Giuseppe Lippolis <giu.lippolis@gmail.com>
> ---
>   drivers/usb/serial/option.c | 3 ++-
>   1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/usb/serial/option.c b/drivers/usb/serial/option.c
> index c3f252283ab9..f0c3612467a3 100644
> --- a/drivers/usb/serial/option.c
> +++ b/drivers/usb/serial/option.c
> @@ -1911,7 +1911,8 @@ static const struct usb_device_id option_ids[] = {
>   	{ USB_DEVICE_INTERFACE_CLASS(0x2001, 0x7d01, 0xff) },			/* D-Link DWM-156 (variant) */
>   	{ USB_DEVICE_INTERFACE_CLASS(0x2001, 0x7d02, 0xff) },
>   	{ USB_DEVICE_INTERFACE_CLASS(0x2001, 0x7d03, 0xff) },
> -	{ USB_DEVICE_INTERFACE_CLASS(0x2001, 0x7d04, 0xff) },			/* D-Link DWM-158 */
> +	{ USB_DEVICE_INTERFACE_CLASS(0x2001, 0x7d04, 0xff),			/* D-Link DWM-158 */
> +	 .driver_info = RSVD(4) | RSVD(5) },
>   	{ USB_DEVICE_INTERFACE_CLASS(0x2001, 0x7d0e, 0xff) },			/* D-Link DWM-157 C1 */
>   	{ USB_DEVICE_INTERFACE_CLASS(0x2001, 0x7e19, 0xff),			/* D-Link DWM-221 B1 */
>   	  .driver_info = RSVD(4) },

Blacklisting interface 4 and 5 is correct because:

MI_00 D-Link Mobile Broadband Device  (cdc_ether)
MI_02 D-Link HSPA+DataCard Diagnostics Interface (also ppp modem)
MI_03 D-Link HSPA+DataCard NMEA Device
MI_04 D-Link HSPA+DataCard Speech Port
MI_05 D-Link HSPA+DataCard Debug Port
MI_06 USB Mass Storage Device


rgds
/Lars
--
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
Johan Hovold April 23, 2018, 8:42 a.m. UTC | #2
On Mon, Apr 23, 2018 at 02:14:01PM +0700, Lars Melin wrote:
> On 4/23/2018 14:03, Giuseppe Lippolis wrote:
> > The dwm-158 interface 4 and 5 doesn't answer to the AT commands
> > and doesn't appears a option interface.
> > Tested on openwrt distribution (kernel 4.14 using the old blacklist
> > definitions).
> > 
> > Signed-off-by: Giuseppe Lippolis <giu.lippolis@gmail.com>
> > ---
> >   drivers/usb/serial/option.c | 3 ++-
> >   1 file changed, 2 insertions(+), 1 deletion(-)
> > 
> > diff --git a/drivers/usb/serial/option.c b/drivers/usb/serial/option.c
> > index c3f252283ab9..f0c3612467a3 100644
> > --- a/drivers/usb/serial/option.c
> > +++ b/drivers/usb/serial/option.c
> > @@ -1911,7 +1911,8 @@ static const struct usb_device_id option_ids[] = {
> >   	{ USB_DEVICE_INTERFACE_CLASS(0x2001, 0x7d01, 0xff) },			/* D-Link DWM-156 (variant) */
> >   	{ USB_DEVICE_INTERFACE_CLASS(0x2001, 0x7d02, 0xff) },
> >   	{ USB_DEVICE_INTERFACE_CLASS(0x2001, 0x7d03, 0xff) },
> > -	{ USB_DEVICE_INTERFACE_CLASS(0x2001, 0x7d04, 0xff) },			/* D-Link DWM-158 */
> > +	{ USB_DEVICE_INTERFACE_CLASS(0x2001, 0x7d04, 0xff),			/* D-Link DWM-158 */
> > +	 .driver_info = RSVD(4) | RSVD(5) },
> >   	{ USB_DEVICE_INTERFACE_CLASS(0x2001, 0x7d0e, 0xff) },			/* D-Link DWM-157 C1 */
> >   	{ USB_DEVICE_INTERFACE_CLASS(0x2001, 0x7e19, 0xff),			/* D-Link DWM-221 B1 */
> >   	  .driver_info = RSVD(4) },
> 
> Blacklisting interface 4 and 5 is correct because:
> 
> MI_00 D-Link Mobile Broadband Device  (cdc_ether)
> MI_02 D-Link HSPA+DataCard Diagnostics Interface (also ppp modem)
> MI_03 D-Link HSPA+DataCard NMEA Device
> MI_04 D-Link HSPA+DataCard Speech Port
> MI_05 D-Link HSPA+DataCard Debug Port
> MI_06 USB Mass Storage Device

Thanks to both of you. I added Lars's comment to the commit message
before applying.

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
Sergei Shtylyov April 23, 2018, 8:58 a.m. UTC | #3
Hello!

    s/optrion/option/ in the subject. And please add spaces after each colon.

MBR, Sergei
--
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
Johan Hovold April 23, 2018, 9:02 a.m. UTC | #4
On Mon, Apr 23, 2018 at 11:58:18AM +0300, Sergei Shtylyov wrote:
> Hello!
> 
>     s/optrion/option/ in the subject. And please add spaces after each colon.

Yeah, I fixed that up myself before applying this time.

Thanks,
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
Dan Williams April 23, 2018, 4:54 p.m. UTC | #5
On Mon, 2018-04-23 at 14:14 +0700, Lars Melin wrote:
> On 4/23/2018 14:03, Giuseppe Lippolis wrote:
> > The dwm-158 interface 4 and 5 doesn't answer to the AT commands
> > and doesn't appears a option interface.
> > Tested on openwrt distribution (kernel 4.14 using the old blacklist
> > definitions).
> > 
> > Signed-off-by: Giuseppe Lippolis <giu.lippolis@gmail.com>
> > ---
> >   drivers/usb/serial/option.c | 3 ++-
> >   1 file changed, 2 insertions(+), 1 deletion(-)
> > 
> > diff --git a/drivers/usb/serial/option.c
> > b/drivers/usb/serial/option.c
> > index c3f252283ab9..f0c3612467a3 100644
> > --- a/drivers/usb/serial/option.c
> > +++ b/drivers/usb/serial/option.c
> > @@ -1911,7 +1911,8 @@ static const struct usb_device_id
> > option_ids[] = {
> >   	{ USB_DEVICE_INTERFACE_CLASS(0x2001, 0x7d01, 0xff) },	
> > 		/* D-Link DWM-156 (variant) */
> >   	{ USB_DEVICE_INTERFACE_CLASS(0x2001, 0x7d02, 0xff) },
> >   	{ USB_DEVICE_INTERFACE_CLASS(0x2001, 0x7d03, 0xff) },
> > -	{ USB_DEVICE_INTERFACE_CLASS(0x2001, 0x7d04, 0xff) },	
> > 		/* D-Link DWM-158 */
> > +	{ USB_DEVICE_INTERFACE_CLASS(0x2001, 0x7d04, 0xff),	
> > 		/* D-Link DWM-158 */
> > +	 .driver_info = RSVD(4) | RSVD(5) },
> >   	{ USB_DEVICE_INTERFACE_CLASS(0x2001, 0x7d0e, 0xff) },	
> > 		/* D-Link DWM-157 C1 */
> >   	{ USB_DEVICE_INTERFACE_CLASS(0x2001, 0x7e19, 0xff),	
> > 		/* D-Link DWM-221 B1 */
> >   	  .driver_info = RSVD(4) },
> 
> Blacklisting interface 4 and 5 is correct because:
> 
> MI_00 D-Link Mobile Broadband Device  (cdc_ether)
> MI_02 D-Link HSPA+DataCard Diagnostics Interface (also ppp modem)
> MI_03 D-Link HSPA+DataCard NMEA Device
> MI_04 D-Link HSPA+DataCard Speech Port

Any idea what format this port speaks?  Some Huawei Qualcomm-based
devices still use a TTY driver but send/receive 16-bit 8000hz PCM audio
frames via a serial port.  If the D-Link does something similar, it may
still make sense to drive it via option.

> MI_05 D-Link HSPA+DataCard Debug Port

If it's FCCID KA2WM158B1 then it's a Qualcomm device, and this port may
be a DIAG port.  It should also be driven by option if that's the case.

I looked but couldn't find downloadable drivers for the DWM-158 so I
couldn't double-check myself.

Dan

> MI_06 USB Mass Storage Device
> 
> 
> rgds
> /Lars
> --
> 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
--
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
Lars Melin April 24, 2018, 2:55 a.m. UTC | #6
On 4/23/2018 23:54, Dan Williams wrote:

>> MI_00 D-Link Mobile Broadband Device  (cdc_ether)
>> MI_02 D-Link HSPA+DataCard Diagnostics Interface (also ppp m
>> MI_03 D-Link HSPA+DataCard NMEA Device
>> MI_04 D-Link HSPA+DataCard Speech Port
> 
> Any idea what format this port speaks?  Some Huawei Qualcomm-based
> devices still use a TTY driver but send/receive 16-bit 8000hz PCM audio
> frames via a serial port.  If the D-Link does something similar, it may
> still make sense to drive it via option.
> 
>> MI_05 D-Link HSPA+DataCard Debug Port
> 
> If it's FCCID KA2WM158B1 then it's a Qualcomm device, and this port may
> be a DIAG port.  It should also be driven by option if that's the case.
> 
> I looked but couldn't find downloadable drivers for the DWM-158 so I
> couldn't double-check myself.
> 
> Dan

This is a DWM-158D1 or maybe they have versioned it E1, it is Mediatek 
based.
Most (all?) of new D-Link modems are made by BroadMobi using Mediatek 
chipset and having an additional AT cmdset in the AT+BM form.


/Lars
--
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
Dan Williams April 24, 2018, 4:21 a.m. UTC | #7
On Tue, 2018-04-24 at 09:55 +0700, Lars Melin wrote:
> On 4/23/2018 23:54, Dan Williams wrote:
> 
> > > MI_00 D-Link Mobile Broadband Device  (cdc_ether)
> > > MI_02 D-Link HSPA+DataCard Diagnostics Interface (also ppp m
> > > MI_03 D-Link HSPA+DataCard NMEA Device
> > > MI_04 D-Link HSPA+DataCard Speech Port
> > 
> > Any idea what format this port speaks?  Some Huawei Qualcomm-based
> > devices still use a TTY driver but send/receive 16-bit 8000hz PCM
> > audio
> > frames via a serial port.  If the D-Link does something similar, it
> > may
> > still make sense to drive it via option.
> > 
> > > MI_05 D-Link HSPA+DataCard Debug Port
> > 
> > If it's FCCID KA2WM158B1 then it's a Qualcomm device, and this port
> > may
> > be a DIAG port.  It should also be driven by option if that's the
> > case.
> > 
> > I looked but couldn't find downloadable drivers for the DWM-158 so
> > I
> > couldn't double-check myself.
> > 
> > Dan
> 
> This is a DWM-158D1 or maybe they have versioned it E1, it is
> Mediatek 
> based.

Fair enough, then it certainly won't have DM/DIAG.

Dan

> Most (all?) of new D-Link modems are made by BroadMobi using
> Mediatek 
> chipset and having an additional AT cmdset in the AT+BM form.
> 
> 
> /Lars
--
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
Johan Hovold April 24, 2018, 5:28 p.m. UTC | #8
On Mon, Apr 23, 2018 at 11:54:32AM -0500, Dan Williams wrote:
> On Mon, 2018-04-23 at 14:14 +0700, Lars Melin wrote:

> > Blacklisting interface 4 and 5 is correct because:
> > 
> > MI_00 D-Link Mobile Broadband Device  (cdc_ether)
> > MI_02 D-Link HSPA+DataCard Diagnostics Interface (also ppp modem)
> > MI_03 D-Link HSPA+DataCard NMEA Device
> > MI_04 D-Link HSPA+DataCard Speech Port
> 
> Any idea what format this port speaks?  Some Huawei Qualcomm-based
> devices still use a TTY driver but send/receive 16-bit 8000hz PCM audio
> frames via a serial port.

Wow. Shouldn't this really be handled by an ALSA driver?

Thanks,
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
Johan Hovold April 24, 2018, 5:30 p.m. UTC | #9
On Mon, Apr 23, 2018 at 11:21:32PM -0500, Dan Williams wrote:
> On Tue, 2018-04-24 at 09:55 +0700, Lars Melin wrote:
> > On 4/23/2018 23:54, Dan Williams wrote:
> > 
> > > > MI_00 D-Link Mobile Broadband Device  (cdc_ether)
> > > > MI_02 D-Link HSPA+DataCard Diagnostics Interface (also ppp m
> > > > MI_03 D-Link HSPA+DataCard NMEA Device
> > > > MI_04 D-Link HSPA+DataCard Speech Port
> > > 
> > > Any idea what format this port speaks?  Some Huawei Qualcomm-based
> > > devices still use a TTY driver but send/receive 16-bit 8000hz PCM
> > > audio
> > > frames via a serial port.  If the D-Link does something similar, it
> > > may
> > > still make sense to drive it via option.
> > > 
> > > > MI_05 D-Link HSPA+DataCard Debug Port
> > > 
> > > If it's FCCID KA2WM158B1 then it's a Qualcomm device, and this port
> > > may
> > > be a DIAG port.  It should also be driven by option if that's the
> > > case.
> > > 
> > > I looked but couldn't find downloadable drivers for the DWM-158 so
> > > I
> > > couldn't double-check myself.
> > > 
> > > Dan
> > 
> > This is a DWM-158D1 or maybe they have versioned it E1, it is
> > Mediatek 
> > based.
> 
> Fair enough, then it certainly won't have DM/DIAG.

Thanks for verifying. I'll go drop the stable tags from this one just in
case.

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
diff mbox

Patch

diff --git a/drivers/usb/serial/option.c b/drivers/usb/serial/option.c
index c3f252283ab9..f0c3612467a3 100644
--- a/drivers/usb/serial/option.c
+++ b/drivers/usb/serial/option.c
@@ -1911,7 +1911,8 @@  static const struct usb_device_id option_ids[] = {
 	{ USB_DEVICE_INTERFACE_CLASS(0x2001, 0x7d01, 0xff) },			/* D-Link DWM-156 (variant) */
 	{ USB_DEVICE_INTERFACE_CLASS(0x2001, 0x7d02, 0xff) },
 	{ USB_DEVICE_INTERFACE_CLASS(0x2001, 0x7d03, 0xff) },
-	{ USB_DEVICE_INTERFACE_CLASS(0x2001, 0x7d04, 0xff) },			/* D-Link DWM-158 */
+	{ USB_DEVICE_INTERFACE_CLASS(0x2001, 0x7d04, 0xff),			/* D-Link DWM-158 */
+	 .driver_info = RSVD(4) | RSVD(5) },
 	{ USB_DEVICE_INTERFACE_CLASS(0x2001, 0x7d0e, 0xff) },			/* D-Link DWM-157 C1 */
 	{ USB_DEVICE_INTERFACE_CLASS(0x2001, 0x7e19, 0xff),			/* D-Link DWM-221 B1 */
 	  .driver_info = RSVD(4) },