diff mbox

[torvalds-2.6] cdc_ether: fix autosuspend for mbm devices

Message ID 201004261214.13836.torgny.johansson@ericsson.com
State Accepted, archived
Delegated to: David Miller
Headers show

Commit Message

Torgny Johansson April 26, 2010, 10:14 a.m. UTC
Hi!

In 2.6.33 it seems autosuspend is broken for mbm devices.

Autosuspend works until you bring the wwan interface up, then the device does not enter autosuspend anymore.

The following patch fixes the problem by setting the .manage_power field in the mbm_info struct 
to the same as in the cdc_info struct (cdc_manager_power).

I am unsure exactly what that does and why autosuspend doesn't work without it. 
Can you guys comment on that? Is this fix the correct approach?

Also, if you like this patch, is it possible to get it included in a minor release of 2.6.33 (e.g. 2.6.33.3) as a bugfix?

Regards
Torgny Johansson

---
Signed-off-by: Torgny Johansson <torgny.johansson@ericsson.com>


--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Comments

Oliver Neukum April 26, 2010, 10:30 a.m. UTC | #1
Am Montag, 26. April 2010 12:14:13 schrieb Torgny Johansson:
> Hi!
> 
> In 2.6.33 it seems autosuspend is broken for mbm devices.

It is hardly broken. It simply wasn't implemented.

> Autosuspend works until you bring the wwan interface up, then the device does not enter autosuspend anymore.
> 
> The following patch fixes the problem by setting the .manage_power field in the mbm_info struct 
> to the same as in the cdc_info struct (cdc_manager_power).
> 
> I am unsure exactly what that does and why autosuspend doesn't work without it. 
> Can you guys comment on that? Is this fix the correct approach?

The patch is correct. If you use another struct driver_info it is a different
driver as far as usbnet is concerned. A driver needs to give some
minimal support for autosuspend. mbm didn't do so.
 
> Also, if you like this patch, is it possible to get it included in a minor release of 2.6.33 (e.g. 2.6.33.3) as a bugfix?

Up to David.

	Regards
		Oliver
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
David Miller April 28, 2010, 12:07 a.m. UTC | #2
From: Oliver Neukum <oneukum@suse.de>
Date: Mon, 26 Apr 2010 12:30:21 +0200

>> Also, if you like this patch, is it possible to get it included in a minor release of 2.6.33 (e.g. 2.6.33.3) as a bugfix?
> 
> Up to David.

I'll apply to net-2.6 and queue up for -stable, thanks.
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Torgny Johansson April 28, 2010, 7:07 a.m. UTC | #3
onsdagen den 28 april 2010 02.07.57 skrev  David Miller:
> From: Oliver Neukum <oneukum@suse.de>
> Date: Mon, 26 Apr 2010 12:30:21 +0200
> 
> >> Also, if you like this patch, is it possible to get it included in a
> >> minor release of 2.6.33 (e.g. 2.6.33.3) as a bugfix?
> > 
> > Up to David.
> 
> I'll apply to net-2.6 and queue up for -stable, thanks.

Great, thank you!
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/drivers/net/usb/cdc_ether.c b/drivers/net/usb/cdc_ether.c
index c8cdb7f..3547cf1 100644
--- a/drivers/net/usb/cdc_ether.c
+++ b/drivers/net/usb/cdc_ether.c
@@ -431,6 +431,7 @@  static const struct driver_info mbm_info = {
 	.bind = 	cdc_bind,
 	.unbind =	usbnet_cdc_unbind,
 	.status =	cdc_status,
+	.manage_power =	cdc_manage_power,
 };
 
 /*-------------------------------------------------------------------------*/