• Miaoqing Pan's avatar
    ath10k: fix failure to set multiple fixed rate · 8b97b055
    Miaoqing Pan authored
    Currently, below fixed rate commands are broken,
    iw wlanx set bitrates legacy-<2.4|5> ht-mcs-<2.4|5> vht-mcs-<2.4|5> \
    <NSS:MCSx>
    iw wlanx set bitrates legacy-<2.4|5> <legacy rate> ht-mcs-<2.4|5> \
    vht-mcs-<2.4|5> <NSS:MCSx>
    
    There are two methods to set fixed rate, both failed,
    - Use vdev fixed rate command
      This command only support one single rate, but it's broken due to
      mac80211 change commit e8e4f528 ("mac80211: reject/clear user
      rate mask if not usable"), which requires user to specify at least
      one legacy rate. So we can't use this command to set ht/vht single
      rate any more.
    - Use peer_assoc command
      This command can update rx capability for multiple rates, it will
      work fine for ht mcs rates, as each supported mcs can be advertised
      in ht_mcs index mask. But this will not work with vht rates because,
      as per the vht mcs capability advertisement, there are only two bits
      to indicate the supported mcs. E.g. only support 0-7, 0-8, 0-9.
    
    So introduced new WMI command: WMI_PEER_PARAM_FIXED_RATE. After peer
    assoc, the peer fixed rate cmd will work for that specific peer.
    Remaining peers will use auto rate. If both vdev fixed rate and peer
    fixed rates are given, peer fixed rate will take effect to peers for
    which this cmd is given. Remaining peers in that vdev, will use vdev
    fixed rate.
    
    Tested HW: QCA9984
    Tested FW: 10.4-3.9.0.2-00035
    Signed-off-by: default avatarMiaoqing Pan <miaoqing@codeaurora.org>
    Signed-off-by: default avatarKalle Valo <kvalo@codeaurora.org>
    8b97b055
core.h 29.3 KB