ath9k: P2P_CLIENT, get/set NOA correctly
In case we get BSS_CHANGED_P2P_PS early, from mac80211, we didn't set NOA timer correctly, while p2p_ps_vif was NULL. Signed-off-by: Janusz Dziedzic <janusz.dziedzic@tieto.com> Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
This commit is contained in:
parent
3edbf0ba04
commit
b10b7fb31a
|
@ -1443,6 +1443,10 @@ static void ath9k_update_p2p_ps(struct ath_softc *sc, struct ieee80211_vif *vif)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
sc->p2p_ps_vif = avp;
|
sc->p2p_ps_vif = avp;
|
||||||
|
|
||||||
|
if (sc->ps_flags & PS_BEACON_SYNC)
|
||||||
|
return;
|
||||||
|
|
||||||
tsf = ath9k_hw_gettsf32(sc->sc_ah);
|
tsf = ath9k_hw_gettsf32(sc->sc_ah);
|
||||||
ieee80211_parse_p2p_noa(&vif->bss_conf.p2p_noa_attr, &avp->noa, tsf);
|
ieee80211_parse_p2p_noa(&vif->bss_conf.p2p_noa_attr, &avp->noa, tsf);
|
||||||
ath9k_update_p2p_ps_timer(sc, avp);
|
ath9k_update_p2p_ps_timer(sc, avp);
|
||||||
|
@ -1585,8 +1589,7 @@ void ath9k_p2p_bss_info_changed(struct ath_softc *sc,
|
||||||
|
|
||||||
spin_lock_bh(&sc->sc_pcu_lock);
|
spin_lock_bh(&sc->sc_pcu_lock);
|
||||||
spin_lock_irqsave(&sc->sc_pm_lock, flags);
|
spin_lock_irqsave(&sc->sc_pm_lock, flags);
|
||||||
if (!(sc->ps_flags & PS_BEACON_SYNC))
|
ath9k_update_p2p_ps(sc, vif);
|
||||||
ath9k_update_p2p_ps(sc, vif);
|
|
||||||
spin_unlock_irqrestore(&sc->sc_pm_lock, flags);
|
spin_unlock_irqrestore(&sc->sc_pm_lock, flags);
|
||||||
spin_unlock_bh(&sc->sc_pcu_lock);
|
spin_unlock_bh(&sc->sc_pcu_lock);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue