Skip to content

Commit

Permalink
Merge tag 'LA.UM.9.15.r1-06000-KAMORTA.QSSI13.0' of https://git.codel…
Browse files Browse the repository at this point in the history
…inaro.org/clo/la/platform/vendor/qcom-opensource/wlan/qcacld-3.0 into main

"LA.UM.9.15.r1-06000-KAMORTA.QSSI13.0"

* tag 'LA.UM.9.15.r1-06000-KAMORTA.QSSI13.0' of https://git.codelinaro.org/clo/la/platform/vendor/qcom-opensource/wlan/qcacld-3.0:
  Release 5.2.022.10T
  qcacld-3.0: Zero out parameters of IPA function
  Release 5.2.022.10S
  qcacld-3.0: dual-band option is missing under AP Band in Hotspot
  Release 5.2.022.10R
  qcacld-3.0: Enable SHADOW_WRITE_DELAY
  Release 5.2.022.10Q
  qcacld-3.0: Add a check for new feature capability
  Release 5.2.022.10P
  qcacld-3.0: Fix compilation error caused by 64-bit division
  qcacld-3.0: Add TPC Report in probe response
  Release 5.2.022.10O
  qcacld-3.0: Fix ROC duration limit in p2p_scan_start
  Release 5.2.022.10N
  qcacld-3.0: Update proper RCPI value in beacon report
  Release 5.2.022.10M
  qcacld-3.0: Abort MLME connect timers upon NB disconnect request

Signed-off-by: Carlos Jimenez (JavaShin-X) <[email protected]>
  • Loading branch information
javashin committed Jun 16, 2022
2 parents 82400c4 + aea39ba commit c6079e5
Show file tree
Hide file tree
Showing 17 changed files with 181 additions and 27 deletions.
2 changes: 1 addition & 1 deletion drivers/staging/qcacld-3.0/Kbuild
Original file line number Diff line number Diff line change
Expand Up @@ -2373,7 +2373,7 @@ cppflags-$(CONFIG_PLD_PCIE_INIT_FLAG) += -DCONFIG_PLD_PCIE_INIT
cppflags-$(CONFIG_WLAN_FEATURE_DP_RX_THREADS) += -DFEATURE_WLAN_DP_RX_THREADS
cppflags-$(CONFIG_WLAN_FEATURE_RX_SOFTIRQ_TIME_LIMIT) += -DWLAN_FEATURE_RX_SOFTIRQ_TIME_LIMIT
cppflags-$(CONFIG_FEATURE_HAL_DELAYED_REG_WRITE) += -DFEATURE_HAL_DELAYED_REG_WRITE

cppflags-$(CONFIG_SHADOW_WRITE_DELAY) += -DSHADOW_WRITE_DELAY

cppflags-$(CONFIG_PLD_USB_CNSS) += -DCONFIG_PLD_USB_CNSS
cppflags-$(CONFIG_PLD_SDIO_CNSS2) += -DCONFIG_PLD_SDIO_CNSS2
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -167,9 +167,8 @@ static QDF_STATUS p2p_scan_start(struct p2p_roc_context *roc_ctx)
P2P_MAX_ROC_DURATION_NON_DBS_NAN_PRESENT)
req->scan_req.dwell_time_passive =
P2P_MAX_ROC_DURATION_NON_DBS_NAN_PRESENT;

else if (req->scan_req.dwell_time_passive >
P2P_MAX_ROC_DURATION)
} else if (req->scan_req.dwell_time_passive >
P2P_MAX_ROC_DURATION) {
req->scan_req.dwell_time_passive = P2P_MAX_ROC_DURATION;
}
}
Expand Down
3 changes: 3 additions & 0 deletions drivers/staging/qcacld-3.0/configs/default_defconfig
Original file line number Diff line number Diff line change
Expand Up @@ -430,6 +430,9 @@ CONFIG_VERBOSE_DEBUG := y
CONFIG_RX_DESC_SANITY_WAR := y
ifeq ($(CONFIG_PCI_MSM), y)
CONFIG_FEATURE_HAL_DELAYED_REG_WRITE := y
ifeq ($(CONFIG_CNSS_QCA6390), y)
CONFIG_SHADOW_WRITE_DELAY := y
endif
endif
endif

Expand Down
1 change: 1 addition & 0 deletions drivers/staging/qcacld-3.0/core/dp/txrx/ol_txrx_ipa.c
Original file line number Diff line number Diff line change
Expand Up @@ -710,6 +710,7 @@ QDF_STATUS ol_txrx_ipa_setup_iface(char *ifname, uint8_t *mac_addr,
"%s: Add Partial hdr: %s, "QDF_MAC_ADDR_FMT,
__func__, ifname, QDF_MAC_ADDR_REF(mac_addr));

qdf_mem_zero(&in, sizeof(qdf_ipa_wdi_reg_intf_in_params_t));
qdf_mem_zero(&hdr_info, sizeof(qdf_ipa_wdi_hdr_info_t));
memcpy(&uc_tx_hdr, &ipa_uc_tx_hdr, OL_TXRX_IPA_UC_WLAN_TX_HDR_LEN);
qdf_ether_addr_copy(uc_tx_hdr.eth.h_source, mac_addr);
Expand Down
7 changes: 4 additions & 3 deletions drivers/staging/qcacld-3.0/core/dp/txrx3.0/dp_fisa_rx.c
Original file line number Diff line number Diff line change
Expand Up @@ -1276,6 +1276,7 @@ QDF_STATUS dp_rx_dump_fisa_stats(struct dp_soc *soc)
&((struct dp_fisa_rx_sw_ft *)rx_fst->base)[0];
int ft_size = rx_fst->max_entries;
int i;
uint64_t avg_aggregated;

dp_info("Num of flows programmed %d", rx_fst->add_flow_count);
dp_info("Num of flows evicted %d", rx_fst->del_flow_count);
Expand All @@ -1292,9 +1293,9 @@ QDF_STATUS dp_rx_dump_fisa_stats(struct dp_soc *soc)
dp_info("num msdu aggr %d", sw_ft_entry->aggr_count);
dp_info("flush count %d", sw_ft_entry->flush_count);
dp_info("bytes_aggregated %llu", sw_ft_entry->bytes_aggregated);
dp_info("avg aggregation %llu",
sw_ft_entry->bytes_aggregated / sw_ft_entry->flush_count
);
avg_aggregated = sw_ft_entry->bytes_aggregated;
qdf_do_div(avg_aggregated, sw_ft_entry->flush_count);
dp_info("avg aggregation %llu", avg_aggregated);
print_flow_tuple(&sw_ft_entry->rx_flow_tuple_info);
}
return QDF_STATUS_SUCCESS;
Expand Down
4 changes: 4 additions & 0 deletions drivers/staging/qcacld-3.0/core/hdd/src/wlan_hdd_cfg80211.c
Original file line number Diff line number Diff line change
Expand Up @@ -3993,6 +3993,10 @@ __wlan_hdd_cfg80211_get_features(struct wiphy *wiphy,
wlan_hdd_cfg80211_set_feature(feature_flags,
QCA_WLAN_VENDOR_FEATURE_OFFCHANNEL_SIMULTANEOUS);

if (policy_mgr_is_hw_dbs_capable(hdd_ctx->psoc))
wlan_hdd_cfg80211_set_feature(feature_flags,
QCA_WLAN_VENDOR_FEATURE_CONCURRENT_BAND_SESSIONS);

if (wma_is_p2p_lo_capable())
wlan_hdd_cfg80211_set_feature(feature_flags,
QCA_WLAN_VENDOR_FEATURE_P2P_LISTEN_OFFLOAD);
Expand Down
4 changes: 2 additions & 2 deletions drivers/staging/qcacld-3.0/core/mac/inc/qwlan_version.h
Original file line number Diff line number Diff line change
Expand Up @@ -32,9 +32,9 @@
#define QWLAN_VERSION_MAJOR 5
#define QWLAN_VERSION_MINOR 2
#define QWLAN_VERSION_PATCH 022
#define QWLAN_VERSION_EXTRA "L"
#define QWLAN_VERSION_EXTRA "T"
#define QWLAN_VERSION_BUILD 10

#define QWLAN_VERSIONSTR "5.2.022.10L"
#define QWLAN_VERSIONSTR "5.2.022.10T"

#endif /* QWLAN_VERSION_H */
4 changes: 3 additions & 1 deletion drivers/staging/qcacld-3.0/core/mac/inc/wni_api.h
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
/*
* Copyright (c) 2012-2020 The Linux Foundation. All rights reserved.
* Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.
*
* Permission to use, copy, modify, and/or distribute this software for
* any purpose with or without fee is hereby granted, provided that the
Expand Down Expand Up @@ -247,7 +248,8 @@ enum eWniMsgTypes {
SIR_SME_MSG_TYPES_BEGIN + 161,
eWNI_SME_MONITOR_MODE_VDEV_UP = SIR_SME_MSG_TYPES_BEGIN + 162,
eWNI_SME_UPDATE_SESSION_EDCA_TXQ_PARAMS = SIR_SME_MSG_TYPES_BEGIN + 163,
eWNI_SME_MSG_TYPES_END = SIR_SME_MSG_TYPES_BEGIN + 164
eWNI_SME_ABORT_CONN_TIMER = SIR_SME_MSG_TYPES_BEGIN + 164,
eWNI_SME_MSG_TYPES_END = SIR_SME_MSG_TYPES_BEGIN + 165
};

typedef struct sAniCfgTxRateCtrs {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
/*
* Copyright (c) 2011-2020 The Linux Foundation. All rights reserved.
* Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.
*
* Permission to use, copy, modify, and/or distribute this software for
* any purpose with or without fee is hereby granted, provided that the
Expand Down Expand Up @@ -2130,6 +2131,9 @@ static void lim_process_messages(struct mac_context *mac_ctx,
break;
case SIR_LIM_PROCESS_DEFERRED_QUEUE:
break;
case eWNI_SME_ABORT_CONN_TIMER:
lim_deactivate_timers_for_vdev(mac_ctx, msg->bodyval);
break;
default:
qdf_mem_free((void *)msg->bodyptr);
msg->bodyptr = NULL;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
/*
* Copyright (c) 2011-2020 The Linux Foundation. All rights reserved.
* Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.
*
* Permission to use, copy, modify, and/or distribute this software for
* any purpose with or without fee is hereby granted, provided that the
Expand Down Expand Up @@ -88,14 +89,7 @@ static void lim_fill_status_code(uint8_t frame_type,
}
}

/**
* lim_process_sae_auth_timeout() - This function is called to process sae
* auth timeout
* @mac_ctx: Pointer to Global MAC structure
*
* @Return: None
*/
static void lim_process_sae_auth_timeout(struct mac_context *mac_ctx)
void lim_process_sae_auth_timeout(struct mac_context *mac_ctx)
{
struct pe_session *session;
enum wlan_status_code proto_status_code;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
/*
* Copyright (c) 2011-2021 The Linux Foundation. All rights reserved.
* Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.
*
* Permission to use, copy, modify, and/or distribute this software for
* any purpose with or without fee is hereby granted, provided that the
Expand Down Expand Up @@ -49,6 +50,7 @@
#include "sme_trace.h"
#include "rrm_api.h"
#include "qdf_crypto.h"
#include "parser_api.h"

#include "wma_types.h"
#include <cdp_txrx_cmn.h>
Expand Down Expand Up @@ -633,6 +635,7 @@ lim_send_probe_rsp_mgmt_frame(struct mac_context *mac_ctx,
populate_dot11f_ssid(mac_ctx, (tSirMacSSid *) ssid, &frm->SSID);
populate_dot11f_supp_rates(mac_ctx, POPULATE_DOT11F_RATES_OPERATIONAL,
&frm->SuppRates, pe_session);
populate_dot11f_tpc_report(mac_ctx, &frm->TPCReport, pe_session);

populate_dot11f_ds_params(
mac_ctx, &frm->DSParams,
Expand Down
10 changes: 10 additions & 0 deletions drivers/staging/qcacld-3.0/core/mac/src/pe/lim/lim_types.h
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
/*
* Copyright (c) 2012-2020 The Linux Foundation. All rights reserved.
* Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.
*
* Permission to use, copy, modify, and/or distribute this software for
* any purpose with or without fee is hereby granted, provided that the
Expand Down Expand Up @@ -1241,6 +1242,15 @@ void lim_process_auth_failure_timeout(struct mac_context *mac_ctx);
void lim_process_assoc_failure_timeout(struct mac_context *mac_ctx,
uint32_t msg_type);

/**
* lim_process_sae_auth_timeout() - This function is called to process sae
* auth timeout
* @mac_ctx: Pointer to Global MAC structure
*
* @Return: None
*/
void lim_process_sae_auth_timeout(struct mac_context *mac_ctx);

/**
* lim_send_frame() - API to send frame
* @mac_ctx Pointer to Global MAC structure
Expand Down
62 changes: 62 additions & 0 deletions drivers/staging/qcacld-3.0/core/mac/src/pe/lim/lim_utils.c
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
/*
* Copyright (c) 2011-2020 The Linux Foundation. All rights reserved.
* Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.
*
* Permission to use, copy, modify, and/or distribute this software for
* any purpose with or without fee is hereby granted, provided that the
Expand Down Expand Up @@ -553,6 +554,67 @@ void lim_deactivate_timers(struct mac_context *mac_ctx)
tx_timer_deactivate(&lim_timer->sae_auth_timer);
}

void lim_deactivate_timers_for_vdev(struct mac_context *mac_ctx,
uint8_t vdev_id)
{
tLimTimers *lim_timer = &mac_ctx->lim.lim_timers;
struct pe_session *pe_session;

pe_session = pe_find_session_by_vdev_id(mac_ctx, vdev_id);
if (!pe_session) {
pe_err("pe session invalid for vdev %d", vdev_id);
return;
}
pe_debug("pe limMlmState %s vdev %d",
lim_mlm_state_str(pe_session->limMlmState),
vdev_id);
switch (pe_session->limMlmState) {
case eLIM_MLM_WT_JOIN_BEACON_STATE:
if (tx_timer_running(
&lim_timer->gLimJoinFailureTimer)) {
pe_debug("Trigger Join failure timeout for vdev %d",
vdev_id);
tx_timer_deactivate(
&lim_timer->gLimJoinFailureTimer);
lim_process_join_failure_timeout(mac_ctx);
}
break;
case eLIM_MLM_WT_AUTH_FRAME2_STATE:
case eLIM_MLM_WT_AUTH_FRAME4_STATE:
if (tx_timer_running(
&lim_timer->gLimAuthFailureTimer)) {
pe_debug("Trigger Auth failure timeout for vdev %d",
vdev_id);
tx_timer_deactivate(
&lim_timer->gLimAuthFailureTimer);
lim_process_auth_failure_timeout(mac_ctx);
}
break;
case eLIM_MLM_WT_ASSOC_RSP_STATE:
if (tx_timer_running(
&lim_timer->gLimAssocFailureTimer)) {
pe_debug("Trigger Assoc failure timeout for vdev %d",
vdev_id);
tx_timer_deactivate(
&lim_timer->gLimAssocFailureTimer);
lim_process_assoc_failure_timeout(mac_ctx,
LIM_ASSOC);
}
break;
case eLIM_MLM_WT_SAE_AUTH_STATE:
if (tx_timer_running(&lim_timer->sae_auth_timer)) {
pe_debug("Trigger SAE Auth failure timeout for vdev %d",
vdev_id);
tx_timer_deactivate(
&lim_timer->sae_auth_timer);
lim_process_sae_auth_timeout(mac_ctx);
}
break;
default:
return;
}
}


/**
* lim_cleanup_mlm() - This function is called to cleanup
Expand Down
14 changes: 14 additions & 0 deletions drivers/staging/qcacld-3.0/core/mac/src/pe/lim/lim_utils.h
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
/*
* Copyright (c) 2012-2020 The Linux Foundation. All rights reserved.
* Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.
*
* Permission to use, copy, modify, and/or distribute this software for
* any purpose with or without fee is hereby granted, provided that the
Expand Down Expand Up @@ -218,6 +219,19 @@ void lim_send_sme_mgmt_frame_ind(struct mac_context *mac_ctx, uint8_t frame_type
*/
void lim_deactivate_timers(struct mac_context *mac_ctx);

/*
* lim_deactivate_timers_for_vdev() - Deactivate lim connection timers
* @mac_ctx: Pointer to global mac structure
* @vdev_id: vdev id
*
* This function is used to trigger timeout of lim connection timers to abort
* connect request.
*
* Return: None
*/
void lim_deactivate_timers_for_vdev(struct mac_context *mac_ctx,
uint8_t vdev_id);

/*
* The below 'product' check tobe removed if 'Association' is
* allowed in IBSS.
Expand Down
31 changes: 22 additions & 9 deletions drivers/staging/qcacld-3.0/core/mac/src/pe/rrm/rrm_api.c
Original file line number Diff line number Diff line change
Expand Up @@ -202,6 +202,24 @@ QDF_STATUS rrm_set_max_tx_power_rsp(struct mac_context *mac,
return retCode;
}

/**
* rrm_calculate_and_fill_rcpi() - calculates and fills RCPI value
* @rcpi: pointer to hold calculated RCPI value
* @cur_rssi: value of current RSSI
*
* @return None
*/
static void rrm_calculate_and_fill_rcpi(uint8_t *rcpi, int8_t cur_rssi)
{
/* 2008 11k spec reference: 18.4.8.5 RCPI Measurement */
if (cur_rssi <= RCPI_LOW_RSSI_VALUE)
*rcpi = 0;
else if ((cur_rssi > RCPI_LOW_RSSI_VALUE) && (cur_rssi <= 0))
*rcpi = CALCULATE_RCPI(cur_rssi);
else
*rcpi = RCPI_MAX_VALUE;
}

/* -------------------------------------------------------------------- */
/**
* rrm_process_link_measurement_request
Expand Down Expand Up @@ -274,14 +292,7 @@ rrm_process_link_measurement_request(struct mac_context *mac,

pe_info("Received Link report frame with %d", currentRSSI);

/* 2008 11k spec reference: 18.4.8.5 RCPI Measurement */
if ((currentRSSI) <= RCPI_LOW_RSSI_VALUE)
LinkReport.rcpi = 0;
else if ((currentRSSI > RCPI_LOW_RSSI_VALUE) && (currentRSSI <= 0))
LinkReport.rcpi = CALCULATE_RCPI(currentRSSI);
else
LinkReport.rcpi = RCPI_MAX_VALUE;

rrm_calculate_and_fill_rcpi(&LinkReport.rcpi, currentRSSI);
LinkReport.rsni = WMA_GET_RX_SNR(pRxPacketInfo);

pe_debug("Sending Link report frame");
Expand Down Expand Up @@ -1014,7 +1025,9 @@ rrm_process_beacon_report_xmit(struct mac_context *mac_ctx,
beacon_report->phyType = bss_desc->nwType;
beacon_report->bcnProbeRsp = 1;
beacon_report->rsni = bss_desc->sinr;
beacon_report->rcpi = bss_desc->rssi;

rrm_calculate_and_fill_rcpi(&beacon_report->rcpi,
bss_desc->rssi);
beacon_report->antennaId = 0;
beacon_report->parentTSF = bss_desc->parentTSF;
qdf_mem_copy(beacon_report->bssid,
Expand Down
10 changes: 10 additions & 0 deletions drivers/staging/qcacld-3.0/core/mac/src/pe/sch/sch_beacon_gen.c
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
/*
* Copyright (c) 2012-2020 The Linux Foundation. All rights reserved.
* Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.
*
* Permission to use, copy, modify, and/or distribute this software for
* any purpose with or without fee is hereby granted, provided that the
Expand Down Expand Up @@ -211,6 +212,7 @@ static void sch_get_csa_ecsa_count_offset(uint8_t *ie, uint32_t ie_len,
offset += elem_len;
ptr += (elem_len + 2);
}

}

/**
Expand Down Expand Up @@ -912,6 +914,14 @@ void lim_update_probe_rsp_template_ie_bitmap_beacon2(struct mac_context *mac,
sizeof(beacon2->he_6ghz_band_cap));
}

if (beacon2->TPCReport.present) {
set_probe_rsp_ie_bitmap(DefProbeRspIeBitmap,
WLAN_ELEMID_TPCREP);
qdf_mem_copy((void *)&prb_rsp->TPCReport,
(void *)&beacon2->TPCReport,
sizeof(beacon2->TPCReport));
}

}

void set_probe_rsp_ie_bitmap(uint32_t *IeBitmap, uint32_t pos)
Expand Down
Loading

0 comments on commit c6079e5

Please sign in to comment.