diff mbox series

[v2] r8152: Add wake up function for RTL8153

Message ID 20250516013552.798-1-vulab@iscas.ac.cn
State New
Headers show
Series [v2] r8152: Add wake up function for RTL8153 | expand

Commit Message

Wentao Liang May 16, 2025, 1:35 a.m. UTC
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(+)

Comments

Jakub Kicinski May 21, 2025, 1:05 a.m. UTC | #1
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.
Hayes Wang May 21, 2025, 8:39 a.m. UTC | #2
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 mbox series

Patch

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) {