rndis_host: enable power management for Telit LE310X1

Enable autosuspend support for Telit Cinterion LE310X1 RNDIS interface
by selecting a driver_info variant with manage_power callback.

This keeps power management scoped to the new Telit ID only, and avoids
changing behavior for all existing RNDIS devices.

Signed-off-by: Shaoxu Liu <shaoxul@foxmail.com>
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
Link: https://patch.msgid.link/tencent_B7686B84CD4B76D76BB912FA6367FAC2CA05@qq.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
Shaoxu Liu 2026-06-02 17:05:28 +08:00 committed by Jakub Kicinski
parent c847ff789f
commit 3dfc7fe1d5

View File

@ -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 [] = {
@ -661,7 +672,7 @@ static const struct usb_device_id products [] = {
/* Telit Cinterion LE310X1 RNDIS */
USB_DEVICE_AND_INTERFACE_INFO(0x1bc7, 0x7030,
USB_CLASS_WIRELESS_CONTROLLER, 1, 3),
.driver_info = (unsigned long)&rndis_info,
.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),