Message ID | 20250516013552.798-1-vulab@iscas.ac.cn |
---|---|
State | New |
Headers | show |
Series | [v2] r8152: Add wake up function for RTL8153 | expand |
On Fri, 16 May 2025 09:35:52 +0800 Wentao Liang wrote: > In rtl8153_runtime_enable(), the runtime enable/disable logic for RTL8153 > devices was incomplete, missing r8153_queue_wake() to enable or disable > the automatic wake-up function. A proper implementation can be found in > rtl8156_runtime_enable(). > > Add r8153_queue_wake(tp, true) if enable flag is set true, and add > r8153_queue_wake(tp, false) otherwise. Please explain how the problem was discovered and on what HW (if any) the patch was tested.
Wentao Liang <vulab@iscas.ac.cn> > Sent: Friday, May 16, 2025 9:36 AM [...] > In rtl8153_runtime_enable(), the runtime enable/disable logic for RTL8153 > devices was incomplete, missing r8153_queue_wake() to enable or disable > the automatic wake-up function. A proper implementation can be found in > rtl8156_runtime_enable(). r8153_queue_wake() is used to prevent the loss of wake-up events about linking change during the process of runtime suspend. And, I don't think RTL8153A supports it. Does this fix something? Best Regards, Hayes
diff --git a/drivers/net/usb/r8152.c b/drivers/net/usb/r8152.c index 468c73974046..cb708b79a7af 100644 --- a/drivers/net/usb/r8152.c +++ b/drivers/net/usb/r8152.c @@ -4004,10 +4004,12 @@ static void rtl_runtime_suspend_enable(struct r8152 *tp, bool enable) static void rtl8153_runtime_enable(struct r8152 *tp, bool enable) { if (enable) { + r8153_queue_wake(tp, true); r8153_u1u2en(tp, false); r8153_u2p3en(tp, false); rtl_runtime_suspend_enable(tp, true); } else { + r8153_queue_wake(tp, false); rtl_runtime_suspend_enable(tp, false); switch (tp->version) {
In rtl8153_runtime_enable(), the runtime enable/disable logic for RTL8153 devices was incomplete, missing r8153_queue_wake() to enable or disable the automatic wake-up function. A proper implementation can be found in rtl8156_runtime_enable(). Add r8153_queue_wake(tp, true) if enable flag is set true, and add r8153_queue_wake(tp, false) otherwise. Fixes: 02552754a7ac ("r8152: adjust rtl8153_runtime_enable function") Cc: stable@vger.kernel.org # v4.13 Signed-off-by: Wentao Liang <vulab@iscas.ac.cn> --- drivers/net/usb/r8152.c | 2 ++ 1 file changed, 2 insertions(+)