aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net')
-rw-r--r--drivers/net/usb/cdc_mbim.c5
-rw-r--r--drivers/net/usb/qmi_wwan.c5
-rw-r--r--drivers/net/usb/smsc75xx.c6
-rw-r--r--drivers/net/usb/smsc95xx.c6
4 files changed, 20 insertions, 2 deletions
diff --git a/drivers/net/usb/cdc_mbim.c b/drivers/net/usb/cdc_mbim.c
index 16c842997291..673e3624713e 100644
--- a/drivers/net/usb/cdc_mbim.c
+++ b/drivers/net/usb/cdc_mbim.c
@@ -323,6 +323,11 @@ static int cdc_mbim_suspend(struct usb_interface *intf, pm_message_t message)
323 goto error; 323 goto error;
324 } 324 }
325 325
326 /*
327 * Both usbnet_suspend() and subdriver->suspend() MUST return 0
328 * in system sleep context, otherwise, the resume callback has
329 * to recover device from previous suspend failure.
330 */
326 ret = usbnet_suspend(intf, message); 331 ret = usbnet_suspend(intf, message);
327 if (ret < 0) 332 if (ret < 0)
328 goto error; 333 goto error;
diff --git a/drivers/net/usb/qmi_wwan.c b/drivers/net/usb/qmi_wwan.c
index 968d5d50751d..bdceb7411de3 100644
--- a/drivers/net/usb/qmi_wwan.c
+++ b/drivers/net/usb/qmi_wwan.c
@@ -271,6 +271,11 @@ static int qmi_wwan_suspend(struct usb_interface *intf, pm_message_t message)
271 struct qmi_wwan_state *info = (void *)&dev->data; 271 struct qmi_wwan_state *info = (void *)&dev->data;
272 int ret; 272 int ret;
273 273
274 /*
275 * Both usbnet_suspend() and subdriver->suspend() MUST return 0
276 * in system sleep context, otherwise, the resume callback has
277 * to recover device from previous suspend failure.
278 */
274 ret = usbnet_suspend(intf, message); 279 ret = usbnet_suspend(intf, message);
275 if (ret < 0) 280 if (ret < 0)
276 goto err; 281 goto err;
diff --git a/drivers/net/usb/smsc75xx.c b/drivers/net/usb/smsc75xx.c
index 1a15ec14c386..75409748c774 100644
--- a/drivers/net/usb/smsc75xx.c
+++ b/drivers/net/usb/smsc75xx.c
@@ -2015,7 +2015,11 @@ static int smsc75xx_suspend(struct usb_interface *intf, pm_message_t message)
2015 ret = smsc75xx_enter_suspend0(dev); 2015 ret = smsc75xx_enter_suspend0(dev);
2016 2016
2017done: 2017done:
2018 if (ret) 2018 /*
2019 * TODO: resume() might need to handle the suspend failure
2020 * in system sleep
2021 */
2022 if (ret && PMSG_IS_AUTO(message))
2019 usbnet_resume(intf); 2023 usbnet_resume(intf);
2020 return ret; 2024 return ret;
2021} 2025}
diff --git a/drivers/net/usb/smsc95xx.c b/drivers/net/usb/smsc95xx.c
index e6d2dea1373c..3f38ba868f61 100644
--- a/drivers/net/usb/smsc95xx.c
+++ b/drivers/net/usb/smsc95xx.c
@@ -1660,7 +1660,11 @@ static int smsc95xx_suspend(struct usb_interface *intf, pm_message_t message)
1660 ret = smsc95xx_enter_suspend0(dev); 1660 ret = smsc95xx_enter_suspend0(dev);
1661 1661
1662done: 1662done:
1663 if (ret) 1663 /*
1664 * TODO: resume() might need to handle the suspend failure
1665 * in system sleep
1666 */
1667 if (ret && PMSG_IS_AUTO(message))
1664 usbnet_resume(intf); 1668 usbnet_resume(intf);
1665 return ret; 1669 return ret;
1666} 1670}