From e143e27c8ca6b67af24c8bf8f2eb857919c35e48 Mon Sep 17 00:00:00 2001 From: Birger Koblitz Date: Thu, 12 May 2022 20:40:45 +0200 Subject: [PATCH] realtek: Fix reset register access The reset register on RTL93xx not merely have bits to execute a reset of a hardware component, but also configuration bits for reset procedures. Keep them during executing a reset. Signed-off-by: Birger Koblitz Signed-off-by: Olliver Schinagl [backport to 5.10 kernel] Signed-off-by: Sander Vanheule --- .../linux/realtek/files-5.10/drivers/net/ethernet/rtl838x_eth.c | 2 +- .../linux/realtek/files-5.15/drivers/net/ethernet/rtl838x_eth.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/target/linux/realtek/files-5.10/drivers/net/ethernet/rtl838x_eth.c b/target/linux/realtek/files-5.10/drivers/net/ethernet/rtl838x_eth.c index 32de5cc554..16a846c8d7 100644 --- a/target/linux/realtek/files-5.10/drivers/net/ethernet/rtl838x_eth.c +++ b/target/linux/realtek/files-5.10/drivers/net/ethernet/rtl838x_eth.c @@ -682,7 +682,7 @@ static void rtl838x_hw_reset(struct rtl838x_eth_priv *priv) else reset_mask = 0xc; - sw_w32(reset_mask, priv->r->rst_glb_ctrl); + sw_w32_mask(0, reset_mask, priv->r->rst_glb_ctrl); do { /* Wait for reset of NIC and Queues done */ udelay(20); diff --git a/target/linux/realtek/files-5.15/drivers/net/ethernet/rtl838x_eth.c b/target/linux/realtek/files-5.15/drivers/net/ethernet/rtl838x_eth.c index 1c473cc7f3..857d389f12 100644 --- a/target/linux/realtek/files-5.15/drivers/net/ethernet/rtl838x_eth.c +++ b/target/linux/realtek/files-5.15/drivers/net/ethernet/rtl838x_eth.c @@ -675,7 +675,7 @@ static void rtl838x_hw_reset(struct rtl838x_eth_priv *priv) else reset_mask = 0xc; - sw_w32(reset_mask, priv->r->rst_glb_ctrl); + sw_w32_mask(0, reset_mask, priv->r->rst_glb_ctrl); do { /* Wait for reset of NIC and Queues done */ udelay(20); -- 2.30.2