2012-05-19 14:45:54

by Andrew Bird

[permalink] [raw]
Subject: [PATCH] USB CDC-Ether - Add ZTE WWAN matches before generic Ethernet

Some ZTE WWAN devices have generic CDC Ether descriptors. Add those
into the whitelist so that we get FLAG_WWAN on the interface

Signed-off-by: Andrew Bird <[email protected]>
---
drivers/net/usb/cdc_ether.c | 56 +++++++++++++++++++++++++++++++++++++++++++
1 files changed, 56 insertions(+), 0 deletions(-)

diff --git a/drivers/net/usb/cdc_ether.c b/drivers/net/usb/cdc_ether.c
index 425e201..fffee6a 100644
--- a/drivers/net/usb/cdc_ether.c
+++ b/drivers/net/usb/cdc_ether.c
@@ -486,6 +486,7 @@ static const struct driver_info wwan_info = {

#define HUAWEI_VENDOR_ID 0x12D1
#define NOVATEL_VENDOR_ID 0x1410
+#define ZTE_VENDOR_ID 0x19D2

static const struct usb_device_id products [] = {
/*
@@ -618,6 +619,61 @@ static const struct usb_device_id products [] = {
.bInterfaceProtocol = USB_CDC_PROTO_NONE,
.driver_info = (unsigned long)&wwan_info,
}, {
+ /* ZTE (Vodafone) K3805-Z */
+ .match_flags = USB_DEVICE_ID_MATCH_VENDOR
+ | USB_DEVICE_ID_MATCH_PRODUCT
+ | USB_DEVICE_ID_MATCH_INT_INFO,
+ .idVendor = ZTE_VENDOR_ID,
+ .idProduct = 0x1003,
+ .bInterfaceClass = USB_CLASS_COMM,
+ .bInterfaceSubClass = USB_CDC_SUBCLASS_ETHERNET,
+ .bInterfaceProtocol = USB_CDC_PROTO_NONE,
+ .driver_info = (unsigned long)&wwan_info,
+}, {
+ /* ZTE (Vodafone) K3806-Z */
+ .match_flags = USB_DEVICE_ID_MATCH_VENDOR
+ | USB_DEVICE_ID_MATCH_PRODUCT
+ | USB_DEVICE_ID_MATCH_INT_INFO,
+ .idVendor = ZTE_VENDOR_ID,
+ .idProduct = 0x1015,
+ .bInterfaceClass = USB_CLASS_COMM,
+ .bInterfaceSubClass = USB_CDC_SUBCLASS_ETHERNET,
+ .bInterfaceProtocol = USB_CDC_PROTO_NONE,
+ .driver_info = (unsigned long)&wwan_info,
+}, {
+ /* ZTE (Vodafone) K4510-Z */
+ .match_flags = USB_DEVICE_ID_MATCH_VENDOR
+ | USB_DEVICE_ID_MATCH_PRODUCT
+ | USB_DEVICE_ID_MATCH_INT_INFO,
+ .idVendor = ZTE_VENDOR_ID,
+ .idProduct = 0x1173,
+ .bInterfaceClass = USB_CLASS_COMM,
+ .bInterfaceSubClass = USB_CDC_SUBCLASS_ETHERNET,
+ .bInterfaceProtocol = USB_CDC_PROTO_NONE,
+ .driver_info = (unsigned long)&wwan_info,
+}, {
+ /* ZTE (Vodafone) K3770-Z */
+ .match_flags = USB_DEVICE_ID_MATCH_VENDOR
+ | USB_DEVICE_ID_MATCH_PRODUCT
+ | USB_DEVICE_ID_MATCH_INT_INFO,
+ .idVendor = ZTE_VENDOR_ID,
+ .idProduct = 0x1177,
+ .bInterfaceClass = USB_CLASS_COMM,
+ .bInterfaceSubClass = USB_CDC_SUBCLASS_ETHERNET,
+ .bInterfaceProtocol = USB_CDC_PROTO_NONE,
+ .driver_info = (unsigned long)&wwan_info,
+}, {
+ /* ZTE (Vodafone) K3772-Z */
+ .match_flags = USB_DEVICE_ID_MATCH_VENDOR
+ | USB_DEVICE_ID_MATCH_PRODUCT
+ | USB_DEVICE_ID_MATCH_INT_INFO,
+ .idVendor = ZTE_VENDOR_ID,
+ .idProduct = 0x1181,
+ .bInterfaceClass = USB_CLASS_COMM,
+ .bInterfaceSubClass = USB_CDC_SUBCLASS_ETHERNET,
+ .bInterfaceProtocol = USB_CDC_PROTO_NONE,
+ .driver_info = (unsigned long)&wwan_info,
+}, {
USB_INTERFACE_INFO(USB_CLASS_COMM, USB_CDC_SUBCLASS_ETHERNET,
USB_CDC_PROTO_NONE),
.driver_info = (unsigned long) &cdc_info,
--
1.7.6.5


2012-05-19 17:30:26

by Bjørn Mork

[permalink] [raw]
Subject: Re: [PATCH] USB CDC-Ether - Add ZTE WWAN matches before generic Ethernet

Andrew Bird <[email protected]> writes:

> Some ZTE WWAN devices have generic CDC Ether descriptors. Add those
> into the whitelist so that we get FLAG_WWAN on the interface

Are you sure none of these export QMI via the CDC Ether control
interface? Or are they not Qualcomm devices at all?

As usual, if you see a spurious "CDC: unexpected notification 01" logged
from cdc_ether, then there is reason to examine those closer. If you
don't see any such messages, then there isn't any QMI there.


Bjørn

2012-05-19 17:43:49

by Andrew Bird

[permalink] [raw]
Subject: Re: [PATCH] USB CDC-Ether - Add ZTE WWAN matches before generic Ethernet

On Saturday 19 May 2012, Bjørn Mork wrote:
> Andrew Bird <[email protected]> writes:
> > Some ZTE WWAN devices have generic CDC Ether descriptors. Add those
> > into the whitelist so that we get FLAG_WWAN on the interface
>
> Are you sure none of these export QMI via the CDC Ether control
> interface? Or are they not Qualcomm devices at all?
>
> As usual, if you see a spurious "CDC: unexpected notification 01" logged
> from cdc_ether, then there is reason to examine those closer. If you
> don't see any such messages, then there isn't any QMI there.
>
>
> Bjørn

Hi Bjørn,
No these are devices that use the Icera chipset. They have cdc-acm serial
ports and firmware has implemented AT commands for (de)activating the pseudo
Ethernet and getting IP + DNS values etc. Actually applying this patch will
provide little in terms of operation except to make the interface name wwan%d
unstead of usb%d and to flag the interface such that Network Manager does not
try to bring it up via DHCP as soon as it appears, like it would with a fixed
Ethernet interface.

Good tip about the 'unexpected notification 01' I'll look out for that!

Andrew

2012-05-19 22:48:25

by David Miller

[permalink] [raw]
Subject: Re: [PATCH] USB CDC-Ether - Add ZTE WWAN matches before generic Ethernet

From: Andrew Bird <[email protected]>
Date: Sat, 19 May 2012 14:56:07 +0100

> Some ZTE WWAN devices have generic CDC Ether descriptors. Add those
> into the whitelist so that we get FLAG_WWAN on the interface
>
> Signed-off-by: Andrew Bird <[email protected]>

Applied.

But I changed the Subject line to have a more appropriate prefix,
namely "net: cdc_ether: "