diff options
Diffstat (limited to 'drivers/net/usb/cdc_ether.c')
| -rw-r--r-- | drivers/net/usb/cdc_ether.c | 21 |
1 files changed, 15 insertions, 6 deletions
diff --git a/drivers/net/usb/cdc_ether.c b/drivers/net/usb/cdc_ether.c index 9a60e415d76b..51c259b69278 100644 --- a/drivers/net/usb/cdc_ether.c +++ b/drivers/net/usb/cdc_ether.c | |||
| @@ -378,7 +378,7 @@ static void dumpspeed(struct usbnet *dev, __le32 *speeds) | |||
| 378 | __le32_to_cpu(speeds[1]) / 1000); | 378 | __le32_to_cpu(speeds[1]) / 1000); |
| 379 | } | 379 | } |
| 380 | 380 | ||
| 381 | static void cdc_status(struct usbnet *dev, struct urb *urb) | 381 | void usbnet_cdc_status(struct usbnet *dev, struct urb *urb) |
| 382 | { | 382 | { |
| 383 | struct usb_cdc_notification *event; | 383 | struct usb_cdc_notification *event; |
| 384 | 384 | ||
| @@ -418,8 +418,9 @@ static void cdc_status(struct usbnet *dev, struct urb *urb) | |||
| 418 | break; | 418 | break; |
| 419 | } | 419 | } |
| 420 | } | 420 | } |
| 421 | EXPORT_SYMBOL_GPL(usbnet_cdc_status); | ||
| 421 | 422 | ||
| 422 | static int cdc_bind(struct usbnet *dev, struct usb_interface *intf) | 423 | int usbnet_cdc_bind(struct usbnet *dev, struct usb_interface *intf) |
| 423 | { | 424 | { |
| 424 | int status; | 425 | int status; |
| 425 | struct cdc_state *info = (void *) &dev->data; | 426 | struct cdc_state *info = (void *) &dev->data; |
| @@ -441,6 +442,7 @@ static int cdc_bind(struct usbnet *dev, struct usb_interface *intf) | |||
| 441 | */ | 442 | */ |
| 442 | return 0; | 443 | return 0; |
| 443 | } | 444 | } |
| 445 | EXPORT_SYMBOL_GPL(usbnet_cdc_bind); | ||
| 444 | 446 | ||
| 445 | static int cdc_manage_power(struct usbnet *dev, int on) | 447 | static int cdc_manage_power(struct usbnet *dev, int on) |
| 446 | { | 448 | { |
| @@ -452,18 +454,18 @@ static const struct driver_info cdc_info = { | |||
| 452 | .description = "CDC Ethernet Device", | 454 | .description = "CDC Ethernet Device", |
| 453 | .flags = FLAG_ETHER, | 455 | .flags = FLAG_ETHER, |
| 454 | // .check_connect = cdc_check_connect, | 456 | // .check_connect = cdc_check_connect, |
| 455 | .bind = cdc_bind, | 457 | .bind = usbnet_cdc_bind, |
| 456 | .unbind = usbnet_cdc_unbind, | 458 | .unbind = usbnet_cdc_unbind, |
| 457 | .status = cdc_status, | 459 | .status = usbnet_cdc_status, |
| 458 | .manage_power = cdc_manage_power, | 460 | .manage_power = cdc_manage_power, |
| 459 | }; | 461 | }; |
| 460 | 462 | ||
| 461 | static const struct driver_info mbm_info = { | 463 | static const struct driver_info mbm_info = { |
| 462 | .description = "Mobile Broadband Network Device", | 464 | .description = "Mobile Broadband Network Device", |
| 463 | .flags = FLAG_WWAN, | 465 | .flags = FLAG_WWAN, |
| 464 | .bind = cdc_bind, | 466 | .bind = usbnet_cdc_bind, |
| 465 | .unbind = usbnet_cdc_unbind, | 467 | .unbind = usbnet_cdc_unbind, |
| 466 | .status = cdc_status, | 468 | .status = usbnet_cdc_status, |
| 467 | .manage_power = cdc_manage_power, | 469 | .manage_power = cdc_manage_power, |
| 468 | }; | 470 | }; |
| 469 | 471 | ||
| @@ -560,6 +562,13 @@ static const struct usb_device_id products [] = { | |||
| 560 | .driver_info = 0, | 562 | .driver_info = 0, |
| 561 | }, | 563 | }, |
| 562 | 564 | ||
| 565 | /* LG Electronics VL600 wants additional headers on every frame */ | ||
| 566 | { | ||
| 567 | USB_DEVICE_AND_INTERFACE_INFO(0x1004, 0x61aa, USB_CLASS_COMM, | ||
| 568 | USB_CDC_SUBCLASS_ETHERNET, USB_CDC_PROTO_NONE), | ||
| 569 | .driver_info = 0, | ||
| 570 | }, | ||
| 571 | |||
| 563 | /* | 572 | /* |
| 564 | * WHITELIST!!! | 573 | * WHITELIST!!! |
| 565 | * | 574 | * |
