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/qca-wifi-host-cmn 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/qca-wifi-host-cmn:
  qcacmn: skip MBSSID processing if it's not supported
  qcacmn: Zero out parameters of IPA function
  qcacmn: discard IPA TX ring flush using conditional compilation
  qcacmn: Vendor specific feature capability for dbs
  qcacmn: Set lock_cookie_freelist as NULL in qdf_lock_stats_deinit

Signed-off-by: Carlos Jimenez (JavaShin-X) <[email protected]>
  • Loading branch information
javashin committed Jun 16, 2022
2 parents c6079e5 + 6a06a9c commit b8b4e1f
Show file tree
Hide file tree
Showing 5 changed files with 30 additions and 7 deletions.
2 changes: 2 additions & 0 deletions drivers/staging/qca-wifi-host-cmn/dp/wifi3.0/dp_ipa.c
Original file line number Diff line number Diff line change
Expand Up @@ -1289,6 +1289,7 @@ QDF_STATUS dp_ipa_setup_iface(char *ifname, uint8_t *mac_addr,

dp_debug("Add Partial hdr: %s, "QDF_MAC_ADDR_FMT, 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));
qdf_ether_addr_copy(uc_tx_hdr.eth.h_source, mac_addr);

Expand Down Expand Up @@ -1546,6 +1547,7 @@ QDF_STATUS dp_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));
qdf_ether_addr_copy(uc_tx_hdr.eth.h_source, mac_addr);

Expand Down
2 changes: 2 additions & 0 deletions drivers/staging/qca-wifi-host-cmn/dp/wifi3.0/dp_main.c
Original file line number Diff line number Diff line change
Expand Up @@ -10574,8 +10574,10 @@ static QDF_STATUS dp_runtime_suspend(struct cdp_soc_t *soc_hdl, uint8_t pdev_id)

/* perform a force flush if tx is pending */
for (i = 0; i < soc->num_tcl_data_rings; i++) {
#ifdef IPA_OFFLOAD
if (i == IPA_TCL_DATA_RING_IDX)
continue;
#endif
hal_srng_set_event(soc->tcl_data_ring[i].hal_srng,
HAL_SRNG_FLUSH_EVENT);
dp_flush_ring_hptp(soc, soc->tcl_data_ring[i].hal_srng);
Expand Down
5 changes: 5 additions & 0 deletions drivers/staging/qca-wifi-host-cmn/os_if/linux/qca_vendor.h
Original file line number Diff line number Diff line change
Expand Up @@ -3746,6 +3746,10 @@ enum qca_wlan_vendor_attr_nd_offload {
* %QCA_WLAN_VENDOR_ATTR_THERMAL_LEVEL and
* %QCA_WLAN_VENDOR_ATTR_THERMAL_COMPLETION_WINDOW attributes from
* userspace.
* @QCA_WLAN_VENDOR_FEATURE_CONCURRENT_BAND_SESSIONS: Device supports
* concurrent network sessions on different Wi-Fi Bands. This feature
* capability is attributed to the hardware's capability to support
* the same (e.g., DBS).
* @NUM_QCA_WLAN_VENDOR_FEATURES: Number of assigned feature bits
*/
enum qca_wlan_vendor_features {
Expand All @@ -3761,6 +3765,7 @@ enum qca_wlan_vendor_features {
QCA_WLAN_VENDOR_FEATURE_11AX = 9,
QCA_WLAN_VENDOR_FEATURE_6GHZ_SUPPORT = 10,
QCA_WLAN_VENDOR_FEATURE_THERMAL_CONFIG = 11,
QCA_WLAN_VENDOR_FEATURE_CONCURRENT_BAND_SESSIONS = 13,

NUM_QCA_WLAN_VENDOR_FEATURES /* keep last */
};
Expand Down
1 change: 1 addition & 0 deletions drivers/staging/qca-wifi-host-cmn/qdf/linux/src/qdf_lock.c
Original file line number Diff line number Diff line change
Expand Up @@ -823,6 +823,7 @@ void qdf_lock_stats_deinit(void)
__func__, lock_cookies[i].u.cookie.func,
lock_cookies[i].u.cookie.line);
}
lock_cookie_freelist = NULL;
}

/* allocated separate memory in case the lock memory is freed without
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
/*
* Copyright (c) 2017-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 @@ -1986,9 +1987,9 @@ util_scan_parse_beacon_frame(struct wlan_objmgr_pdev *pdev,
{
struct wlan_bcn_frame *bcn;
struct wlan_frame_hdr *hdr;
uint8_t *mbssid_ie = NULL;
uint8_t *mbssid_ie = NULL, *extcap_ie;
uint32_t ie_len = 0;
QDF_STATUS status;
QDF_STATUS status = QDF_STATUS_E_FAILURE;
struct scan_mbssid_info mbssid_info = { 0 };

hdr = (struct wlan_frame_hdr *)frame;
Expand All @@ -1998,12 +1999,24 @@ util_scan_parse_beacon_frame(struct wlan_objmgr_pdev *pdev,
sizeof(struct wlan_frame_hdr) -
offsetof(struct wlan_bcn_frame, ie));

mbssid_ie = util_scan_find_ie(WLAN_ELEMID_MULTIPLE_BSSID,
extcap_ie = util_scan_find_ie(WLAN_ELEMID_XCAPS,
(uint8_t *)&bcn->ie, ie_len);
if (mbssid_ie) {
qdf_mem_copy(&mbssid_info.trans_bssid,
hdr->i_addr3, QDF_MAC_ADDR_SIZE);
mbssid_info.profile_count = 1 << mbssid_ie[2];
/* Process MBSSID when Multiple BSSID (Bit 22) is set in Ext Caps */
if (extcap_ie &&
extcap_ie[1] >= 3 && extcap_ie[1] <= WLAN_EXTCAP_IE_MAX_LEN &&
(extcap_ie[4] & 0x40)) {
mbssid_ie = util_scan_find_ie(WLAN_ELEMID_MULTIPLE_BSSID,
(uint8_t *)&bcn->ie, ie_len);
if (mbssid_ie) {
if (mbssid_ie[1] <= 0) {
scm_debug("MBSSID IE length is wrong %d",
mbssid_ie[1]);
return status;
}
qdf_mem_copy(&mbssid_info.trans_bssid,
hdr->i_addr3, QDF_MAC_ADDR_SIZE);
mbssid_info.profile_count = 1 << mbssid_ie[2];
}
}

status = util_scan_gen_scan_entry(pdev, frame, frame_len,
Expand Down

0 comments on commit b8b4e1f

Please sign in to comment.