On Mon, Sep 29, 2008 at 11:14 AM, Luis R. Rodriguez <mcgrof@xxxxxxxxx> wrote: > On Sun, Sep 28, 2008 at 9:14 AM, Tomas Winkler <tomas.winkler@xxxxxxxxx> wrote: >> From: Emmanuel Grumbach <emmanuel.grumbach@xxxxxxxxx> >> >> This patch makes mac80211 able to send action frames when toggling >> (SM PS) Spacial Multiplexing Power Save mode. > > I have no clue what this is as I haven't yet peeked at this section of > the draft. If we can provide a brief explanation as to what this is > would be useful to other developers without access to the 11n draft. > Even it its just enhancing the comment in the code. On the way >> Example: >> 1. >> Low lever driver may close some of RX chains in power save mode >> and needs to announce to AP that a RTS frame is need in order to wake all >> RX chains, on other hand SM PS can be disabled on CAM mode > > What's CAM mode? Continuously Aware Mode (No power save) >> or if HW is able >> to wake all chains without RTS frame. > > Should we add a HW capability bit for mac80211 drivers to indicate this? The patch is in internal review and testing, will be published soon. > >> 2. >> iwlwifi can call this function when it detects that only >> one antenna can effectively receive > > When would this happen? Would this happen when any 11n mac80211 > capable driver is going to PS mode and it doesn't have the capability > of detecting when it needs to to turn on its antennas? > >> then MS PS > > Did you mean SM PS mode? Typo, will resend the fix. >> mode is set to STATIC > > Can we elaborate a bit on what this vs Dynamic is in the comments if possible? We cannot copy the whole spec into code :) On the way. > >> +static void ieee80211_send_sm_ps(struct ieee80211_sub_if_data *sdata, u8 mode) >> +{ >> + struct ieee80211_local *local = sdata->local; >> + struct ieee80211_mgmt *mgmt; >> + struct sk_buff *skb; >> + DECLARE_MAC_BUF(mac); >> + >> + struct ieee80211_if_sta *ifsta = &sdata->u.sta; >> + struct net_device *dev = sdata->dev; >> + >> + /* Implemented for STA only */ >> + if (sdata->vif.type != NL80211_IFTYPE_STATION) >> + return; > > <-- snip --> > >> + if (ifsta->flags & IEEE80211_STA_ASSOCIATED) >> + ieee80211_tx_skb(sdata, skb, 0); > > You can move this ending branch above to return early so we don't go > through the entire routine for no good reason. So something like: > > if (sdata->vif.type != NL80211_IFTYPE_STATION || > ifsta->flags & IEEE80211_STA_ASSOCIATED) > return; > > Luis > -- > 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 > -- 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