]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
net: ipa: Fix programming of QTIME_TIMESTAMP_CFG
authorLuca Weiss <luca.weiss@fairphone.com>
Thu, 9 Apr 2026 08:13:31 +0000 (10:13 +0200)
committerJakub Kicinski <kuba@kernel.org>
Sun, 12 Apr 2026 20:49:32 +0000 (13:49 -0700)
The 'val' variable gets overwritten multiple times, discarding previous
values. Looking at the git log shows these should be combined with |=
instead.

Fixes: 9265a4f0f0b4 ("net: ipa: define even more IPA register fields")
Link: https://sashiko.dev/#/patchset/20260403-milos-ipa-v1-0-01e9e4e03d3e%40fairphone.com?part=4
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-1-a817c30678ac@fairphone.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/ipa/ipa_main.c

index edead9c48d1fe47a3145e67dec2788b5cf2831e5..216506eeef1fb3d9c3c94b3d456bdbf156dd9414 100644 (file)
@@ -361,7 +361,7 @@ static void ipa_qtime_config(struct ipa *ipa)
 {
        const struct reg *reg;
        u32 offset;
-       u32 val;
+       u32 val = 0;
 
        /* Timer clock divider must be disabled when we change the rate */
        reg = ipa_reg(ipa, TIMERS_XO_CLK_DIV_CFG);
@@ -374,8 +374,8 @@ static void ipa_qtime_config(struct ipa *ipa)
                val |= reg_bit(reg, DPL_TIMESTAMP_SEL);
        }
        /* Configure tag and NAT Qtime timestamp resolution as well */
-       val = reg_encode(reg, TAG_TIMESTAMP_LSB, TAG_TIMESTAMP_SHIFT);
-       val = reg_encode(reg, NAT_TIMESTAMP_LSB, NAT_TIMESTAMP_SHIFT);
+       val |= reg_encode(reg, TAG_TIMESTAMP_LSB, TAG_TIMESTAMP_SHIFT);
+       val |= reg_encode(reg, NAT_TIMESTAMP_LSB, NAT_TIMESTAMP_SHIFT);
 
        iowrite32(val, ipa->reg_virt + reg_offset(reg));