|
@@ -2144,43 +2144,42 @@ static void hdd_update_tgt_vht_cap(struct hdd_context *hdd_ctx,
|
|
|
hdd_err("unable to get vht_enable2x2");
|
|
|
|
|
|
if (vht_enable_2x2) {
|
|
|
- if (cfg->vht_short_gi_80 & WMI_VHT_CAP_SGI_80MHZ) {
|
|
|
- /* Update 2x2 Highest Short GI data rate */
|
|
|
- tx_highest_data_rate =
|
|
|
- VHT_TX_HIGHEST_SUPPORTED_DATA_RATE_2_2_SGI80;
|
|
|
- rx_highest_data_rate =
|
|
|
- VHT_RX_HIGHEST_SUPPORTED_DATA_RATE_2_2_SGI80;
|
|
|
- } else {
|
|
|
- /* Update 2x2 Rx Highest Long GI data Rate */
|
|
|
- tx_highest_data_rate =
|
|
|
- VHT_TX_HIGHEST_SUPPORTED_DATA_RATE_2_2;
|
|
|
- rx_highest_data_rate =
|
|
|
- VHT_RX_HIGHEST_SUPPORTED_DATA_RATE_2_2;
|
|
|
- }
|
|
|
- } else if (cfg->vht_short_gi_80 & WMI_VHT_CAP_SGI_80MHZ) {
|
|
|
- /* Update 1x1 Highest Short GI data rate */
|
|
|
tx_highest_data_rate =
|
|
|
- VHT_TX_HIGHEST_SUPPORTED_DATA_RATE_1_1_SGI80;
|
|
|
+ VHT_TX_HIGHEST_SUPPORTED_DATA_RATE_2_2;
|
|
|
rx_highest_data_rate =
|
|
|
- VHT_RX_HIGHEST_SUPPORTED_DATA_RATE_1_1_SGI80;
|
|
|
+ VHT_RX_HIGHEST_SUPPORTED_DATA_RATE_2_2;
|
|
|
} else {
|
|
|
- /* Update 1x1 Highest Long GI data rate */
|
|
|
- tx_highest_data_rate = VHT_TX_HIGHEST_SUPPORTED_DATA_RATE_1_1;
|
|
|
- rx_highest_data_rate = VHT_RX_HIGHEST_SUPPORTED_DATA_RATE_1_1;
|
|
|
+ tx_highest_data_rate =
|
|
|
+ VHT_TX_HIGHEST_SUPPORTED_DATA_RATE_1_1;
|
|
|
+ rx_highest_data_rate =
|
|
|
+ VHT_RX_HIGHEST_SUPPORTED_DATA_RATE_1_1;
|
|
|
}
|
|
|
|
|
|
- status = ucfg_mlme_cfg_set_vht_rx_supp_data_rate(
|
|
|
- hdd_ctx->psoc,
|
|
|
- rx_highest_data_rate);
|
|
|
+ status = ucfg_mlme_cfg_set_vht_rx_supp_data_rate(hdd_ctx->psoc,
|
|
|
+ rx_highest_data_rate);
|
|
|
if (!QDF_IS_STATUS_SUCCESS(status))
|
|
|
hdd_err("Failed to set rx_supp_data_rate");
|
|
|
|
|
|
- status = ucfg_mlme_cfg_set_vht_tx_supp_data_rate(
|
|
|
- hdd_ctx->psoc,
|
|
|
- tx_highest_data_rate);
|
|
|
+ status = ucfg_mlme_cfg_set_vht_tx_supp_data_rate(hdd_ctx->psoc,
|
|
|
+ tx_highest_data_rate);
|
|
|
if (!QDF_IS_STATUS_SUCCESS(status))
|
|
|
hdd_err("Failed to set tx_supp_data_rate");
|
|
|
|
|
|
+ /* Update the real highest data rate to wiphy */
|
|
|
+ if (cfg->vht_short_gi_80 & WMI_VHT_CAP_SGI_80MHZ) {
|
|
|
+ if (vht_enable_2x2) {
|
|
|
+ tx_highest_data_rate =
|
|
|
+ VHT_TX_HIGHEST_SUPPORTED_DATA_RATE_2_2_SGI80;
|
|
|
+ rx_highest_data_rate =
|
|
|
+ VHT_RX_HIGHEST_SUPPORTED_DATA_RATE_2_2_SGI80;
|
|
|
+ } else {
|
|
|
+ tx_highest_data_rate =
|
|
|
+ VHT_TX_HIGHEST_SUPPORTED_DATA_RATE_1_1_SGI80;
|
|
|
+ rx_highest_data_rate =
|
|
|
+ VHT_RX_HIGHEST_SUPPORTED_DATA_RATE_1_1_SGI80;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
if (WMI_VHT_CAP_MAX_MPDU_LEN_11454 == cfg->vht_max_mpdu)
|
|
|
band_5g->vht_cap.cap |= IEEE80211_VHT_CAP_MAX_MPDU_LENGTH_11454;
|
|
|
else if (WMI_VHT_CAP_MAX_MPDU_LEN_7935 == cfg->vht_max_mpdu)
|