mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-08-31 07:03:28 -04:00
wifi: mt76: mt7996: fix MIB TX aggregation counter registers for mt7990
The MIB_TSCR0-7 counters read by mt7996_mac_update_stats() are
hardcoded at the mt7996/mt7992 offsets 0x6b0-0x6d0, but mt7990 moved
them to 0x750-0x770, so TX AMPDU statistics were read from unrelated
registers on that chip. Move the offsets into the per-chip register
tables.
Fixes: f6c87411d1 ("wifi: mt76: mt7996: rework register mapping for mt7990")
Link: https://patch.msgid.link/20260727150434.1778520-1-nbd@nbd.name
Signed-off-by: Felix Fietkau <nbd@nbd.name>
This commit is contained in:
@@ -54,6 +54,14 @@ static const u32 mt7996_offs[] = {
|
||||
[MIB_BSCR7] = 0x9e8,
|
||||
[MIB_BSCR17] = 0xa10,
|
||||
[MIB_TRDR1] = 0xa28,
|
||||
[MIB_TSCR0] = 0x6b0,
|
||||
[MIB_TSCR1] = 0x6b4,
|
||||
[MIB_TSCR2] = 0x6b8,
|
||||
[MIB_TSCR3] = 0x6bc,
|
||||
[MIB_TSCR4] = 0x6c0,
|
||||
[MIB_TSCR5] = 0x6c4,
|
||||
[MIB_TSCR6] = 0x6c8,
|
||||
[MIB_TSCR7] = 0x6d0,
|
||||
[HIF_REMAP_L1] = 0x24,
|
||||
[HIF_REMAP_BASE_L1] = 0x130000,
|
||||
[HIF_REMAP_L2] = 0x1b4,
|
||||
@@ -91,6 +99,14 @@ static const u32 mt7992_offs[] = {
|
||||
[MIB_BSCR7] = 0xae4,
|
||||
[MIB_BSCR17] = 0xb0c,
|
||||
[MIB_TRDR1] = 0xb24,
|
||||
[MIB_TSCR0] = 0x6b0,
|
||||
[MIB_TSCR1] = 0x6b4,
|
||||
[MIB_TSCR2] = 0x6b8,
|
||||
[MIB_TSCR3] = 0x6bc,
|
||||
[MIB_TSCR4] = 0x6c0,
|
||||
[MIB_TSCR5] = 0x6c4,
|
||||
[MIB_TSCR6] = 0x6c8,
|
||||
[MIB_TSCR7] = 0x6d0,
|
||||
[HIF_REMAP_L1] = 0x8,
|
||||
[HIF_REMAP_BASE_L1] = 0x40000,
|
||||
[HIF_REMAP_L2] = 0x1b4,
|
||||
@@ -128,6 +144,14 @@ static const u32 mt7990_offs[] = {
|
||||
[MIB_BSCR7] = 0xbd4,
|
||||
[MIB_BSCR17] = 0xbfc,
|
||||
[MIB_TRDR1] = 0xc14,
|
||||
[MIB_TSCR0] = 0x750,
|
||||
[MIB_TSCR1] = 0x754,
|
||||
[MIB_TSCR2] = 0x758,
|
||||
[MIB_TSCR3] = 0x75c,
|
||||
[MIB_TSCR4] = 0x760,
|
||||
[MIB_TSCR5] = 0x764,
|
||||
[MIB_TSCR6] = 0x768,
|
||||
[MIB_TSCR7] = 0x770,
|
||||
[HIF_REMAP_L1] = 0x8,
|
||||
[HIF_REMAP_BASE_L1] = 0x40000,
|
||||
[HIF_REMAP_L2] = 0x1b8,
|
||||
|
||||
@@ -64,6 +64,14 @@ enum offs_rev {
|
||||
MIB_BSCR7,
|
||||
MIB_BSCR17,
|
||||
MIB_TRDR1,
|
||||
MIB_TSCR0,
|
||||
MIB_TSCR1,
|
||||
MIB_TSCR2,
|
||||
MIB_TSCR3,
|
||||
MIB_TSCR4,
|
||||
MIB_TSCR5,
|
||||
MIB_TSCR6,
|
||||
MIB_TSCR7,
|
||||
HIF_REMAP_L1,
|
||||
HIF_REMAP_BASE_L1,
|
||||
HIF_REMAP_L2,
|
||||
@@ -250,9 +258,9 @@ enum offs_rev {
|
||||
#define MT_MIB_BSCR7(_band) MT_WF_MIB(_band, __OFFS(MIB_BSCR7))
|
||||
#define MT_MIB_BSCR17(_band) MT_WF_MIB(_band, __OFFS(MIB_BSCR17))
|
||||
|
||||
#define MT_MIB_TSCR5(_band) MT_WF_MIB(_band, 0x6c4)
|
||||
#define MT_MIB_TSCR6(_band) MT_WF_MIB(_band, 0x6c8)
|
||||
#define MT_MIB_TSCR7(_band) MT_WF_MIB(_band, 0x6d0)
|
||||
#define MT_MIB_TSCR5(_band) MT_WF_MIB(_band, __OFFS(MIB_TSCR5))
|
||||
#define MT_MIB_TSCR6(_band) MT_WF_MIB(_band, __OFFS(MIB_TSCR6))
|
||||
#define MT_MIB_TSCR7(_band) MT_WF_MIB(_band, __OFFS(MIB_TSCR7))
|
||||
|
||||
#define MT_MIB_RSCR1(_band) MT_WF_MIB(_band, __OFFS(MIB_RSCR1))
|
||||
/* rx mpdu counter, full 32 bits */
|
||||
@@ -268,14 +276,14 @@ enum offs_rev {
|
||||
#define MT_MIB_RSCR36(_band) MT_WF_MIB(_band, __OFFS(MIB_RSCR36))
|
||||
|
||||
/* tx ampdu cnt, full 32 bits */
|
||||
#define MT_MIB_TSCR0(_band) MT_WF_MIB(_band, 0x6b0)
|
||||
#define MT_MIB_TSCR2(_band) MT_WF_MIB(_band, 0x6b8)
|
||||
#define MT_MIB_TSCR0(_band) MT_WF_MIB(_band, __OFFS(MIB_TSCR0))
|
||||
#define MT_MIB_TSCR2(_band) MT_WF_MIB(_band, __OFFS(MIB_TSCR2))
|
||||
|
||||
/* counts all mpdus in ampdu, regardless of success */
|
||||
#define MT_MIB_TSCR3(_band) MT_WF_MIB(_band, 0x6bc)
|
||||
#define MT_MIB_TSCR3(_band) MT_WF_MIB(_band, __OFFS(MIB_TSCR3))
|
||||
|
||||
/* counts all successfully tx'd mpdus in ampdu */
|
||||
#define MT_MIB_TSCR4(_band) MT_WF_MIB(_band, 0x6c0)
|
||||
#define MT_MIB_TSCR4(_band) MT_WF_MIB(_band, __OFFS(MIB_TSCR4))
|
||||
|
||||
/* rx ampdu count, 32-bit */
|
||||
#define MT_MIB_RSCR27(_band) MT_WF_MIB(_band, __OFFS(MIB_RSCR27))
|
||||
@@ -299,7 +307,7 @@ enum offs_rev {
|
||||
#define MT_MIB_RVSR1(_band) MT_WF_MIB(_band, __OFFS(MIB_RVSR1))
|
||||
|
||||
/* rx blockack count, 32 bits */
|
||||
#define MT_MIB_TSCR1(_band) MT_WF_MIB(_band, 0x6b4)
|
||||
#define MT_MIB_TSCR1(_band) MT_WF_MIB(_band, __OFFS(MIB_TSCR1))
|
||||
|
||||
#define MT_MIB_BTSCR0(_band) MT_WF_MIB(_band, 0x5e0)
|
||||
#define MT_MIB_BTSCR5(_band) MT_WF_MIB(_band, __OFFS(MIB_BTSCR5))
|
||||
|
||||
Reference in New Issue
Block a user