[PATCH] Add power management op for RNDIS host

Shaoxu Liu posted 1 patch 1 week ago
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 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.

Signed-off-by: Shaoxu Liu <shaoxul@foxmail.com>
---
 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
Re: [PATCH] Add power management op for RNDIS host
Posted by Andrew Lunn 6 days, 17 hours ago
On Mon, Jun 01, 2026 at 11:29:19AM +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.

You are doing two things here.

1) Adding a new vendor:Product ID
2) Making that new device manage power.

The commit message does not make this clear. Please split this into
two patches, and make the commit messages better.

Also, please take a read of:

https://www.kernel.org/doc/html/latest/process/maintainer-netdev.html


    Andrew

---
pw-bot: cr