diff options
author | Oliver Neukum <oliver@neukum.org> | 2009-12-03 18:31:18 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2009-12-03 18:31:18 -0500 |
commit | 69ee472f2706371ca639de49b06df91615c07d8d (patch) | |
tree | 3f6de524e96679a2e54b55bb0ba9d1fd71c8222c /drivers/net/usb/cdc_ether.c | |
parent | 7f515790274d26d710303b7a1f23571ca93a6288 (diff) |
usbnet & cdc-ether: Autosuspend for online devices
Using remote wakeup and delayed transmission to allow
online device to go into usb autosuspend.
Minimal alternate support for devices that don't support
remote wakeup.
Signed-off-by: Oliver Neukum <oliver@neukum.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/usb/cdc_ether.c')
-rw-r--r-- | drivers/net/usb/cdc_ether.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/drivers/net/usb/cdc_ether.c b/drivers/net/usb/cdc_ether.c index 197912d9c04a..21e183a83b99 100644 --- a/drivers/net/usb/cdc_ether.c +++ b/drivers/net/usb/cdc_ether.c | |||
@@ -411,6 +411,12 @@ static int cdc_bind(struct usbnet *dev, struct usb_interface *intf) | |||
411 | return 0; | 411 | return 0; |
412 | } | 412 | } |
413 | 413 | ||
414 | static int cdc_manage_power(struct usbnet *dev, int on) | ||
415 | { | ||
416 | dev->intf->needs_remote_wakeup = on; | ||
417 | return 0; | ||
418 | } | ||
419 | |||
414 | static const struct driver_info cdc_info = { | 420 | static const struct driver_info cdc_info = { |
415 | .description = "CDC Ethernet Device", | 421 | .description = "CDC Ethernet Device", |
416 | .flags = FLAG_ETHER | FLAG_LINK_INTR, | 422 | .flags = FLAG_ETHER | FLAG_LINK_INTR, |
@@ -418,6 +424,7 @@ static const struct driver_info cdc_info = { | |||
418 | .bind = cdc_bind, | 424 | .bind = cdc_bind, |
419 | .unbind = usbnet_cdc_unbind, | 425 | .unbind = usbnet_cdc_unbind, |
420 | .status = cdc_status, | 426 | .status = cdc_status, |
427 | .manage_power = cdc_manage_power, | ||
421 | }; | 428 | }; |
422 | 429 | ||
423 | static const struct driver_info mbm_info = { | 430 | static const struct driver_info mbm_info = { |
@@ -619,6 +626,7 @@ static struct usb_driver cdc_driver = { | |||
619 | .suspend = usbnet_suspend, | 626 | .suspend = usbnet_suspend, |
620 | .resume = usbnet_resume, | 627 | .resume = usbnet_resume, |
621 | .reset_resume = usbnet_resume, | 628 | .reset_resume = usbnet_resume, |
629 | .supports_autosuspend = 1, | ||
622 | }; | 630 | }; |
623 | 631 | ||
624 | 632 | ||