]> git.proxmox.com Git - mirror_ubuntu-jammy-kernel.git/commitdiff
mt76: mt7921: fix mt7921_queues_acq implementation
authorLorenzo Bianconi <lorenzo@kernel.org>
Thu, 3 Mar 2022 08:46:41 +0000 (09:46 +0100)
committerStefan Bader <stefan.bader@canonical.com>
Fri, 20 May 2022 12:39:12 +0000 (14:39 +0200)
BugLink: https://bugs.launchpad.net/bugs/1969110
[ Upstream commit 849ee6ac9dd3efd0a57cbc98b9a9d6ae87374aff ]

Fix mt7921_queues_acq implementation according to the vendor sdk.

Fixes: 474a9f21e2e20 ("mt76: mt7921: add debugfs support")
Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
Signed-off-by: Felix Fietkau <nbd@nbd.name>
Signed-off-by: Sasha Levin <sashal@kernel.org>
(cherry picked from commit 9265c09b2415cf22cd7a5824476deb3c676e274c)
Signed-off-by: Paolo Pisati <paolo.pisati@canonical.com>
drivers/net/wireless/mediatek/mt76/mt7921/debugfs.c
drivers/net/wireless/mediatek/mt76/mt7921/regs.h

index 30f3b3085c786a7f83b65674f04c36ab1749026e..8d5e261cd10f6c25a09845227b0db74290be4b9a 100644 (file)
@@ -130,23 +130,22 @@ mt7921_queues_acq(struct seq_file *s, void *data)
 
        mt7921_mutex_acquire(dev);
 
-       for (i = 0; i < 16; i++) {
-               int j, acs = i / 4, index = i % 4;
+       for (i = 0; i < 4; i++) {
                u32 ctrl, val, qlen = 0;
+               int j;
 
-               val = mt76_rr(dev, MT_PLE_AC_QEMPTY(acs, index));
-               ctrl = BIT(31) | BIT(15) | (acs << 8);
+               val = mt76_rr(dev, MT_PLE_AC_QEMPTY(i));
+               ctrl = BIT(31) | BIT(11) | (i << 24);
 
                for (j = 0; j < 32; j++) {
                        if (val & BIT(j))
                                continue;
 
-                       mt76_wr(dev, MT_PLE_FL_Q0_CTRL,
-                               ctrl | (j + (index << 5)));
+                       mt76_wr(dev, MT_PLE_FL_Q0_CTRL, ctrl | j);
                        qlen += mt76_get_field(dev, MT_PLE_FL_Q3_CTRL,
                                               GENMASK(11, 0));
                }
-               seq_printf(s, "AC%d%d: queued=%d\n", acs, index, qlen);
+               seq_printf(s, "AC%d: queued=%d\n", i, qlen);
        }
 
        mt7921_mutex_release(dev);
index 26fb118237626146714ff423225cafb8cf49ea86..41c2855e7a3d39575e4993f414026287b63fea82 100644 (file)
 #define MT_PLE_BASE                    0x8000
 #define MT_PLE(ofs)                    (MT_PLE_BASE + (ofs))
 
-#define MT_PLE_FL_Q0_CTRL              MT_PLE(0x1b0)
-#define MT_PLE_FL_Q1_CTRL              MT_PLE(0x1b4)
-#define MT_PLE_FL_Q2_CTRL              MT_PLE(0x1b8)
-#define MT_PLE_FL_Q3_CTRL              MT_PLE(0x1bc)
+#define MT_PLE_FL_Q0_CTRL              MT_PLE(0x3e0)
+#define MT_PLE_FL_Q1_CTRL              MT_PLE(0x3e4)
+#define MT_PLE_FL_Q2_CTRL              MT_PLE(0x3e8)
+#define MT_PLE_FL_Q3_CTRL              MT_PLE(0x3ec)
 
-#define MT_PLE_AC_QEMPTY(ac, n)                MT_PLE(0x300 + 0x10 * (ac) + \
-                                              ((n) << 2))
+#define MT_PLE_AC_QEMPTY(_n)           MT_PLE(0x500 + 0x40 * (_n))
 #define MT_PLE_AMSDU_PACK_MSDU_CNT(n)  MT_PLE(0x10e0 + ((n) << 2))
 
 #define MT_MDP_BASE                    0xf000