mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-24 21:54:34 -04:00
Merge "qcacmn: Fix ppdu info release during detach"
This commit is contained in:
commit
f84fb21c59
24 changed files with 1108 additions and 1040 deletions
|
|
@ -110,7 +110,15 @@ dp_tx_rate_stats_update(struct dp_peer *peer,
|
|||
DP_STATS_UPD(peer, tx.rnd_avg_tx_rate, ppdu_tx_rate);
|
||||
|
||||
if (peer->vdev) {
|
||||
if (peer->bss_peer) {
|
||||
/*
|
||||
* In STA mode:
|
||||
* We get ucast stats as BSS peer stats.
|
||||
*
|
||||
* In AP mode:
|
||||
* We get mcast stats as BSS peer stats.
|
||||
* We get ucast stats as assoc peer stats.
|
||||
*/
|
||||
if (peer->vdev->opmode == wlan_op_mode_ap && peer->bss_peer) {
|
||||
peer->vdev->stats.tx.mcast_last_tx_rate = ratekbps;
|
||||
peer->vdev->stats.tx.mcast_last_tx_rate_mcs = ppdu->mcs;
|
||||
} else {
|
||||
|
|
|
|||
|
|
@ -1028,6 +1028,8 @@ void dp_print_ast_stats(struct dp_soc *soc)
|
|||
DP_PRINT_STATS(" Entries Added = %d", soc->stats.ast.added);
|
||||
DP_PRINT_STATS(" Entries Deleted = %d", soc->stats.ast.deleted);
|
||||
DP_PRINT_STATS(" Entries Agedout = %d", soc->stats.ast.aged_out);
|
||||
DP_PRINT_STATS(" Entries MAP ERR = %d", soc->stats.ast.map_err);
|
||||
|
||||
DP_PRINT_STATS("AST Table:");
|
||||
|
||||
qdf_spin_lock_bh(&soc->ast_lock);
|
||||
|
|
@ -3863,6 +3865,8 @@ static void dp_pdev_deinit(struct cdp_pdev *txrx_pdev, int force)
|
|||
|
||||
dp_htt_ppdu_stats_detach(pdev);
|
||||
|
||||
dp_tx_ppdu_stats_detach(pdev);
|
||||
|
||||
qdf_nbuf_free(pdev->sojourn_buf);
|
||||
|
||||
dp_cal_client_detach(&pdev->cal_client_ctx);
|
||||
|
|
@ -3920,8 +3924,6 @@ static void dp_pdev_detach(struct cdp_pdev *txrx_pdev, int force)
|
|||
|
||||
dp_mon_link_free(pdev);
|
||||
|
||||
dp_tx_ppdu_stats_detach(pdev);
|
||||
|
||||
/* Cleanup per PDEV REO rings if configured */
|
||||
if (wlan_cfg_per_pdev_rx_ring(soc->wlan_cfg_ctx)) {
|
||||
dp_srng_cleanup(soc, &soc->reo_dest_ring[pdev->pdev_id],
|
||||
|
|
@ -5091,6 +5093,10 @@ static void *dp_peer_create_wifi3(struct cdp_vdev *vdev_handle,
|
|||
peer->ctrl_peer = ctrl_peer;
|
||||
|
||||
dp_local_peer_id_alloc(pdev, peer);
|
||||
|
||||
qdf_spinlock_create(&peer->peer_info_lock);
|
||||
dp_peer_rx_bufq_resources_init(peer);
|
||||
|
||||
DP_STATS_INIT(peer);
|
||||
DP_STATS_UPD(peer, rx.avg_rssi, INVALID_RSSI);
|
||||
|
||||
|
|
|
|||
|
|
@ -1089,10 +1089,22 @@ void dp_peer_ast_send_wds_del(struct dp_soc *soc,
|
|||
ast_entry->delete_in_progress = true;
|
||||
}
|
||||
|
||||
static void dp_peer_ast_free_entry(struct dp_soc *soc,
|
||||
struct dp_ast_entry *ast_entry)
|
||||
/**
|
||||
* dp_peer_ast_free_entry_by_mac() - find ast entry by MAC address and delete
|
||||
* @soc: soc handle
|
||||
* @peer: peer handle
|
||||
* @mac_addr: mac address of the AST entry to searc and delete
|
||||
*
|
||||
* find the ast entry from the peer list using the mac address and free
|
||||
* the entry.
|
||||
*
|
||||
* Return: SUCCESS or NOENT
|
||||
*/
|
||||
static int dp_peer_ast_free_entry_by_mac(struct dp_soc *soc,
|
||||
struct dp_peer *peer,
|
||||
uint8_t *mac_addr)
|
||||
{
|
||||
struct dp_peer *peer = ast_entry->peer;
|
||||
struct dp_ast_entry *ast_entry;
|
||||
void *cookie = NULL;
|
||||
txrx_ast_free_cb cb = NULL;
|
||||
|
||||
|
|
@ -1102,8 +1114,14 @@ static void dp_peer_ast_free_entry(struct dp_soc *soc,
|
|||
*/
|
||||
|
||||
qdf_spin_lock_bh(&soc->ast_lock);
|
||||
if (ast_entry->is_mapped)
|
||||
|
||||
ast_entry = dp_peer_ast_list_find(soc, peer, mac_addr);
|
||||
if (!ast_entry) {
|
||||
qdf_spin_unlock_bh(&soc->ast_lock);
|
||||
return QDF_STATUS_E_NOENT;
|
||||
} else if (ast_entry->is_mapped) {
|
||||
soc->ast_table[ast_entry->ast_idx] = NULL;
|
||||
}
|
||||
|
||||
TAILQ_REMOVE(&peer->ast_entry_list, ast_entry, ase_list_elem);
|
||||
DP_STATS_INC(soc, ast.deleted, 1);
|
||||
|
|
@ -1117,6 +1135,7 @@ static void dp_peer_ast_free_entry(struct dp_soc *soc,
|
|||
if (ast_entry == peer->self_ast_entry)
|
||||
peer->self_ast_entry = NULL;
|
||||
|
||||
soc->num_ast_entries--;
|
||||
qdf_spin_unlock_bh(&soc->ast_lock);
|
||||
|
||||
if (cb) {
|
||||
|
|
@ -1126,7 +1145,8 @@ static void dp_peer_ast_free_entry(struct dp_soc *soc,
|
|||
CDP_TXRX_AST_DELETED);
|
||||
}
|
||||
qdf_mem_free(ast_entry);
|
||||
soc->num_ast_entries--;
|
||||
|
||||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
struct dp_peer *dp_peer_find_hash_find(struct dp_soc *soc,
|
||||
|
|
@ -1448,19 +1468,51 @@ dp_rx_peer_map_handler(void *soc_handle, uint16_t peer_id,
|
|||
peer_mac_addr[2], peer_mac_addr[3], peer_mac_addr[4],
|
||||
peer_mac_addr[5], vdev_id);
|
||||
|
||||
if ((hw_peer_id < 0) ||
|
||||
(hw_peer_id >= wlan_cfg_get_max_ast_idx(soc->wlan_cfg_ctx))) {
|
||||
QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_ERROR,
|
||||
"invalid hw_peer_id: %d", hw_peer_id);
|
||||
qdf_assert_always(0);
|
||||
}
|
||||
|
||||
/* Peer map event for WDS ast entry get the peer from
|
||||
* obj map
|
||||
*/
|
||||
if (is_wds) {
|
||||
peer = soc->peer_id_to_obj_map[peer_id];
|
||||
/*
|
||||
* In certain cases like Auth attack on a repeater
|
||||
* can result in the number of ast_entries falling
|
||||
* in the same hash bucket to exceed the max_skid
|
||||
* length supported by HW in root AP. In these cases
|
||||
* the FW will return the hw_peer_id (ast_index) as
|
||||
* 0xffff indicating HW could not add the entry in
|
||||
* its table. Host has to delete the entry from its
|
||||
* table in these cases.
|
||||
*/
|
||||
if (hw_peer_id == HTT_INVALID_PEER) {
|
||||
DP_STATS_INC(soc, ast.map_err, 1);
|
||||
if (!dp_peer_ast_free_entry_by_mac(soc,
|
||||
peer,
|
||||
peer_mac_addr))
|
||||
return;
|
||||
|
||||
dp_alert("AST entry not found with peer %pK peer_id %u peer_mac %pM mac_addr %pM vdev_id %u next_hop %u",
|
||||
peer, peer->peer_ids[0],
|
||||
peer->mac_addr.raw, peer_mac_addr, vdev_id,
|
||||
is_wds);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
} else {
|
||||
/*
|
||||
* It's the responsibility of the CP and FW to ensure
|
||||
* that peer is created successfully. Ideally DP should
|
||||
* not hit the below condition for directly assocaited
|
||||
* peers.
|
||||
*/
|
||||
if ((hw_peer_id < 0) ||
|
||||
(hw_peer_id >=
|
||||
wlan_cfg_get_max_ast_idx(soc->wlan_cfg_ctx))) {
|
||||
QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_ERROR,
|
||||
"invalid hw_peer_id: %d", hw_peer_id);
|
||||
qdf_assert_always(0);
|
||||
}
|
||||
|
||||
peer = dp_peer_find_add_id(soc, peer_mac_addr, peer_id,
|
||||
hw_peer_id, vdev_id);
|
||||
|
||||
|
|
@ -1515,7 +1567,6 @@ dp_rx_peer_unmap_handler(void *soc_handle, uint16_t peer_id,
|
|||
uint8_t is_wds)
|
||||
{
|
||||
struct dp_peer *peer;
|
||||
struct dp_ast_entry *ast_entry;
|
||||
struct dp_soc *soc = (struct dp_soc *)soc_handle;
|
||||
uint8_t i;
|
||||
|
||||
|
|
@ -1534,16 +1585,8 @@ dp_rx_peer_unmap_handler(void *soc_handle, uint16_t peer_id,
|
|||
/* If V2 Peer map messages are enabled AST entry has to be freed here
|
||||
*/
|
||||
if (soc->is_peer_map_unmap_v2 && is_wds) {
|
||||
|
||||
qdf_spin_lock_bh(&soc->ast_lock);
|
||||
ast_entry = dp_peer_ast_list_find(soc, peer,
|
||||
mac_addr);
|
||||
qdf_spin_unlock_bh(&soc->ast_lock);
|
||||
|
||||
if (ast_entry) {
|
||||
dp_peer_ast_free_entry(soc, ast_entry);
|
||||
if (!dp_peer_ast_free_entry_by_mac(soc, peer, mac_addr))
|
||||
return;
|
||||
}
|
||||
|
||||
dp_alert("AST entry not found with peer %pK peer_id %u peer_mac %pM mac_addr %pM vdev_id %u next_hop %u",
|
||||
peer, peer->peer_ids[0],
|
||||
|
|
|
|||
|
|
@ -5260,7 +5260,7 @@ dp_print_pdev_tx_stats(struct dp_pdev *pdev)
|
|||
pdev->stats.tx.dropped.age_out);
|
||||
DP_PRINT_STATS(" headroom insufficient = %d",
|
||||
pdev->stats.tx_i.dropped.headroom_insufficient);
|
||||
DP_PRINT_STATS(" Multicast:");
|
||||
DP_PRINT_STATS("Multicast:");
|
||||
DP_PRINT_STATS(" Packets: %u",
|
||||
pdev->stats.tx.mcast.num);
|
||||
DP_PRINT_STATS(" Bytes: %llu",
|
||||
|
|
|
|||
|
|
@ -3090,12 +3090,7 @@ void dp_tx_comp_process_tx_status(struct dp_tx_desc_s *tx_desc,
|
|||
goto out;
|
||||
}
|
||||
|
||||
if (qdf_likely(!peer->bss_peer)) {
|
||||
DP_STATS_INC_PKT(peer, tx.ucast, 1, length);
|
||||
|
||||
if (ts->status == HAL_TX_TQM_RR_FRAME_ACKED)
|
||||
DP_STATS_INC_PKT(peer, tx.tx_success, 1, length);
|
||||
} else {
|
||||
if (qdf_unlikely(peer->bss_peer && vdev->opmode == wlan_op_mode_ap)) {
|
||||
if (ts->status != HAL_TX_TQM_RR_REM_CMD_REM) {
|
||||
DP_STATS_INC_PKT(peer, tx.mcast, 1, length);
|
||||
|
||||
|
|
@ -3105,6 +3100,10 @@ void dp_tx_comp_process_tx_status(struct dp_tx_desc_s *tx_desc,
|
|||
DP_STATS_INC_PKT(peer, tx.bcast, 1, length);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
DP_STATS_INC_PKT(peer, tx.ucast, 1, length);
|
||||
if (ts->status == HAL_TX_TQM_RR_FRAME_ACKED)
|
||||
DP_STATS_INC_PKT(peer, tx.tx_success, 1, length);
|
||||
}
|
||||
|
||||
dp_tx_update_peer_stats(tx_desc, ts, peer, ring_id);
|
||||
|
|
|
|||
|
|
@ -644,6 +644,7 @@ struct dp_soc_stats {
|
|||
uint32_t added;
|
||||
uint32_t deleted;
|
||||
uint32_t aged_out;
|
||||
uint32_t map_err;
|
||||
} ast;
|
||||
|
||||
/* SOC level TX stats */
|
||||
|
|
|
|||
|
|
@ -118,12 +118,6 @@ struct CE_state;
|
|||
#define HIF_MAX_GROUP 8
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_SLUB_DEBUG_ON
|
||||
#ifndef CONFIG_WIN
|
||||
#define HIF_CONFIG_SLUB_DEBUG_ON
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#ifndef NAPI_YIELD_BUDGET_BASED
|
||||
#ifdef HIF_CONFIG_SLUB_DEBUG_ON
|
||||
#define QCA_NAPI_DEF_SCALE_BIN_SHIFT 1
|
||||
|
|
|
|||
|
|
@ -37,9 +37,6 @@
|
|||
#include "ce_reg.h"
|
||||
#include "ce_assignment.h"
|
||||
#include "ce_tasklet.h"
|
||||
#ifndef CONFIG_WIN
|
||||
#include "qwlan_version.h"
|
||||
#endif
|
||||
#include "qdf_module.h"
|
||||
|
||||
#define CE_POLL_TIMEOUT 10 /* ms */
|
||||
|
|
@ -2973,8 +2970,7 @@ int hif_wlan_enable(struct hif_softc *scn)
|
|||
if (BYPASS_QMI)
|
||||
return 0;
|
||||
else
|
||||
return pld_wlan_enable(scn->qdf_dev->dev, &cfg,
|
||||
mode, QWLAN_VERSIONSTR);
|
||||
return pld_wlan_enable(scn->qdf_dev->dev, &cfg, mode);
|
||||
}
|
||||
|
||||
#ifdef WLAN_FEATURE_EPPING
|
||||
|
|
|
|||
|
|
@ -76,10 +76,6 @@ enum ce_target_type {
|
|||
CE_MAX_TARGET_TYPE
|
||||
};
|
||||
|
||||
#ifdef CONFIG_WIN
|
||||
#define QWLAN_VERSIONSTR "WIN"
|
||||
#endif
|
||||
|
||||
enum ol_ath_hif_pkt_ecodes {
|
||||
HIF_PIPE_NO_RESOURCE = 0
|
||||
};
|
||||
|
|
|
|||
|
|
@ -26,7 +26,6 @@
|
|||
#include "hif_debug.h"
|
||||
#include "epping_main.h"
|
||||
#include "hif_main.h"
|
||||
#include "qwlan_version.h"
|
||||
#include "usb_api.h"
|
||||
|
||||
#define DELAY_FOR_TARGET_READY 200 /* 200ms */
|
||||
|
|
@ -532,8 +531,7 @@ int hif_usb_bus_configure(struct hif_softc *scn)
|
|||
else
|
||||
mode = PLD_MISSION;
|
||||
|
||||
return pld_wlan_enable(scn->qdf_dev->dev, &cfg,
|
||||
mode, QWLAN_VERSIONSTR);
|
||||
return pld_wlan_enable(scn->qdf_dev->dev, &cfg, mode);
|
||||
}
|
||||
#else
|
||||
/**
|
||||
|
|
@ -706,7 +704,6 @@ void hif_usb_ramdump_handler(struct hif_opaque_softc *scn)
|
|||
|
||||
if (pattern == FW_ASSERT_PATTERN) {
|
||||
HIF_ERROR("Firmware crash detected...\n");
|
||||
HIF_ERROR("Host SW version: %s\n", QWLAN_VERSIONSTR);
|
||||
HIF_ERROR("target_type: %d.target_version %d. target_revision%d.",
|
||||
tgt_info->target_type,
|
||||
tgt_info->target_version,
|
||||
|
|
|
|||
|
|
@ -45,7 +45,7 @@ ATH_DEBUG_INSTANTIATE_MODULE_VAR(htc,
|
|||
|
||||
#endif
|
||||
|
||||
#if (defined(CONFIG_MCL) || defined(QCA_WIFI_QCA8074) || \
|
||||
#if (defined(WMI_MULTI_MAC_SVC) || defined(QCA_WIFI_QCA8074) || \
|
||||
defined(QCA_WIFI_QCA6018))
|
||||
static const uint32_t svc_id[] = {WMI_CONTROL_SVC, WMI_CONTROL_SVC_WMAC1,
|
||||
WMI_CONTROL_SVC_WMAC2};
|
||||
|
|
|
|||
|
|
@ -1139,14 +1139,6 @@ static enum HTC_SEND_QUEUE_RESULT htc_try_send(HTC_TARGET *target,
|
|||
return result;
|
||||
}
|
||||
|
||||
if (!IS_TX_CREDIT_FLOW_ENABLED(pEndpoint)) {
|
||||
tx_resources =
|
||||
hif_get_free_queue_number(target->hif_dev,
|
||||
pEndpoint->UL_PipeID);
|
||||
} else {
|
||||
tx_resources = 0;
|
||||
}
|
||||
|
||||
LOCK_HTC_TX(target);
|
||||
|
||||
if (!HTC_QUEUE_EMPTY(&sendQueue)) {
|
||||
|
|
@ -1185,6 +1177,14 @@ static enum HTC_SEND_QUEUE_RESULT htc_try_send(HTC_TARGET *target,
|
|||
/* now drain the endpoint TX queue for transmission as long as we have
|
||||
* enough transmit resources
|
||||
*/
|
||||
if (!IS_TX_CREDIT_FLOW_ENABLED(pEndpoint)) {
|
||||
tx_resources =
|
||||
hif_get_free_queue_number(target->hif_dev,
|
||||
pEndpoint->UL_PipeID);
|
||||
} else {
|
||||
tx_resources = 0;
|
||||
}
|
||||
|
||||
while (true) {
|
||||
|
||||
if (HTC_PACKET_QUEUE_DEPTH(&pEndpoint->TxQueue) == 0)
|
||||
|
|
|
|||
|
|
@ -118,7 +118,7 @@ QDF_STATUS target_if_crypto_set_key(struct wlan_objmgr_vdev *vdev,
|
|||
struct cdp_peer *peer = NULL;
|
||||
uint8_t peer_id;
|
||||
uint8_t def_tx_idx;
|
||||
void *pdev_wmi_handle;
|
||||
wmi_unified_t pdev_wmi_handle;
|
||||
bool pairwise;
|
||||
QDF_STATUS status;
|
||||
|
||||
|
|
|
|||
|
|
@ -285,7 +285,7 @@ static QDF_STATUS target_if_dfs_set_phyerr_filter_offload(
|
|||
bool dfs_phyerr_filter_offload)
|
||||
{
|
||||
QDF_STATUS status;
|
||||
void *wmi_handle;
|
||||
wmi_unified_t wmi_handle;
|
||||
|
||||
if (!pdev) {
|
||||
target_if_err("null pdev");
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright (c) 2017-2018 The Linux Foundation. All rights reserved.
|
||||
* Copyright (c) 2017-2019 The Linux Foundation. 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
|
||||
|
|
@ -140,7 +140,7 @@ QDF_STATUS target_if_green_ap_enable_egap(
|
|||
struct wlan_green_ap_egap_params *egap_params)
|
||||
{
|
||||
struct wlan_pdev_green_ap_ctx *green_ap_ctx;
|
||||
void *wmi_hdl;
|
||||
wmi_unified_t wmi_hdl;
|
||||
|
||||
if (!pdev) {
|
||||
green_ap_err("pdev context passed is NULL");
|
||||
|
|
@ -175,7 +175,7 @@ QDF_STATUS target_if_green_ap_enable_egap(
|
|||
QDF_STATUS target_if_green_ap_set_ps_on_off(struct wlan_objmgr_pdev *pdev,
|
||||
bool value, uint8_t pdev_id)
|
||||
{
|
||||
void *wmi_hdl;
|
||||
wmi_unified_t wmi_hdl;
|
||||
|
||||
if (!pdev) {
|
||||
green_ap_err("pdev context passed is NULL");
|
||||
|
|
|
|||
|
|
@ -117,7 +117,8 @@ int init_deinit_populate_service_bitmap(void *wmi_handle, uint8_t *event,
|
|||
*
|
||||
* Return: zero on successful population of fw_version command or failure flag
|
||||
*/
|
||||
int init_deinit_populate_fw_version_cmd(void *wmi_handle, uint8_t *event);
|
||||
int
|
||||
init_deinit_populate_fw_version_cmd(wmi_unified_t wmi_handle, uint8_t *event);
|
||||
|
||||
/**
|
||||
* init_deinit_populate_target_cap() - populate target cap
|
||||
|
|
|
|||
|
|
@ -142,7 +142,8 @@ int init_deinit_populate_service_bitmap(void *wmi_handle, uint8_t *event,
|
|||
return 0;
|
||||
}
|
||||
|
||||
int init_deinit_populate_fw_version_cmd(void *wmi_handle, uint8_t *event)
|
||||
int init_deinit_populate_fw_version_cmd(wmi_unified_t wmi_handle,
|
||||
uint8_t *event)
|
||||
{
|
||||
QDF_STATUS status;
|
||||
|
||||
|
|
|
|||
|
|
@ -378,7 +378,7 @@ QDF_STATUS
|
|||
target_if_scan_start(struct wlan_objmgr_pdev *pdev,
|
||||
struct scan_start_request *req)
|
||||
{
|
||||
void *pdev_wmi_handle;
|
||||
wmi_unified_t pdev_wmi_handle;
|
||||
|
||||
pdev_wmi_handle = GET_WMI_HDL_FROM_PDEV(pdev);
|
||||
if (!pdev_wmi_handle) {
|
||||
|
|
@ -392,7 +392,7 @@ QDF_STATUS
|
|||
target_if_scan_cancel(struct wlan_objmgr_pdev *pdev,
|
||||
struct scan_cancel_param *req)
|
||||
{
|
||||
void *pdev_wmi_handle;
|
||||
wmi_unified_t pdev_wmi_handle;
|
||||
|
||||
pdev_wmi_handle = GET_WMI_HDL_FROM_PDEV(pdev);
|
||||
if (!pdev_wmi_handle) {
|
||||
|
|
|
|||
|
|
@ -269,7 +269,7 @@ static QDF_STATUS wifi_pos_oem_data_req(struct wlan_objmgr_psoc *psoc,
|
|||
struct oem_data_req *req)
|
||||
{
|
||||
QDF_STATUS status;
|
||||
void *wmi_hdl = GET_WMI_HDL_FROM_PSOC(psoc);
|
||||
wmi_unified_t wmi_hdl = GET_WMI_HDL_FROM_PSOC(psoc);
|
||||
|
||||
target_if_debug("Send oem data req to target");
|
||||
|
||||
|
|
@ -564,7 +564,7 @@ static QDF_STATUS target_if_wifi_pos_cfg_fw(struct wlan_objmgr_psoc *psoc,
|
|||
{
|
||||
uint8_t i;
|
||||
QDF_STATUS status;
|
||||
void *wmi_hdl = GET_WMI_HDL_FROM_PSOC(psoc);
|
||||
wmi_unified_t wmi_hdl = GET_WMI_HDL_FROM_PSOC(psoc);
|
||||
wmi_oem_dma_ring_cfg_req_fixed_param cfg = {0};
|
||||
|
||||
if (!wmi_hdl) {
|
||||
|
|
|
|||
|
|
@ -235,7 +235,25 @@ typedef void (*wlan_objmgr_peer_status_handler)(
|
|||
* @WLAN_CFR_ID: CFG Capture method
|
||||
* @WLAN_VDEV_TARGET_IF_ID: Target interface layer
|
||||
* @WLAN_RX_PKT_TAG_ID: RX protocol tag operations
|
||||
* @WLAN_INTEROP_ISSUES_AP_ID: interop issues ap operation
|
||||
* @WLAN_INTEROP_ISSUES_AP_ID: interop issues ap operation
|
||||
* @WLAN_WDS_ID: WDS operations
|
||||
* @WLAN_PROXY_ARP_ID: AP proxy ARP
|
||||
* @WLAN_WNM_ID: wireless network management operations
|
||||
* @WLAN_RRM_ID: Radio resource management operations
|
||||
* @WLAN_TR69_ID: TR69 operations
|
||||
* @WLAN_MGMT_RX_ID: Legacy offload management frame input handler
|
||||
* @WLAN_MGMT_TX_ID: Legacy offload management frame output handler
|
||||
* @WLAN_NSS_IF_ID: NSS offload interface operations
|
||||
* @WLAN_MBO_ID: MBO operations
|
||||
* @WLAN_RTT_ID: RTT operations
|
||||
* @WLAN_ALD_ID: Ath Link Diagnostic operations
|
||||
* @WLAN_ME_ID: Multicast enhancement operations
|
||||
* @WLAN_MGMT_HANDLER_ID: Management frame handler
|
||||
* @WLAN_MLME_HANDLER_ID: MLME handler
|
||||
* @WLAN_DBDC_ID: Dual Band Dual Concurrent mode operations
|
||||
* @WLAN_MLME_OBJMGR_ID: MLME object manager operations VAP, Node
|
||||
* @WLAN_OFFCHAN_TX_ID: Offchannel Tx operations
|
||||
* @WLAN_MISC_ID: power manager, PAPI, rate set, etc.
|
||||
* @WLAN_REF_ID_MAX: Max id used to generate ref count tracking array
|
||||
*/
|
||||
/* New value added to the enum must also be reflected in function
|
||||
|
|
@ -294,6 +312,24 @@ typedef enum {
|
|||
WLAN_VDEV_TARGET_IF_ID = 49,
|
||||
WLAN_RX_PKT_TAG_ID = 50,
|
||||
WLAN_INTEROP_ISSUES_AP_ID = 51,
|
||||
WLAN_WDS_ID = 52,
|
||||
WLAN_PROXY_ARP_ID = 53,
|
||||
WLAN_WNM_ID = 54,
|
||||
WLAN_RRM_ID = 55,
|
||||
WLAN_TR69_ID = 56,
|
||||
WLAN_MGMT_RX_ID = 57,
|
||||
WLAN_MGMT_TX_ID = 58,
|
||||
WLAN_NSS_IF_ID = 59,
|
||||
WLAN_MBO_ID = 60,
|
||||
WLAN_RTT_ID = 61,
|
||||
WLAN_ALD_ID = 62,
|
||||
WLAN_ME_ID = 63,
|
||||
WLAN_MGMT_HANDLER_ID = 64,
|
||||
WLAN_MLME_HANDLER_ID = 65,
|
||||
WLAN_DBDC_ID = 66,
|
||||
WLAN_MLME_OBJMGR_ID = 67,
|
||||
WLAN_OFFCHAN_TX_ID = 68,
|
||||
WLAN_MISC_ID = 69,
|
||||
WLAN_REF_ID_MAX,
|
||||
} wlan_objmgr_ref_dbgid;
|
||||
|
||||
|
|
@ -359,6 +395,24 @@ static inline char *string_from_dbgid(wlan_objmgr_ref_dbgid id)
|
|||
"WLAN_VDEV_TARGET_IF_ID",
|
||||
"WLAN_RX_PKT_TAG_ID",
|
||||
"WLAN_INTEROP_ISSUES_AP_ID",
|
||||
"WLAN_WDS_ID",
|
||||
"WLAN_PROXY_ARP_ID",
|
||||
"WLAN_WNM_ID",
|
||||
"WLAN_RRM_ID",
|
||||
"WLAN_TR69_ID",
|
||||
"WLAN_MGMT_RX_ID",
|
||||
"WLAN_MGMT_TX_ID",
|
||||
"WLAN_NSS_IF_ID",
|
||||
"WLAN_MBO_ID",
|
||||
"WLAN_RTT_ID",
|
||||
"WLAN_ALD_ID",
|
||||
"WLAN_ME_ID",
|
||||
"WLAN_MGMT_HANDLER_ID",
|
||||
"WLAN_MLME_HANDLER_ID",
|
||||
"WLAN_DBDC_ID",
|
||||
"WLAN_MLME_OBJMGR_ID",
|
||||
"WLAN_OFFCHAN_TX_ID",
|
||||
"WLAN_MISC_ID",
|
||||
"WLAN_REF_ID_MAX"};
|
||||
|
||||
return (char *)strings[id];
|
||||
|
|
|
|||
|
|
@ -159,7 +159,37 @@ typedef QDF_STATUS (*wlan_ser_umac_cmd_cb)(void *umac_cmd);
|
|||
|
||||
/**
|
||||
* enum wlan_umac_cmd_id - Command Type
|
||||
* @WLAN_SER_CMD_SCAN: Scan command
|
||||
* @WLAN_SER_CMD_SCAN: Scan command
|
||||
* @WLAN_SER_CMD_NONSCAN: Non-scan command
|
||||
* @WLAN_SER_CMD_HDD_ISSUE_REASSOC_SAME_AP: HDD Reassoc cmd
|
||||
* @WLAN_SER_CMD_SME_ISSUE_REASSOC_SAME_AP: SME Reassoc cmd
|
||||
* @WLAN_SER_CMD_SME_ISSUE_DISASSOC_FOR_HANDOFF: SME Disassoc cmd
|
||||
* @WLAN_SER_CMD_SME_ISSUE_ASSOC_TO_SIMILAR_AP: SME Assoc cmd
|
||||
* @WLAN_SER_CMD_FORCE_IBSS_LEAVE: IBSS leave AP cmd
|
||||
* @WLAN_SER_CMD_SME_ISSUE_FT_REASSOC: SME reassoc cmd
|
||||
* @WLAN_SER_CMD_FORCE_DISASSOC_STA: Force diassoc for STA vap
|
||||
* @WLAN_SER_CMD_FORCE_DEAUTH_STA: Force deauth for STA vap
|
||||
* @WLAN_SER_CMD_PERFORM_PRE_AUTH: Pre auth ops cmd
|
||||
* @WLAN_SER_CMD_WM_STATUS_CHANGE: WM status modification cmd
|
||||
* @WLAN_SER_CMD_NDP_INIT_REQ: NDP init request cmd
|
||||
* @WLAN_SER_CMD_NDP_RESP_REQ: NDP response to request cmd
|
||||
* @WLAN_SER_CMD_NDP_DATA_END_INIT_REQ: NDP data end init request
|
||||
* @WLAN_SER_CMD_NDP_END_ALL_REQ: NDP close all request
|
||||
* @WLAN_SER_CMD_ADDTS: ADD Ts cmd
|
||||
* @WLAN_SER_CMD_DELTS: Del Ts cmd
|
||||
* @WLAN_SER_CMD_TDLS_SEND_MGMT: TDLS mgmt send cmd
|
||||
* @WLAN_SER_CMD_TDLS_ADD_PEER: TDLS cmd to add peer
|
||||
* @WLAN_SER_CMD_TDLS_DEL_PEER: TDLS cmd to del peer
|
||||
* @WLAN_SER_CMD_SET_HW_MODE: Cmd to set hardware mode change
|
||||
* @WLAN_SER_CMD_NSS_UPDATE: Cmd to update NSS config
|
||||
* @WLAN_SER_CMD_SET_DUAL_MAC_CONFIG: Cmd to set dual mac
|
||||
* @WLAN_SER_CMD_SET_ANTENNA_MODE: Set antenna mode
|
||||
* @WLAN_SER_CMD_DEL_STA_SESSION: Cmd to del STA session
|
||||
* @WLAN_SER_CMD_VDEV_START_BSS: Cmd to start a AP VDEV
|
||||
* @WLAN_SER_CMD_VDEV_STOP_BSS: Cmd to stop a AP VDEV
|
||||
* @WLAN_SER_CMD_VDEV_CONNECT: Cmd to start a STA VDEV
|
||||
* @WLAN_SER_CMD_VDEV_DISCONNECT: Cmd to stop a STA VDEV
|
||||
* @WLAN_SER_CMD_VDEV_RESTART: Cmd to restart a VDEV
|
||||
*/
|
||||
enum wlan_serialization_cmd_type {
|
||||
/* all scan command before non-scan */
|
||||
|
|
|
|||
|
|
@ -217,7 +217,13 @@ void reg_dmn_print_channels_in_opclass(uint8_t *country, uint8_t op_class)
|
|||
uint16_t i = 0;
|
||||
|
||||
class = reg_get_class_from_country(country);
|
||||
while (class && class->op_class) {
|
||||
|
||||
if (!class) {
|
||||
reg_err("class is NULL");
|
||||
return;
|
||||
}
|
||||
|
||||
while (class->op_class) {
|
||||
if (class->op_class == op_class) {
|
||||
for (i = 0;
|
||||
(i < REG_MAX_CHANNELS_PER_OPERATING_CLASS &&
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
Loading…
Reference in a new issue