]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
net: ipa: Fix decoding EV_PER_EE for IPA v5.0+
authorLuca Weiss <luca.weiss@fairphone.com>
Thu, 9 Apr 2026 08:13:32 +0000 (10:13 +0200)
committerJakub Kicinski <kuba@kernel.org>
Sun, 12 Apr 2026 20:49:33 +0000 (13:49 -0700)
Initially 'reg' and 'val' are assigned from HW_PARAM_2.

But since IPA v5.0+ takes EV_PER_EE from HW_PARAM_4 (instead of
NUM_EV_PER_EE from HW_PARAM_2), we not only need to re-assign 'reg' but
also read the register value of that register into 'val' so that
reg_decode() works on the correct value.

Fixes: f651334e1ef5 ("net: ipa: add HW_PARAM_4 GSI register")
Link: https://sashiko.dev/#/patchset/20260403-milos-ipa-v1-0-01e9e4e03d3e%40fairphone.com?part=2
Signed-off-by: Luca Weiss <luca.weiss@fairphone.com>
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Link: https://patch.msgid.link/20260409-ipa-fixes-v1-2-a817c30678ac@fairphone.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/ipa/gsi.c

index 4c3227e77898cf281d7e8733268776657aec7795..624649484d6275d4a49cc64aa171ce8e24dfe571 100644 (file)
@@ -2044,6 +2044,7 @@ static int gsi_ring_setup(struct gsi *gsi)
                count = reg_decode(reg, NUM_EV_PER_EE, val);
        } else {
                reg = gsi_reg(gsi, HW_PARAM_4);
+               val = ioread32(gsi->virt + reg_offset(reg));
                count = reg_decode(reg, EV_PER_EE, val);
        }
        if (!count) {