From: Birger Koblitz Date: Thu, 12 May 2022 18:40:45 +0000 (+0200) Subject: realtek: Fix reset register access X-Git-Url: http://git.lede-project.org./?a=commitdiff_plain;h=e143e27c8ca6b67af24c8bf8f2eb857919c35e48;p=openwrt%2Fstaging%2Fblocktrron.git 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 --- 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);