Sven Eckelmann <sven.eckelmann@xxxxxxxxxxxx> wrote: > QCA9984 hardware can do 4x4 at 80Mhz, but only 2x2 at 160Mhz. > > First, report this to user-space by setting the max-tx-speed > and max-rx-speed vht capabilities. > > Second, if the peer rx-speed is configured, and if we > are in 160 or 80+80 mode, and the peer rx-speed matches > the max speed for 2x2 or 1x1 at 160Mhz (long guard interval), > then use that info to set the peer_bw_rxnss_override appropriately. > > Without this, a 9984 firmware will not use 2x2 ratesets when > transmitting to peer (it will be stuck at 1x1), because > the firmware would not have configured the rxnss_override. > > This could use some testing.... > > Signed-off-by: Ben Greear <greearb@xxxxxxxxxxxxxxx> > [sven.eckelmann@xxxxxxxxxxxx: rebase, cleanup, drop 160Mhz workaround cleanup] > Signed-off-by: Sven Eckelmann <sven.eckelmann@xxxxxxxxxxxx> > Signed-off-by: Kalle Valo <kvalo@xxxxxxxxxxxxxxxx> This one had warnings, fixed in pending branch: drivers/net/wireless/ath/ath10k/mac.c:4436:52: warning: incorrect type in assignment (different base types) drivers/net/wireless/ath/ath10k/mac.c:4436:52: expected restricted __le16 [assigned] [usertype] rx_highest drivers/net/wireless/ath/ath10k/mac.c:4436:52: got int drivers/net/wireless/ath/ath10k/mac.c:4437:52: warning: incorrect type in assignment (different base types) drivers/net/wireless/ath/ath10k/mac.c:4437:52: expected restricted __le16 [assigned] [usertype] tx_highest drivers/net/wireless/ath/ath10k/mac.c:4437:52: got int -- https://patchwork.kernel.org/patch/9778087/ https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches