• Helmut Schaa's avatar
    mac80211: Get rid of search loop for rate group index · a5f69d94
    Helmut Schaa authored
    
    
    Finding the group index for a specific rate is done by looping through
    all groups and returning if the correct one is found. This code is
    called for each tx'ed frame and thus it makes sense to reduce its
    runtime.
    
    Do this by calculating the group index by this formula based on the SGI
    and HT40 flags as well as the stream number:
    
    idx = (HT40 * 2 * MINSTREL_MAX_STREAMS) +
          (SGI * MINSTREL_MAX_STREAMS) +
          (streams - 1)
    
    Hence, the groups are ordered by th HT40 flag first, then by the SGI
    flag and afterwards by the number of used streams.
    
    This should reduce the runtime of minstrel_ht_get_group_idx
    considerable.
    Signed-off-by: default avatarHelmut Schaa <helmut.schaa@googlemail.com>
    Acked-by: default avatarFelix Fietkau <nbd@openwrt.org>
    Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
    a5f69d94
rc80211_minstrel_ht.c 23 KB