aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux
diff options
context:
space:
mode:
authorBirger Koblitz <git@birger-koblitz.de>2022-05-12 20:40:45 +0200
committerSander Vanheule <sander@svanheule.net>2022-12-28 16:53:56 +0100
commite143e27c8ca6b67af24c8bf8f2eb857919c35e48 (patch)
tree0a6d90fefca232415842a182108f9d0ee27b0ddf /target/linux
parent5863363493565f4b651baeb83251769f2b6d8929 (diff)
downloadupstream-e143e27c8ca6b67af24c8bf8f2eb857919c35e48.tar.gz
upstream-e143e27c8ca6b67af24c8bf8f2eb857919c35e48.tar.bz2
upstream-e143e27c8ca6b67af24c8bf8f2eb857919c35e48.zip
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 <git@birger-koblitz.de> Signed-off-by: Olliver Schinagl <oliver@schinagl.nl> [backport to 5.10 kernel] Signed-off-by: Sander Vanheule <sander@svanheule.net>
Diffstat (limited to 'target/linux')
-rw-r--r--target/linux/realtek/files-5.10/drivers/net/ethernet/rtl838x_eth.c2
-rw-r--r--target/linux/realtek/files-5.15/drivers/net/ethernet/rtl838x_eth.c2
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);