git: 0627a69cd8ed - stable/13 - e6000sw: Fix direct register write logic
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Tue, 19 Jul 2022 09:57:50 UTC
The branch stable/13 has been updated by kd:
URL: https://cgit.FreeBSD.org/src/commit/?id=0627a69cd8edd010eb3eed655df1698e0ff00d51
commit 0627a69cd8edd010eb3eed655df1698e0ff00d51
Author: Kornel Dulęba <kd@FreeBSD.org>
AuthorDate: 2022-07-04 06:53:41 +0000
Commit: Kornel Dulęba <kd@FreeBSD.org>
CommitDate: 2022-07-19 09:36:55 +0000
e6000sw: Fix direct register write logic
When accessing a register directly from etherswitchcfg one must specify
a register group(e.g. registers of portN) and the register offset within
the group. The latter is passed as the 5 least significant bits.
Extract the former by dividing the register address by 32, not by 5.
Approved by: mw(mentor)
Obtained from: Semihalf
Sponsored by: Stormshield
MFC after: 2 weeks
Differential Revision: https://reviews.freebsd.org/D35672
(cherry picked from commit 66548259075788d2084e9da1c5df7b88f44c4b4d)
---
sys/dev/etherswitch/e6000sw/e6000sw.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/sys/dev/etherswitch/e6000sw/e6000sw.c b/sys/dev/etherswitch/e6000sw/e6000sw.c
index 4803e200e8fb..81abcdf5d03c 100644
--- a/sys/dev/etherswitch/e6000sw/e6000sw.c
+++ b/sys/dev/etherswitch/e6000sw/e6000sw.c
@@ -1031,7 +1031,7 @@ e6000sw_writereg_wrapper(device_t dev, int addr_reg, int val)
device_printf(dev, "Wrong register address.\n");
return (EINVAL);
}
- e6000sw_writereg(device_get_softc(dev), addr_reg / 5,
+ e6000sw_writereg(device_get_softc(dev), addr_reg / 32,
addr_reg % 32, val);
return (0);