Revert "wcn36xx: Disable bmps when encryption is disabled"
authorBryan O'Donoghue <bryan.odonoghue@linaro.org>
Fri, 22 Oct 2021 14:04:47 +0000 (15:04 +0100)
committerKalle Valo <kvalo@codeaurora.org>
Wed, 27 Oct 2021 07:43:31 +0000 (10:43 +0300)
This reverts commit c6522a5076e1a65877c51cfee313a74ef61cabf8.

Testing on tip-of-tree shows that this is working now. Revert this and
re-enable BMPS for Open APs.

Signed-off-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
Link: https://lore.kernel.org/r/20211022140447.2846248-3-bryan.odonoghue@linaro.org
drivers/net/wireless/ath/wcn36xx/main.c
drivers/net/wireless/ath/wcn36xx/pmc.c
drivers/net/wireless/ath/wcn36xx/wcn36xx.h

index 80d818c..644b852 100644 (file)
@@ -613,15 +613,6 @@ static int wcn36xx_set_key(struct ieee80211_hw *hw, enum set_key_cmd cmd,
                                }
                        }
                }
-               /* FIXME: Only enable bmps support when encryption is enabled.
-                * For any reasons, when connected to open/no-security BSS,
-                * the wcn36xx controller in bmps mode does not forward
-                * 'wake-up' beacons despite AP sends DTIM with station AID.
-                * It could be due to a firmware issue or to the way driver
-                * configure the station.
-                */
-               if (vif->type == NL80211_IFTYPE_STATION)
-                       vif_priv->allow_bmps = true;
                break;
        case DISABLE_KEY:
                if (!(IEEE80211_KEY_FLAG_PAIRWISE & key_conf->flags)) {
@@ -922,7 +913,6 @@ static void wcn36xx_bss_info_changed(struct ieee80211_hw *hw,
                                    vif->addr,
                                    bss_conf->aid);
                        vif_priv->sta_assoc = false;
-                       vif_priv->allow_bmps = false;
                        wcn36xx_smd_set_link_st(wcn,
                                                bss_conf->bssid,
                                                vif->addr,
index 6a9cfea..2c66045 100644 (file)
@@ -25,10 +25,7 @@ int wcn36xx_pmc_enter_bmps_state(struct wcn36xx *wcn,
 {
        int ret = 0;
        struct wcn36xx_vif *vif_priv = wcn36xx_vif_to_priv(vif);
-
-       if (!vif_priv->allow_bmps)
-               return -ENOTSUPP;
-
+       /* TODO: Make sure the TX chain clean */
        ret = wcn36xx_smd_enter_bmps(wcn, vif);
        if (!ret) {
                wcn36xx_dbg(WCN36XX_DBG_PMC, "Entered BMPS\n");
index 7a064f8..1c8d918 100644 (file)
@@ -128,7 +128,6 @@ struct wcn36xx_vif {
        enum wcn36xx_hal_bss_type bss_type;
 
        /* Power management */
-       bool allow_bmps;
        enum wcn36xx_power_state pw_state;
 
        u8 bss_index;