Merge "qca-wifi: Resolving parse error in wmi_stats_event"
diff --git a/configs/wlan_cfg/ap_wlan_cfg.config b/configs/wlan_cfg/ap_wlan_cfg.config
index dd0ffb8..5f75ae4 100644
--- a/configs/wlan_cfg/ap_wlan_cfg.config
+++ b/configs/wlan_cfg/ap_wlan_cfg.config
@@ -25,7 +25,7 @@
ifeq ($(strip ${CONFIG_WIFI_EMULATION_WIFI_3_0}),1)
EXTRA_CFLAGS += -DWLAN_CFG_NUM_TX_DESC=0x2000
else
-EXTRA_CFLAGS += -DWLAN_CFG_NUM_TX_DESC=0x320000
+EXTRA_CFLAGS += -DWLAN_CFG_NUM_TX_DESC=0x8000
endif
ifeq ($(strip ${NO_RX_PKT_HDR_TLV}),1)
diff --git a/dp/wifi3.0/dp_tx_capture.c b/dp/wifi3.0/dp_tx_capture.c
index e54de49..82fae44 100644
--- a/dp/wifi3.0/dp_tx_capture.c
+++ b/dp/wifi3.0/dp_tx_capture.c
@@ -2294,6 +2294,9 @@
ppdu_desc = (struct cdp_tx_completion_ppdu *)
qdf_nbuf_data(nbuf_ppdu_desc);
+ if (ppdu_desc->mprot_type)
+ dp_send_dummy_rts_cts_frame(pdev, ppdu_desc);
+
type = (ppdu_desc->frame_ctrl &
IEEE80211_FC0_TYPE_MASK) >>
IEEE80211_FC0_TYPE_SHIFT;
diff --git a/target_if/cfr/src/target_if_cfr_6018.c b/target_if/cfr/src/target_if_cfr_6018.c
index afea3aa..93c0378 100644
--- a/target_if/cfr/src/target_if_cfr_6018.c
+++ b/target_if/cfr/src/target_if_cfr_6018.c
@@ -988,7 +988,7 @@
psoc = wlan_pdev_get_psoc(pdev);
dbr_tx_ops = &psoc->soc_cb.tx_ops.dbr_tx_ops;
- if (dbr_tx_ops->direct_buf_rx_module_register) {
+ if (dbr_tx_ops->direct_buf_rx_module_unregister) {
return dbr_tx_ops->direct_buf_rx_module_unregister
(pdev, DBR_MODULE_CFR);
}
diff --git a/target_if/cfr/src/target_if_cfr_8074v2.c b/target_if/cfr/src/target_if_cfr_8074v2.c
index 2c3eb3f..ee7b2c9 100644
--- a/target_if/cfr/src/target_if_cfr_8074v2.c
+++ b/target_if/cfr/src/target_if_cfr_8074v2.c
@@ -607,7 +607,7 @@
psoc = wlan_pdev_get_psoc(pdev);
dbr_tx_ops = &psoc->soc_cb.tx_ops.dbr_tx_ops;
- if (dbr_tx_ops->direct_buf_rx_module_register) {
+ if (dbr_tx_ops->direct_buf_rx_module_unregister) {
return dbr_tx_ops->direct_buf_rx_module_unregister
(pdev, DBR_MODULE_CFR);
}
diff --git a/umac/mlme/vdev_mgr/core/src/vdev_mlme_sm_actions.c b/umac/mlme/vdev_mgr/core/src/vdev_mlme_sm_actions.c
index a9440d9..fe04d5d 100644
--- a/umac/mlme/vdev_mgr/core/src/vdev_mlme_sm_actions.c
+++ b/umac/mlme/vdev_mgr/core/src/vdev_mlme_sm_actions.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2019 The Linux Foundation. All rights reserved.
+ * Copyright (c) 2019-2020 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 above
@@ -293,6 +293,7 @@
&pdev_mlme->restart_send_vdev_bmap,
sizeof(pdev_mlme->pdev_restart.restart_bmap));
+ qdf_atomic_init(&pdev_mlme->multivdev_restart_wait_cnt);
if (!wlan_pdev_nif_feat_cap_get(pdev,
WLAN_PDEV_F_MULTIVDEV_RESTART))
wlan_objmgr_pdev_iterate_obj_list
@@ -316,6 +317,7 @@
}
}
+#define MULTIVDEV_RESTART_MAX_RETRY_CNT 100
static os_timer_func(mlme_restart_req_timeout)
{
unsigned long restart_pend_vdev_bmap[2];
@@ -331,6 +333,13 @@
wlan_pdev_chan_change_pending_vdevs(pdev,
restart_pend_vdev_bmap,
WLAN_MLME_SB_ID);
+ qdf_atomic_inc(&pdev_mlme->multivdev_restart_wait_cnt);
+ if (qdf_atomic_read(&pdev_mlme->multivdev_restart_wait_cnt) > MULTIVDEV_RESTART_MAX_RETRY_CNT) {
+ mlme_err("Multivdev Restart_pend_vdev_bmap 0x%lx 0x%lx",
+ pdev_mlme->restart_pend_vdev_bmap[1],
+ pdev_mlme->restart_pend_vdev_bmap[0]);
+ QDF_BUG(0);
+ }
/* If all the pending vdevs goes down, this would fail,
* otherwise start timer
@@ -566,6 +575,7 @@
void mlme_restart_timer_init(struct pdev_mlme_obj *pdev_mlme)
{
+ qdf_atomic_init(&pdev_mlme->multivdev_restart_wait_cnt);
qdf_timer_init(NULL, &pdev_mlme->restart_req_timer,
mlme_restart_req_timeout, (void *)(pdev_mlme),
QDF_TIMER_TYPE_WAKE_APPS);