mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-23 23:42:43 +00:00
realtek: Fix rtl930x speed status accessor
The rtl930x speed status registers require 4 bits to indicate the speed status. As such, we want to divide by 8. To make things consistent with the rest of this code, use a bitshift however. This bug probably won't affect many users yet, as there aren't many rtl930x switches in the wild yet with more then 10 ports, and thus a low-impact bugfix. Signed-off-by: Olliver Schinagl <oliver@schinagl.nl> [also fix port field extraction] Signed-off-by: Sander Vanheule <sander@svanheule.net>
This commit is contained in:
parent
af8bc8e51b
commit
59542c9ac9
@ -348,11 +348,11 @@ inline u32 rtl839x_get_mac_link_spd_sts(int port)
|
|||||||
|
|
||||||
inline u32 rtl930x_get_mac_link_spd_sts(int port)
|
inline u32 rtl930x_get_mac_link_spd_sts(int port)
|
||||||
{
|
{
|
||||||
int r = RTL930X_MAC_LINK_SPD_STS + ((port / 10) << 2);
|
int r = RTL930X_MAC_LINK_SPD_STS + ((port >> 3) << 2);
|
||||||
u32 speed = sw_r32(r);
|
u32 speed = sw_r32(r);
|
||||||
|
|
||||||
speed >>= (port % 10) * 3;
|
speed >>= (port % 8) << 2;
|
||||||
return (speed & 0x7);
|
return (speed & 0xf);
|
||||||
}
|
}
|
||||||
|
|
||||||
inline u32 rtl931x_get_mac_link_spd_sts(int port)
|
inline u32 rtl931x_get_mac_link_spd_sts(int port)
|
||||||
|
Loading…
Reference in New Issue
Block a user