]> git.baikalelectronics.ru Git - kernel.git/commitdiff
mt76: mt7915: fix decoded radiotap HE flags
authorRyder Lee <ryder.lee@mediatek.com>
Wed, 13 May 2020 10:50:55 +0000 (18:50 +0800)
committerFelix Fietkau <nbd@nbd.name>
Thu, 28 May 2020 15:55:30 +0000 (17:55 +0200)
Move assignment of .data1 and .data2 to a single place and fix overwriting
of values from the template

Signed-off-by: Ryder Lee <ryder.lee@mediatek.com>
Signed-off-by: Felix Fietkau <nbd@nbd.name>
drivers/net/wireless/mediatek/mt76/mt7915/mac.c

index 7ad7c2b7afdcd98bea77779b1bbc0cd87fd1bbd1..bf96b389c813286d62d22dd5e90f3c7adb700c50 100644 (file)
@@ -235,9 +235,14 @@ mt7915_mac_decode_he_radiotap(struct sk_buff *skb,
                .data1 = HE_BITS(DATA1_DATA_MCS_KNOWN) |
                         HE_BITS(DATA1_DATA_DCM_KNOWN) |
                         HE_BITS(DATA1_STBC_KNOWN) |
-                        HE_BITS(DATA1_CODING_KNOWN),
+                        HE_BITS(DATA1_CODING_KNOWN) |
+                        HE_BITS(DATA1_LDPC_XSYMSEG_KNOWN) |
+                        HE_BITS(DATA1_DOPPLER_KNOWN) |
+                        HE_BITS(DATA1_BSS_COLOR_KNOWN),
                .data2 = HE_BITS(DATA2_GI_KNOWN) |
-                        HE_BITS(DATA2_TXBF_KNOWN),
+                        HE_BITS(DATA2_TXBF_KNOWN) |
+                        HE_BITS(DATA2_PE_DISAMBIG_KNOWN) |
+                        HE_BITS(DATA2_TXOP_KNOWN),
        };
        struct ieee80211_radiotap_he *he = NULL;
        __le32 v2 = rxv->v[2];
@@ -248,12 +253,6 @@ mt7915_mac_decode_he_radiotap(struct sk_buff *skb,
        he = skb_push(skb, sizeof(known));
        memcpy(he, &known, sizeof(known));
 
-       he->data1 = HE_BITS(DATA1_LDPC_XSYMSEG_KNOWN) |
-                   HE_BITS(DATA1_DOPPLER_KNOWN) |
-                   HE_BITS(DATA1_BSS_COLOR_KNOWN);
-       he->data2 = HE_BITS(DATA2_PE_DISAMBIG_KNOWN) |
-                   HE_BITS(DATA2_TXOP_KNOWN);
-
        he->data3 = HE_PREP(DATA3_BSS_COLOR, BSS_COLOR, v14) |
                    HE_PREP(DATA3_LDPC_XSYMSEG, LDPC_EXT_SYM, v2);
        he->data5 = HE_PREP(DATA5_PE_DISAMBIG, PE_DISAMBIG, v2) |
@@ -296,10 +295,10 @@ mt7915_mac_decode_he_radiotap(struct sk_buff *skb,
                             HE_BITS(DATA1_SPTL_REUSE3_KNOWN) |
                             HE_BITS(DATA1_SPTL_REUSE4_KNOWN);
 
-               he->data4 = HE_PREP(DATA4_TB_SPTL_REUSE1, SR_MASK, v11) |
-                           HE_PREP(DATA4_TB_SPTL_REUSE2, SR1_MASK, v11) |
-                           HE_PREP(DATA4_TB_SPTL_REUSE3, SR2_MASK, v11) |
-                           HE_PREP(DATA4_TB_SPTL_REUSE4, SR3_MASK, v11);
+               he->data4 |= HE_PREP(DATA4_TB_SPTL_REUSE1, SR_MASK, v11) |
+                            HE_PREP(DATA4_TB_SPTL_REUSE2, SR1_MASK, v11) |
+                            HE_PREP(DATA4_TB_SPTL_REUSE3, SR2_MASK, v11) |
+                            HE_PREP(DATA4_TB_SPTL_REUSE4, SR3_MASK, v11);
 
                mt7915_mac_decode_he_radiotap_ru(status, rxv, he);
                break;