static void
 mt7915_mcu_sta_sounding_rate(struct sta_rec_bf *bf)
 {
-       bf->bf_cap = MT_EBF;
        bf->sounding_phy = MT_PHY_TYPE_OFDM;
        bf->ndp_rate = 0;                               /* mcs0 */
        bf->ndpa_rate = MT7915_CFEND_RATE_DEFAULT;      /* ofdm 24m */
        u8 n = 0;
 
        bf->tx_mode = MT_PHY_TYPE_HT;
-       bf->bf_cap = MT_IBF;
 
        if ((mcs->tx_params & IEEE80211_HT_MCS_TX_RX_DIFF) &&
            (mcs->tx_params & IEEE80211_HT_MCS_TX_DEFINED))
        else if (mcs->rx_mask[1])
                n = 1;
 
-       bf->nr = hweight8(phy->mt76->chainmask) - 1;
-       bf->nc = min_t(u8, bf->nr, n);
+       bf->nrow = hweight8(phy->mt76->chainmask) - 1;
+       bf->ncol = min_t(u8, bf->nrow, n);
        bf->ibf_ncol = n;
 }
 
        bf->tx_mode = MT_PHY_TYPE_VHT;
 
        if (explicit) {
-               u8 bfee_nr, bfer_nr;
+               u8 sts, snd_dim;
 
                mt7915_mcu_sta_sounding_rate(bf);
-               bfee_nr = FIELD_GET(IEEE80211_VHT_CAP_BEAMFORMEE_STS_MASK,
-                                   pc->cap);
-               bfer_nr = FIELD_GET(IEEE80211_VHT_CAP_SOUNDING_DIMENSIONS_MASK,
+
+               sts = FIELD_GET(IEEE80211_VHT_CAP_BEAMFORMEE_STS_MASK,
+                               pc->cap);
+               snd_dim = FIELD_GET(IEEE80211_VHT_CAP_SOUNDING_DIMENSIONS_MASK,
                                    vc->cap);
-               bf->nr = min_t(u8, min_t(u8, bfer_nr, bfee_nr), tx_ant);
-               bf->nc = min_t(u8, nss_mcs, bf->nr);
-               bf->ibf_ncol = bf->nc;
+               bf->nrow = min_t(u8, min_t(u8, snd_dim, sts), tx_ant);
+               bf->ncol = min_t(u8, nss_mcs, bf->nrow);
+               bf->ibf_ncol = bf->ncol;
 
                if (sta->bandwidth == IEEE80211_STA_RX_BW_160)
-                       bf->nr = 1;
+                       bf->nrow = 1;
        } else {
-               bf->bf_cap = MT_IBF;
-               bf->nr = tx_ant;
-               bf->nc = min_t(u8, nss_mcs, bf->nr);
+               bf->nrow = tx_ant;
+               bf->ncol = min_t(u8, nss_mcs, bf->nrow);
                bf->ibf_ncol = nss_mcs;
 
                if (sta->bandwidth == IEEE80211_STA_RX_BW_160)
        const struct ieee80211_he_cap_elem *ve = &vc->he_cap_elem;
        u16 mcs_map = le16_to_cpu(pc->he_mcs_nss_supp.rx_mcs_80);
        u8 nss_mcs = mt7915_mcu_get_sta_nss(mcs_map);
-       u8 bfee_nr, bfer_nr;
+       u8 snd_dim, sts;
 
        bf->tx_mode = MT_PHY_TYPE_HE_SU;
+
        mt7915_mcu_sta_sounding_rate(bf);
+
        bf->trigger_su = HE_PHY(CAP6_TRIG_SU_BEAMFORMING_FB,
                                pe->phy_cap_info[6]);
        bf->trigger_mu = HE_PHY(CAP6_TRIG_MU_BEAMFORMING_PARTIAL_BW_FB,
                                pe->phy_cap_info[6]);
-       bfer_nr = HE_PHY(CAP5_BEAMFORMEE_NUM_SND_DIM_UNDER_80MHZ_MASK,
+       snd_dim = HE_PHY(CAP5_BEAMFORMEE_NUM_SND_DIM_UNDER_80MHZ_MASK,
                         ve->phy_cap_info[5]);
-       bfee_nr = HE_PHY(CAP4_BEAMFORMEE_MAX_STS_UNDER_80MHZ_MASK,
-                        pe->phy_cap_info[4]);
-       bf->nr = min_t(u8, bfer_nr, bfee_nr);
-       bf->nc = min_t(u8, nss_mcs, bf->nr);
-       bf->ibf_ncol = bf->nc;
+       sts = HE_PHY(CAP4_BEAMFORMEE_MAX_STS_UNDER_80MHZ_MASK,
+                    pe->phy_cap_info[4]);
+       bf->nrow = min_t(u8, snd_dim, sts);
+       bf->ncol = min_t(u8, nss_mcs, bf->nrow);
+       bf->ibf_ncol = bf->ncol;
 
        if (sta->bandwidth != IEEE80211_STA_RX_BW_160)
                return;
                mcs_map = le16_to_cpu(pc->he_mcs_nss_supp.rx_mcs_160);
                nss_mcs = mt7915_mcu_get_sta_nss(mcs_map);
 
-               bf->nc_bw160 = nss_mcs;
+               bf->ncol_bw160 = nss_mcs;
        }
 
        if (pe->phy_cap_info[0] &
                mcs_map = le16_to_cpu(pc->he_mcs_nss_supp.rx_mcs_80p80);
                nss_mcs = mt7915_mcu_get_sta_nss(mcs_map);
 
-               if (bf->nc_bw160)
-                       bf->nc_bw160 = min_t(u8, bf->nc_bw160, nss_mcs);
+               if (bf->ncol_bw160)
+                       bf->ncol_bw160 = min_t(u8, bf->ncol_bw160, nss_mcs);
                else
-                       bf->nc_bw160 = nss_mcs;
+                       bf->ncol_bw160 = nss_mcs;
        }
 
-       bfer_nr = HE_PHY(CAP5_BEAMFORMEE_NUM_SND_DIM_ABOVE_80MHZ_MASK,
+       snd_dim = HE_PHY(CAP5_BEAMFORMEE_NUM_SND_DIM_ABOVE_80MHZ_MASK,
                         ve->phy_cap_info[5]);
-       bfee_nr = HE_PHY(CAP4_BEAMFORMEE_MAX_STS_ABOVE_80MHZ_MASK,
-                        pe->phy_cap_info[4]);
+       sts = HE_PHY(CAP4_BEAMFORMEE_MAX_STS_ABOVE_80MHZ_MASK,
+                    pe->phy_cap_info[4]);
 
-       bf->nr_bw160 = min_t(int, bfer_nr, bfee_nr);
+       bf->nrow_bw160 = min_t(int, snd_dim, sts);
 }
 
 static void
        else
                return;
 
+       bf->bf_cap = ebf ? ebf : dev->ibf << 1;
        bf->bw = sta->bandwidth;
        bf->ibf_dbw = sta->bandwidth;
        bf->ibf_nrow = tx_ant;
 
-       if (!ebf && sta->bandwidth <= IEEE80211_STA_RX_BW_40 && !bf->nc)
+       if (!ebf && sta->bandwidth <= IEEE80211_STA_RX_BW_40 && !bf->ncol)
                bf->ibf_timeout = 0x48;
        else
                bf->ibf_timeout = 0x18;
 
-       if (ebf && bf->nr != tx_ant)
-               bf->mem_20m = matrix[tx_ant][bf->nc];
+       if (ebf && bf->nrow != tx_ant)
+               bf->mem_20m = matrix[tx_ant][bf->ncol];
        else
-               bf->mem_20m = matrix[bf->nr][bf->nc];
+               bf->mem_20m = matrix[bf->nrow][bf->ncol];
 
        switch (sta->bandwidth) {
        case IEEE80211_STA_RX_BW_160:
        int tx_ant = hweight8(phy->mt76->chainmask) - 1;
        struct sta_rec_bfee *bfee;
        struct tlv *tlv;
-       u8 nr = 0;
+       u8 nrow = 0;
 
        if (!mt7915_is_ebf_supported(phy, vif, sta, true))
                return;
        if (sta->he_cap.has_he) {
                struct ieee80211_he_cap_elem *pe = &sta->he_cap.he_cap_elem;
 
-               nr = HE_PHY(CAP5_BEAMFORMEE_NUM_SND_DIM_UNDER_80MHZ_MASK,
-                           pe->phy_cap_info[5]);
+               nrow = HE_PHY(CAP5_BEAMFORMEE_NUM_SND_DIM_UNDER_80MHZ_MASK,
+                             pe->phy_cap_info[5]);
        } else if (sta->vht_cap.vht_supported) {
                struct ieee80211_sta_vht_cap *pc = &sta->vht_cap;
 
-               nr = FIELD_GET(IEEE80211_VHT_CAP_SOUNDING_DIMENSIONS_MASK,
-                              pc->cap);
+               nrow = FIELD_GET(IEEE80211_VHT_CAP_SOUNDING_DIMENSIONS_MASK,
+                                pc->cap);
        }
 
        /* reply with identity matrix to avoid 2x2 BF negative gain */
-       bfee->fb_identity_matrix = !!(nr == 1 && tx_ant == 2);
+       bfee->fb_identity_matrix = (nrow == 1 && tx_ant == 2);
 }
 
 static int