Loading dp/wifi3.0/dp_ipa.c +2 −0 Original line number Diff line number Diff line Loading @@ -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); Loading Loading @@ -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); Loading dp/wifi3.0/dp_main.c +2 −0 Original line number Diff line number Diff line Loading @@ -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); Loading os_if/linux/qca_vendor.h +5 −0 Original line number Diff line number Diff line Loading @@ -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 { Loading @@ -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 */ }; Loading qdf/linux/src/qdf_lock.c +1 −0 Original line number Diff line number Diff line Loading @@ -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 Loading umac/scan/dispatcher/src/wlan_scan_utils_api.c +20 −7 Original line number Diff line number Diff line /* * 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 Loading Loading @@ -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; Loading @@ -1998,13 +1999,25 @@ util_scan_parse_beacon_frame(struct wlan_objmgr_pdev *pdev, sizeof(struct wlan_frame_hdr) - offsetof(struct wlan_bcn_frame, ie)); extcap_ie = util_scan_find_ie(WLAN_ELEMID_XCAPS, (uint8_t *)&bcn->ie, ie_len); /* 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, frm_subtype, rx_param, Loading Loading
dp/wifi3.0/dp_ipa.c +2 −0 Original line number Diff line number Diff line Loading @@ -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); Loading Loading @@ -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); Loading
dp/wifi3.0/dp_main.c +2 −0 Original line number Diff line number Diff line Loading @@ -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); Loading
os_if/linux/qca_vendor.h +5 −0 Original line number Diff line number Diff line Loading @@ -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 { Loading @@ -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 */ }; Loading
qdf/linux/src/qdf_lock.c +1 −0 Original line number Diff line number Diff line Loading @@ -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 Loading
umac/scan/dispatcher/src/wlan_scan_utils_api.c +20 −7 Original line number Diff line number Diff line /* * 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 Loading Loading @@ -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; Loading @@ -1998,13 +1999,25 @@ util_scan_parse_beacon_frame(struct wlan_objmgr_pdev *pdev, sizeof(struct wlan_frame_hdr) - offsetof(struct wlan_bcn_frame, ie)); extcap_ie = util_scan_find_ie(WLAN_ELEMID_XCAPS, (uint8_t *)&bcn->ie, ie_len); /* 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, frm_subtype, rx_param, Loading