• Martin Fuzzey's avatar
    rsi: fix rate mask set leading to P2P failure · b515d097
    Martin Fuzzey authored
    P2P client mode was only working the first time.
    On subsequent connection attempts the group was successfully created but
    no data was sent (no transmitted data packets were seen with a sniffer).
    
    The reason for this was that the hardware was being configured in fixed
    rate mode with rate RSI_RATE_1 (1Mbps) which is not valid in the 5GHz band.
    
    In P2P mode wpa_supplicant uses NL80211_CMD_SET_TX_BITRATE_MASK to disallow
    the 11b rates in the 2.4GHz band which updated common->fixedrate_mask.
    
    rsi_set_min_rate() then used the fixedrate_mask to calculate the minimum
    allowed rate, or 0xffff = auto if none was found.
    However that calculation did not account for the different rate sets
    allowed in the different bands leading to the error.
    
    Fixing set_min_rate() would result in 6Mb/s being used all the time
    which is not what we want either.
    
    The reason the problem did not occur on the first connection is that
    rsi_mac80211_set_rate_mask() only updated the fixedrate_mask for
    the *current* band. When it was called that was still 2.4GHz as the
    switch is done later. So the when set_min_rate() was subsequently
    called after the switch to 5GHz it still had a mask of zero, leading
    to defaulting to auto mode.
    
    Fix this by differentiating the case of a single rate being
    requested, in which case the hardware will be used in fixed rate
    mode with just that rate, and multiple rates being requested,
    in which case we remain in auto mode but the firmware rate selection
    algorithm is configured with a restricted set of rates.
    
    Fixes: dad0d04f ("rsi: Add RS9113 wireless driver")
    Signed-off-by: default avatarMartin Fuzzey <martin.fuzzey@flowbird.group>
    CC: stable@vger.kernel.org
    Signed-off-by: default avatarKalle Valo <kvalo@codeaurora.org>
    Link: https://lore.kernel.org/r/1630337206-12410-4-git-send-email-martin.fuzzey@flowbird.group
    b515d097
rsi_91x_mac80211.c 56.7 KB