• Michal Kazior's avatar
    ath10k: implement more versatile set_bitrate_mask · 45c9abc0
    Michal Kazior authored
    Until now only a single fixed tx rate or nss was
    allowed to be set.
    
    The patch attempts to improve this by allowing
    most bitrate masks. The limitation is VHT MCS
    rates cannot be expressed separately using
    existing firmware interfaces and only the
    following VHT MCS ranges are supported: none, 0-7,
    0-8, and 0-9.
    
    This keeps the old behaviour when requesting
    single tx rate or single nss. The new bitrate mask
    logic is only applied to other cases that would
    return -EINVAL until now.
    
    Depending on firmware revisions some combinations
    may crash firmware so use with care, please.
    
    This depends on "ath10k: don't use reassoc flag".
    Without it key cache would effectively be
    invalidated upon bitrate change leading to
    communication being no longer possible.
    
    These work:
    
      iw wlan0 set bitrates legacy-5 6 12 ht-mcs-5 1 2 3
      iw wlan0 set bitrates legacy-5 ht-mcs-5 7 8 9
      iw wlan0 set bitrates legacy-5 24 ht-mcs-5 vht-mcs-5 1:0-9
    
    These won't work:
    
      iw wlan0 set bitrates legacy-5 ht-mcs-5 vht-mcs-5 1:0-5
      iw wlan0 set bitrates vht-mcs-5 2:7-9
    
    (note the invalid VHT MCS ranges)
    Signed-off-by: default avatarMichal Kazior <michal.kazior@tieto.com>
    Signed-off-by: default avatarKalle Valo <kvalo@qca.qualcomm.com>
    45c9abc0
core.h 16.6 KB