Revert "wcn36xx: Disable bmps when encryption is disabled"
commit 285bb1738e196507bf985574d0bc1e9dd72d46b1 upstream.
This reverts commit c6522a5076
.
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
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:

committed by
Greg Kroah-Hartman

parent
f84b791d4c
commit
68765fc977
@@ -601,15 +601,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;
|
break;
|
||||||
case DISABLE_KEY:
|
case DISABLE_KEY:
|
||||||
if (!(IEEE80211_KEY_FLAG_PAIRWISE & key_conf->flags)) {
|
if (!(IEEE80211_KEY_FLAG_PAIRWISE & key_conf->flags)) {
|
||||||
@@ -909,7 +900,6 @@ static void wcn36xx_bss_info_changed(struct ieee80211_hw *hw,
|
|||||||
vif->addr,
|
vif->addr,
|
||||||
bss_conf->aid);
|
bss_conf->aid);
|
||||||
vif_priv->sta_assoc = false;
|
vif_priv->sta_assoc = false;
|
||||||
vif_priv->allow_bmps = false;
|
|
||||||
wcn36xx_smd_set_link_st(wcn,
|
wcn36xx_smd_set_link_st(wcn,
|
||||||
bss_conf->bssid,
|
bss_conf->bssid,
|
||||||
vif->addr,
|
vif->addr,
|
||||||
|
@@ -23,10 +23,7 @@ int wcn36xx_pmc_enter_bmps_state(struct wcn36xx *wcn,
|
|||||||
{
|
{
|
||||||
int ret = 0;
|
int ret = 0;
|
||||||
struct wcn36xx_vif *vif_priv = wcn36xx_vif_to_priv(vif);
|
struct wcn36xx_vif *vif_priv = wcn36xx_vif_to_priv(vif);
|
||||||
|
/* TODO: Make sure the TX chain clean */
|
||||||
if (!vif_priv->allow_bmps)
|
|
||||||
return -ENOTSUPP;
|
|
||||||
|
|
||||||
ret = wcn36xx_smd_enter_bmps(wcn, vif);
|
ret = wcn36xx_smd_enter_bmps(wcn, vif);
|
||||||
if (!ret) {
|
if (!ret) {
|
||||||
wcn36xx_dbg(WCN36XX_DBG_PMC, "Entered BMPS\n");
|
wcn36xx_dbg(WCN36XX_DBG_PMC, "Entered BMPS\n");
|
||||||
|
@@ -127,7 +127,6 @@ struct wcn36xx_vif {
|
|||||||
enum wcn36xx_hal_bss_type bss_type;
|
enum wcn36xx_hal_bss_type bss_type;
|
||||||
|
|
||||||
/* Power management */
|
/* Power management */
|
||||||
bool allow_bmps;
|
|
||||||
enum wcn36xx_power_state pw_state;
|
enum wcn36xx_power_state pw_state;
|
||||||
|
|
||||||
u8 bss_index;
|
u8 bss_index;
|
||||||
|
Reference in New Issue
Block a user