On Fri, Sep 23, 2011 at 1:59 PM, Luciano Coelho <coelho@xxxxxx> wrote: > On Thu, 2011-09-22 at 16:36 +0300, Luciano Coelho wrote: >> On Thu, 2011-09-08 at 13:01 +0300, Shahar Levi wrote: >> > WL12xx FW supports HW channel switch mechanism. >> > Add HW channel switch support via channel_switch ops. >> > >> > Signed-off-by: Shahar Levi <shahar_levi@xxxxxx> >> > --- >> >> [...] Hi Luca, >> >> > +static void wl12xx_op_channel_switch(struct ieee80211_hw *hw, >> > + struct ieee80211_channel_switch *ch_switch) >> > +{ >> > + struct wl1271 *wl = hw->priv; >> > + int ret; >> > + >> > + wl1271_debug(DEBUG_MAC80211, "mac80211 channel switch"); >> > + >> > + mutex_lock(&wl->mutex); >> > + >> > + if (unlikely(wl->state == WL1271_STATE_OFF)) { >> > + mutex_unlock(&wl->mutex); >> > + ieee80211_chswitch_done(wl->vif, false); >> > + return; >> > + } >> > + >> > + ret = wl1271_ps_elp_wakeup(wl); >> > + if (ret < 0) >> > + goto out; >> > + >> > + /* send all pending packets */ >> > + wl1271_tx_work_locked(wl); >> >> Is this really needed? Can anyone tell why? I have re- discussed with the FW guys and it seems that when using HW channel switch sending all TX packet isn't needed. > > I checked this a bit further and I don't see the point in sending all > packets here. In fact, if block_tx is set, we can't even send any more > frames until the switch happens (or fails). So we should at least check > this here. The block_tx is taken into account in the mac layer. > > I'm leaving this patch out for now until I understand this better. Do you prefer me to set v2 without that line or you could fix that in the apply stage? > > -- > Cheers, > Luca. Thanks for your comment. All the best, Shahar -- To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html