Commit e20a854e authored by Sujith Manoharan's avatar Sujith Manoharan Committed by John W. Linville

ath9k: Cleanup mgd_prepare_tx callback

Rename the callback from ath9k_chanctx_force_active()
to ath9k_mgd_prepare_tx(). Also, move it to main.c and
group it with the other callbacks.
Signed-off-by: default avatarSujith Manoharan <c_manoha@qca.qualcomm.com>
Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
parent 0e62f8b7
...@@ -408,8 +408,6 @@ struct ath_offchannel { ...@@ -408,8 +408,6 @@ struct ath_offchannel {
ctx <= &sc->chanctx[ARRAY_SIZE(sc->chanctx) - 1]; \ ctx <= &sc->chanctx[ARRAY_SIZE(sc->chanctx) - 1]; \
ctx++) ctx++)
void ath9k_chanctx_force_active(struct ieee80211_hw *hw,
struct ieee80211_vif *vif);
static inline struct ath_chanctx * static inline struct ath_chanctx *
ath_chanctx_get(struct ieee80211_chanctx_conf *ctx) ath_chanctx_get(struct ieee80211_chanctx_conf *ctx)
{ {
...@@ -446,6 +444,8 @@ void ath9k_p2p_beacon_sync(struct ath_softc *sc); ...@@ -446,6 +444,8 @@ void ath9k_p2p_beacon_sync(struct ath_softc *sc);
void ath9k_p2p_bss_info_changed(struct ath_softc *sc, void ath9k_p2p_bss_info_changed(struct ath_softc *sc,
struct ieee80211_vif *vif); struct ieee80211_vif *vif);
void ath9k_p2p_ps_timer(void *priv); void ath9k_p2p_ps_timer(void *priv);
void ath_chanctx_set_next(struct ath_softc *sc, bool force);
#else #else
static inline bool ath9k_is_chanctx_enabled(void) static inline bool ath9k_is_chanctx_enabled(void)
{ {
......
...@@ -243,7 +243,7 @@ static bool ath_chanctx_defer_switch(struct ath_softc *sc) ...@@ -243,7 +243,7 @@ static bool ath_chanctx_defer_switch(struct ath_softc *sc)
return true; return true;
} }
static void ath_chanctx_set_next(struct ath_softc *sc, bool force) void ath_chanctx_set_next(struct ath_softc *sc, bool force)
{ {
struct timespec ts; struct timespec ts;
bool measure_time = false; bool measure_time = false;
...@@ -336,36 +336,6 @@ void ath_chanctx_init(struct ath_softc *sc) ...@@ -336,36 +336,6 @@ void ath_chanctx_init(struct ath_softc *sc)
} }
void ath9k_chanctx_force_active(struct ieee80211_hw *hw,
struct ieee80211_vif *vif)
{
struct ath_softc *sc = hw->priv;
struct ath_common *common = ath9k_hw_common(sc->sc_ah);
struct ath_vif *avp = (struct ath_vif *) vif->drv_priv;
bool changed = false;
if (!test_bit(ATH_OP_MULTI_CHANNEL, &common->op_flags))
return;
if (!avp->chanctx)
return;
mutex_lock(&sc->mutex);
spin_lock_bh(&sc->chan_lock);
if (sc->next_chan || (sc->cur_chan != avp->chanctx)) {
sc->next_chan = avp->chanctx;
changed = true;
}
sc->sched.state = ATH_CHANCTX_STATE_FORCE_ACTIVE;
spin_unlock_bh(&sc->chan_lock);
if (changed)
ath_chanctx_set_next(sc, true);
mutex_unlock(&sc->mutex);
}
void ath_chanctx_switch(struct ath_softc *sc, struct ath_chanctx *ctx, void ath_chanctx_switch(struct ath_softc *sc, struct ath_chanctx *ctx,
struct cfg80211_chan_def *chandef) struct cfg80211_chan_def *chandef)
{ {
......
...@@ -2340,6 +2340,36 @@ static void ath9k_unassign_vif_chanctx(struct ieee80211_hw *hw, ...@@ -2340,6 +2340,36 @@ static void ath9k_unassign_vif_chanctx(struct ieee80211_hw *hw,
mutex_unlock(&sc->mutex); mutex_unlock(&sc->mutex);
} }
static void ath9k_mgd_prepare_tx(struct ieee80211_hw *hw,
struct ieee80211_vif *vif)
{
struct ath_softc *sc = hw->priv;
struct ath_common *common = ath9k_hw_common(sc->sc_ah);
struct ath_vif *avp = (struct ath_vif *) vif->drv_priv;
bool changed = false;
if (!test_bit(ATH_OP_MULTI_CHANNEL, &common->op_flags))
return;
if (!avp->chanctx)
return;
mutex_lock(&sc->mutex);
spin_lock_bh(&sc->chan_lock);
if (sc->next_chan || (sc->cur_chan != avp->chanctx)) {
sc->next_chan = avp->chanctx;
changed = true;
}
sc->sched.state = ATH_CHANCTX_STATE_FORCE_ACTIVE;
spin_unlock_bh(&sc->chan_lock);
if (changed)
ath_chanctx_set_next(sc, true);
mutex_unlock(&sc->mutex);
}
void ath9k_fill_chanctx_ops(void) void ath9k_fill_chanctx_ops(void)
{ {
if (!ath9k_is_chanctx_enabled()) if (!ath9k_is_chanctx_enabled())
...@@ -2354,7 +2384,7 @@ void ath9k_fill_chanctx_ops(void) ...@@ -2354,7 +2384,7 @@ void ath9k_fill_chanctx_ops(void)
ath9k_ops.change_chanctx = ath9k_change_chanctx; ath9k_ops.change_chanctx = ath9k_change_chanctx;
ath9k_ops.assign_vif_chanctx = ath9k_assign_vif_chanctx; ath9k_ops.assign_vif_chanctx = ath9k_assign_vif_chanctx;
ath9k_ops.unassign_vif_chanctx = ath9k_unassign_vif_chanctx; ath9k_ops.unassign_vif_chanctx = ath9k_unassign_vif_chanctx;
ath9k_ops.mgd_prepare_tx = ath9k_chanctx_force_active; ath9k_ops.mgd_prepare_tx = ath9k_mgd_prepare_tx;
} }
#endif #endif
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment