diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2011-04-01 11:53:50 -0400 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2011-04-01 11:53:50 -0400 |
| commit | 84daeb09ef2b11cb0b29e100766e38e206c8bc47 (patch) | |
| tree | c89748e1bb8618aac7ad0d2079fba43543844483 /drivers/net/usb/cdc_ether.c | |
| parent | ecb78ab6f30106ab72a575a25b1cdfd1633b7ca2 (diff) | |
| parent | c100c8f4c3c6f2a407bdbaaad2c4f1062e6a473a (diff) | |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6
* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6:
appletalk: Fix OOPS in atalk_release().
mlx4: Fixing bad size of event queue buffer
mlx4: Fixing use after free
bonding:typo in comment
sctp: Pass __GFP_NOWARN to hash table allocation attempts.
connector: convert to synchronous netlink message processing
fib: add rtnl locking in ip_fib_net_exit
atm/solos-pci: Don't flap VCs when carrier state changes
atm/solos-pci: Don't include frame pseudo-header on transmit hex-dump
atm/solos-pci: Use VPI.VCI notation uniformly.
Atheros, atl2: Fix mem leaks in error paths of atl2_set_eeprom
netdev: fix mtu check when TSO is enabled
net/usb: Ethernet quirks for the LG-VL600 4G modem
phylib: phy_attach_direct: phy_init_hw can fail, add cleanup
bridge: mcast snooping, fix length check of snooped MLDv1/2
via-ircc: Pass PCI device pointer to dma_{alloc, free}_coherent()
via-ircc: Use pci_{get, set}_drvdata() instead of static pointer variable
net: gre: provide multicast mappings for ipv4 and ipv6
bridge: Fix compilation warning in function br_stp_recalculate_bridge_id()
net: Fix warnings caused by MAX_SKB_FRAGS change.
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 | * |
