| From facdc1976c51ee33b20dbe63b70b15be46a8c810 Mon Sep 17 00:00:00 2001 |
| From: Hayes Wang <hayeswang@realtek.com> |
| Date: Wed, 22 Jan 2020 16:02:07 +0800 |
| Subject: [PATCH] r8152: get default setting of WOL before initializing |
| |
| commit 9583a3638dc07cc1878f41265e85ed497f72efcb upstream. |
| |
| Initailization would reset runtime suspend by tp->saved_wolopts, so |
| the tp->saved_wolopts should be set before initializing. |
| |
| Signed-off-by: Hayes Wang <hayeswang@realtek.com> |
| Signed-off-by: David S. Miller <davem@davemloft.net> |
| Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com> |
| |
| diff --git a/drivers/net/usb/r8152.c b/drivers/net/usb/r8152.c |
| index cdd42b89732f..acec0e44e016 100644 |
| --- a/drivers/net/usb/r8152.c |
| +++ b/drivers/net/usb/r8152.c |
| @@ -5287,6 +5287,11 @@ static int rtl8152_probe(struct usb_interface *intf, |
| |
| intf->needs_remote_wakeup = 1; |
| |
| + if (!rtl_can_wakeup(tp)) |
| + __rtl_set_wol(tp, 0); |
| + else |
| + tp->saved_wolopts = __rtl_get_wol(tp); |
| + |
| tp->rtl_ops.init(tp); |
| queue_delayed_work(system_long_wq, &tp->hw_phy_work, 0); |
| set_ethernet_addr(tp); |
| @@ -5300,10 +5305,6 @@ static int rtl8152_probe(struct usb_interface *intf, |
| goto out1; |
| } |
| |
| - if (!rtl_can_wakeup(tp)) |
| - __rtl_set_wol(tp, 0); |
| - |
| - tp->saved_wolopts = __rtl_get_wol(tp); |
| if (tp->saved_wolopts) |
| device_set_wakeup_enable(&udev->dev, true); |
| else |
| -- |
| 2.7.4 |
| |