mirror of
https://git.openwrt.org/openwrt/openwrt.git
synced 2026-01-27 23:47:19 +01:00
realtek: rtl931x: Support enable/disable SMI Polling for SerDes ports
Some checks are pending
Build Kernel / Build all affected Kernels (push) Waiting to run
Some checks are pending
Build Kernel / Build all affected Kernels (push) Waiting to run
During PHY matching, the SMI polling must be disabled to avoid conflicts during the complex detection routine. Only after this finished, SMI polling is allowed again. This was implemented for all realtek families besides RTL931x. Signed-off-by: Harshal Gohel <hg@simonwunderlich.de> Signed-off-by: Sharadanand Karanjkar <sk@simonwunderlich.de> Link: https://github.com/openwrt/openwrt/pull/19603 Signed-off-by: Robert Marko <robimarko@gmail.com>
This commit is contained in:
parent
848887b491
commit
d802e6310a
1 changed files with 6 additions and 2 deletions
|
|
@ -120,7 +120,10 @@ static u64 disable_polling(int port)
|
|||
sw_w32_mask(BIT(port), 0, RTL930X_SMI_POLL_CTRL);
|
||||
break;
|
||||
case RTL9310_FAMILY_ID:
|
||||
pr_warn("%s not implemented for RTL931X\n", __func__);
|
||||
saved_state = sw_r32(RTL931X_SMI_PORT_POLLING_CTRL + 4);
|
||||
saved_state <<= 32;
|
||||
saved_state |= sw_r32(RTL931X_SMI_PORT_POLLING_CTRL);
|
||||
sw_w32_mask(BIT(port % 32), 0, RTL931X_SMI_PORT_POLLING_CTRL + ((port >> 5) << 2));
|
||||
break;
|
||||
}
|
||||
|
||||
|
|
@ -145,7 +148,8 @@ static int resume_polling(u64 saved_state)
|
|||
sw_w32(saved_state, RTL930X_SMI_POLL_CTRL);
|
||||
break;
|
||||
case RTL9310_FAMILY_ID:
|
||||
pr_warn("%s not implemented for RTL931X\n", __func__);
|
||||
sw_w32(saved_state >> 32, RTL931X_SMI_PORT_POLLING_CTRL + 4);
|
||||
sw_w32(saved_state, RTL931X_SMI_PORT_POLLING_CTRL);
|
||||
break;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue