[PATCH] Add power management op for RNDIS host

Shaoxu Liu posted 1 patch 1 week, 5 days ago
There is a newer version of this series
drivers/net/usb/rndis_host.c | 16 ++++++++++++++++
1 file changed, 16 insertions(+)
[PATCH] Add power management op for RNDIS host
Posted by Shaoxu Liu 1 week, 5 days ago
RNDIS host does not manage the USB power, and it will
cause more power consumption even when no data transferring.

Adding the power management operator will make the USB
enter suspend mode when no data transferring.
---
 drivers/net/usb/rndis_host.c | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

diff --git a/drivers/net/usb/rndis_host.c b/drivers/net/usb/rndis_host.c
index 7b3739b29..76eb65fd5 100644
--- a/drivers/net/usb/rndis_host.c
+++ b/drivers/net/usb/rndis_host.c
@@ -630,6 +630,17 @@ static const struct driver_info	zte_rndis_info = {
 	.tx_fixup =	rndis_tx_fixup,
 };
 
+static const struct driver_info	rndis_info_lowpower = {
+	.description =	"RNDIS device",
+	.flags =	FLAG_ETHER | FLAG_POINTTOPOINT | FLAG_FRAMING_RN | FLAG_NO_SETINT,
+	.bind =		rndis_bind,
+	.unbind =	rndis_unbind,
+	.status =	rndis_status,
+	.rx_fixup =	rndis_rx_fixup,
+	.tx_fixup =	rndis_tx_fixup,
+	.manage_power =	usbnet_manage_power,
+};
+
 /*-------------------------------------------------------------------------*/
 
 static const struct usb_device_id	products [] = {
@@ -657,6 +668,11 @@ static const struct usb_device_id	products [] = {
 	/* RNDIS is MSFT's un-official variant of CDC ACM */
 	USB_INTERFACE_INFO(USB_CLASS_COMM, 2 /* ACM */, 0x0ff),
 	.driver_info = (unsigned long) &rndis_info,
+}, {
+	/* RNDIS for Telit Cinterion low power LTE cat1biz modules LE310X1*/
+	USB_DEVICE_AND_INTERFACE_INFO(0x1bc7, 0x7030,
+				      USB_CLASS_WIRELESS_CONTROLLER, 1, 3),
+	.driver_info = (unsigned long)&rndis_info_lowpower,
 }, {
 	/* "ActiveSync" is an undocumented variant of RNDIS, used in WM5 */
 	USB_INTERFACE_INFO(USB_CLASS_MISC, 1, 1),
-- 
2.25.1
Signed-off-by: Shaoxu Liu <shaoxul@foxmail.com>
Re: [PATCH] Add power management op for RNDIS host
Posted by Greg KH 1 week, 5 days ago
On Wed, May 27, 2026 at 03:47:41PM +0800, Shaoxu Liu wrote:
> RNDIS host does not manage the USB power, and it will
> cause more power consumption even when no data transferring.
> 
> Adding the power management operator will make the USB
> enter suspend mode when no data transferring.
> ---
>  drivers/net/usb/rndis_host.c | 16 ++++++++++++++++
>  1 file changed, 16 insertions(+)
> 
> diff --git a/drivers/net/usb/rndis_host.c b/drivers/net/usb/rndis_host.c
> index 7b3739b29..76eb65fd5 100644
> --- a/drivers/net/usb/rndis_host.c
> +++ b/drivers/net/usb/rndis_host.c
> @@ -630,6 +630,17 @@ static const struct driver_info	zte_rndis_info = {
>  	.tx_fixup =	rndis_tx_fixup,
>  };
>  
> +static const struct driver_info	rndis_info_lowpower = {
> +	.description =	"RNDIS device",
> +	.flags =	FLAG_ETHER | FLAG_POINTTOPOINT | FLAG_FRAMING_RN | FLAG_NO_SETINT,
> +	.bind =		rndis_bind,
> +	.unbind =	rndis_unbind,
> +	.status =	rndis_status,
> +	.rx_fixup =	rndis_rx_fixup,
> +	.tx_fixup =	rndis_tx_fixup,
> +	.manage_power =	usbnet_manage_power,
> +};
> +
>  /*-------------------------------------------------------------------------*/
>  
>  static const struct usb_device_id	products [] = {
> @@ -657,6 +668,11 @@ static const struct usb_device_id	products [] = {
>  	/* RNDIS is MSFT's un-official variant of CDC ACM */
>  	USB_INTERFACE_INFO(USB_CLASS_COMM, 2 /* ACM */, 0x0ff),
>  	.driver_info = (unsigned long) &rndis_info,
> +}, {
> +	/* RNDIS for Telit Cinterion low power LTE cat1biz modules LE310X1*/
> +	USB_DEVICE_AND_INTERFACE_INFO(0x1bc7, 0x7030,
> +				      USB_CLASS_WIRELESS_CONTROLLER, 1, 3),
> +	.driver_info = (unsigned long)&rndis_info_lowpower,
>  }, {
>  	/* "ActiveSync" is an undocumented variant of RNDIS, used in WM5 */
>  	USB_INTERFACE_INFO(USB_CLASS_MISC, 1, 1),
> -- 
> 2.25.1
> Signed-off-by: Shaoxu Liu <shaoxul@foxmail.com>
> 
> 

Hi,

This is the friendly patch-bot of Greg Kroah-Hartman.  You have sent him
a patch that has triggered this response.  He used to manually respond
to these common problems, but in order to save his sanity (he kept
writing the same thing over and over, yet to different people), I was
created.  Hopefully you will not take offence and will fix the problem
in your patch and resubmit it so that it can be accepted into the Linux
kernel tree.

You are receiving this message because of the following common error(s)
as indicated below:

- Your patch does not have a Signed-off-by: line.  Please read the
  kernel file, Documentation/process/submitting-patches.rst and resend
  it after adding that line.  Note, the line needs to be in the body of
  the email, before the patch, not at the bottom of the patch or in the
  email signature.

If you wish to discuss this problem further, or you have questions about
how to resolve this issue, please feel free to respond to this email and
Greg will reply once he has dug out from the pending patches received
from other developers.

thanks,

greg k-h's patch email bot