diff options
Diffstat (limited to 'drivers/net/usb/cdc_ether.c')
| -rw-r--r-- | drivers/net/usb/cdc_ether.c | 18 | 
1 files changed, 14 insertions, 4 deletions
| diff --git a/drivers/net/usb/cdc_ether.c b/drivers/net/usb/cdc_ether.c index 51c259b69278..c924ea2bce07 100644 --- a/drivers/net/usb/cdc_ether.c +++ b/drivers/net/usb/cdc_ether.c @@ -452,7 +452,7 @@ static int cdc_manage_power(struct usbnet *dev, int on)  static const struct driver_info	cdc_info = {  	.description =	"CDC Ethernet Device", -	.flags =	FLAG_ETHER, +	.flags =	FLAG_ETHER | FLAG_POINTTOPOINT,  	// .check_connect = cdc_check_connect,  	.bind =		usbnet_cdc_bind,  	.unbind =	usbnet_cdc_unbind, @@ -460,7 +460,7 @@ static const struct driver_info	cdc_info = {  	.manage_power =	cdc_manage_power,  }; -static const struct driver_info mbm_info = { +static const struct driver_info wwan_info = {  	.description =	"Mobile Broadband Network Device",  	.flags =	FLAG_WWAN,  	.bind =		usbnet_cdc_bind, @@ -471,6 +471,7 @@ static const struct driver_info mbm_info = {  /*-------------------------------------------------------------------------*/ +#define HUAWEI_VENDOR_ID	0x12D1  static const struct usb_device_id	products [] = {  /* @@ -566,7 +567,7 @@ static const struct usb_device_id	products [] = {  {  	USB_DEVICE_AND_INTERFACE_INFO(0x1004, 0x61aa, USB_CLASS_COMM,  			USB_CDC_SUBCLASS_ETHERNET, USB_CDC_PROTO_NONE), -	.driver_info		= 0, +	.driver_info = (unsigned long)&wwan_info,  },  /* @@ -587,8 +588,17 @@ static const struct usb_device_id	products [] = {  }, {  	USB_INTERFACE_INFO(USB_CLASS_COMM, USB_CDC_SUBCLASS_MDLM,  			USB_CDC_PROTO_NONE), -	.driver_info = (unsigned long)&mbm_info, +	.driver_info = (unsigned long)&wwan_info, +}, { +	/* Various Huawei modems with a network port like the UMG1831 */ +	.match_flags    =   USB_DEVICE_ID_MATCH_VENDOR +		 | USB_DEVICE_ID_MATCH_INT_INFO, +	.idVendor               = HUAWEI_VENDOR_ID, +	.bInterfaceClass	= USB_CLASS_COMM, +	.bInterfaceSubClass	= USB_CDC_SUBCLASS_ETHERNET, +	.bInterfaceProtocol	= 255, +	.driver_info = (unsigned long)&wwan_info,  },  	{ },		// END  }; |