summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--core/bmi/src/ol_fw.c2
-rw-r--r--core/cds/inc/cds_api.h2
-rw-r--r--core/cds/src/cds_api.c11
-rw-r--r--core/hdd/inc/wlan_hdd_cfg.h4
-rw-r--r--core/hdd/inc/wlan_hdd_main.h5
-rw-r--r--core/hdd/src/wlan_hdd_driver_ops.c13
-rw-r--r--core/hdd/src/wlan_hdd_main.c5
-rw-r--r--core/hdd/src/wlan_hdd_power.c43
-rw-r--r--core/hdd/src/wlan_hdd_wext.c4
-rw-r--r--core/mac/inc/qwlan_version.h4
-rw-r--r--core/sme/src/common/sme_api.c2
-rw-r--r--core/utils/nlink/inc/wlan_nlink_common.h1
-rw-r--r--core/wma/inc/wma.h5
-rw-r--r--core/wma/src/wma_dev_if.c7
-rw-r--r--core/wma/src/wma_features.c62
-rw-r--r--core/wma/src/wma_scan_roam.c6
-rw-r--r--target/inc/wlan_tgt_def_config.h2
17 files changed, 130 insertions, 48 deletions
diff --git a/core/bmi/src/ol_fw.c b/core/bmi/src/ol_fw.c
index 429ae5f848d1..e6178a43d3ee 100644
--- a/core/bmi/src/ol_fw.c
+++ b/core/bmi/src/ol_fw.c
@@ -593,6 +593,7 @@ void ol_target_failure(void *instance, QDF_STATUS status)
struct hif_opaque_softc *scn = ol_ctx->scn;
tp_wma_handle wma = cds_get_context(QDF_MODULE_ID_WMA);
struct ol_config_info *ini_cfg = ol_get_ini_handle(ol_ctx);
+ qdf_device_t qdf_dev = ol_ctx->qdf_dev;
int ret;
enum hif_target_status target_status = hif_get_target_status(scn);
@@ -640,6 +641,7 @@ void ol_target_failure(void *instance, QDF_STATUS status)
BMI_ERR("XXX TARGET ASSERTED XXX");
+ cds_svc_fw_shutdown_ind(qdf_dev->dev);
/* Collect the RAM dump through a workqueue */
if (ini_cfg->enable_ramdump_collection)
qdf_sched_work(0, &ol_ctx->ramdump_work);
diff --git a/core/cds/inc/cds_api.h b/core/cds/inc/cds_api.h
index 8bfddf882dc7..5f5487711488 100644
--- a/core/cds/inc/cds_api.h
+++ b/core/cds/inc/cds_api.h
@@ -264,7 +264,7 @@ QDF_STATUS cds_flush_logs(uint32_t is_fatal,
bool dump_mac_trace,
bool recovery_needed);
void cds_logging_set_fw_flush_complete(void);
-
+void cds_svc_fw_shutdown_ind(struct device *dev);
#ifdef FEATURE_WLAN_DIAG_SUPPORT
void cds_tdls_tx_rx_mgmt_event(uint8_t event_id, uint8_t tx_rx,
uint8_t type, uint8_t sub_type, uint8_t *peer_mac);
diff --git a/core/cds/src/cds_api.c b/core/cds/src/cds_api.c
index ffbdefa50134..e37e9c729f25 100644
--- a/core/cds/src/cds_api.c
+++ b/core/cds/src/cds_api.c
@@ -2323,3 +2323,14 @@ bool cds_is_sub_20_mhz_enabled(void)
return false;
}
+/**
+ * cds_svc_fw_shutdown_ind() - API to send userspace about FW crash
+ *
+ * @dev: Device Pointer
+ *
+ * Return: None
+ */
+void cds_svc_fw_shutdown_ind(struct device *dev)
+{
+ hdd_svc_fw_shutdown_ind(dev);
+}
diff --git a/core/hdd/inc/wlan_hdd_cfg.h b/core/hdd/inc/wlan_hdd_cfg.h
index 1af039b70fe4..65640a50fa28 100644
--- a/core/hdd/inc/wlan_hdd_cfg.h
+++ b/core/hdd/inc/wlan_hdd_cfg.h
@@ -217,7 +217,7 @@ typedef enum {
#define CFG_SCAN_RESULT_AGE_COUNT_NAME "gScanResultAgeCount"
#define CFG_SCAN_RESULT_AGE_COUNT_MIN (1)
#define CFG_SCAN_RESULT_AGE_COUNT_MAX (100)
-#define CFG_SCAN_RESULT_AGE_COUNT_DEFAULT (3)
+#define CFG_SCAN_RESULT_AGE_COUNT_DEFAULT (1)
/* All in seconds */
/* Not Connect, No Power Save */
@@ -1880,7 +1880,7 @@ typedef enum {
#define CFG_SCAN_AGING_PARAM_NAME "gScanAgingTime"
#define CFG_SCAN_AGING_PARAM_MIN (0)
#define CFG_SCAN_AGING_PARAM_MAX (200)
-#define CFG_SCAN_AGING_PARAM_DEFAULT (60)
+#define CFG_SCAN_AGING_PARAM_DEFAULT (30)
/* Config Param to enable the txLdpc capability
* 0 - disable
diff --git a/core/hdd/inc/wlan_hdd_main.h b/core/hdd/inc/wlan_hdd_main.h
index 4ac3abbac81f..e0dfae71a240 100644
--- a/core/hdd/inc/wlan_hdd_main.h
+++ b/core/hdd/inc/wlan_hdd_main.h
@@ -67,6 +67,7 @@
#include "cdp_txrx_flow_ctrl_legacy.h"
#include <cdp_txrx_peer_ops.h>
#include "wlan_hdd_nan_datapath.h"
+#include "wlan_tgt_def_config.h"
/*---------------------------------------------------------------------------
Preprocessor definitions and constants
@@ -803,7 +804,7 @@ typedef struct hdd_scaninfo_s {
} hdd_scaninfo_t;
-#define WLAN_HDD_MAX_MC_ADDR_LIST 10
+#define WLAN_HDD_MAX_MC_ADDR_LIST CFG_TGT_MAX_MULTICAST_FILTER_ENTRIES
#ifdef WLAN_FEATURE_PACKET_FILTERING
typedef struct multicast_addr_list {
@@ -1818,7 +1819,7 @@ QDF_STATUS hdd_sme_close_session_callback(void *pContext);
int hdd_reassoc(hdd_adapter_t *adapter, const uint8_t *bssid,
const uint8_t channel, const handoff_src src);
-
+void hdd_svc_fw_shutdown_ind(struct device *dev);
int hdd_register_cb(hdd_context_t *hdd_ctx);
void hdd_deregister_cb(hdd_context_t *hdd_ctx);
int hdd_start_station_adapter(hdd_adapter_t *adapter);
diff --git a/core/hdd/src/wlan_hdd_driver_ops.c b/core/hdd/src/wlan_hdd_driver_ops.c
index 299b5d13487c..b42be5634d69 100644
--- a/core/hdd/src/wlan_hdd_driver_ops.c
+++ b/core/hdd/src/wlan_hdd_driver_ops.c
@@ -541,8 +541,7 @@ static int __wlan_hdd_bus_suspend(pm_message_t state)
goto done;
}
- err = qdf_status_to_os_return(
- ol_txrx_bus_suspend());
+ err = qdf_status_to_os_return(ol_txrx_bus_suspend());
if (err)
goto done;
@@ -554,8 +553,8 @@ static int __wlan_hdd_bus_suspend(pm_message_t state)
if (err)
goto resume_wma;
- hdd_err("suspend done");
- return err;
+ hdd_info("suspend done");
+ return 0;
resume_wma:
status = wma_bus_resume();
@@ -632,14 +631,14 @@ int __wlan_hdd_bus_suspend_noirq(void)
goto resume_hif_noirq;
hdd_info("suspend_noirq done");
- return err;
+ return 0;
resume_hif_noirq:
status = hif_bus_resume_noirq(hif_ctx);
QDF_BUG(!status);
done:
if (err == -EAGAIN)
- hdd_err("firmware not ready for suspend, try again");
+ hdd_err("Firmware attempting wakeup, try again");
else
hdd_err("suspend_noirq failed, status = %d", err);
return err;
@@ -706,7 +705,7 @@ static int __wlan_hdd_bus_resume(void)
status = ol_txrx_bus_resume();
QDF_BUG(!status);
- hdd_err("resume done");
+ hdd_info("resume done");
return status;
}
diff --git a/core/hdd/src/wlan_hdd_main.c b/core/hdd/src/wlan_hdd_main.c
index 8946bbbc377e..211603a66366 100644
--- a/core/hdd/src/wlan_hdd_main.c
+++ b/core/hdd/src/wlan_hdd_main.c
@@ -2265,7 +2265,9 @@ static void __hdd_set_multicast_list(struct net_device *dev)
hdd_notice("mc_count : %u", mc_count);
if (mc_count > WLAN_HDD_MAX_MC_ADDR_LIST) {
- hdd_notice("No free filter available; allow all multicast frames");
+ hdd_notice("Exceeded max MC filter addresses (%d). Allowing all MC frames by disabling MC address filtering",
+ WLAN_HDD_MAX_MC_ADDR_LIST);
+ wlan_hdd_set_mc_addr_list(adapter, false);
adapter->mc_addr_list.mc_cnt = 0;
return;
}
@@ -8166,6 +8168,7 @@ void wlan_hdd_send_svc_nlink_msg(int radio, int type, void *data, int len)
switch (type) {
case WLAN_SVC_FW_CRASHED_IND:
+ case WLAN_SVC_FW_SHUTDOWN_IND:
case WLAN_SVC_LTE_COEX_IND:
case WLAN_SVC_WLAN_AUTO_SHUTDOWN_IND:
case WLAN_SVC_WLAN_AUTO_SHUTDOWN_CANCEL_IND:
diff --git a/core/hdd/src/wlan_hdd_power.c b/core/hdd/src/wlan_hdd_power.c
index 443dee9ccf46..9e5826085f7b 100644
--- a/core/hdd/src/wlan_hdd_power.c
+++ b/core/hdd/src/wlan_hdd_power.c
@@ -1285,16 +1285,16 @@ static void hdd_resume_wlan(void)
hdd_adapter_list_node_t *pAdapterNode = NULL, *pNext = NULL;
QDF_STATUS status;
- hdd_notice("WLAN being resumed by OS");
+ hdd_info("WLAN being resumed by OS");
pHddCtx = cds_get_context(QDF_MODULE_ID_HDD);
if (!pHddCtx) {
- hdd_alert("HDD context is Null");
+ hdd_err("HDD context is Null");
return;
}
if (cds_is_driver_recovering()) {
- hdd_warn("Recovery in Progress. State: 0x%x Ignore resume!!!",
+ hdd_err("Recovery in Progress. State: 0x%x Ignore resume!!!",
cds_get_driver_state());
return;
}
@@ -1309,7 +1309,7 @@ static void hdd_resume_wlan(void)
pAdapter = pAdapterNode->pAdapter;
/* wake the tx queues */
- hdd_notice("Enabling queues");
+ hdd_info("Enabling queues");
wlan_hdd_netif_queue_control(pAdapter,
WLAN_WAKE_ALL_NETIF_QUEUE,
WLAN_CONTROL_PATH);
@@ -1385,6 +1385,30 @@ static void hdd_ssr_timer_start(int msec)
}
/**
+ * hdd_svc_fw_shutdown_ind() - API to send FW SHUTDOWN IND to Userspace
+ *
+ * @dev: Device Pointer
+ *
+ * Return: None
+ */
+void hdd_svc_fw_shutdown_ind(struct device *dev)
+{
+ hdd_context_t *hdd_ctx;
+ v_CONTEXT_t g_context;
+
+ g_context = cds_get_global_context();
+
+ if (!g_context)
+ return;
+
+ hdd_ctx = cds_get_context(QDF_MODULE_ID_HDD);
+
+ hdd_ctx ? wlan_hdd_send_svc_nlink_msg(hdd_ctx->radio_index,
+ WLAN_SVC_FW_SHUTDOWN_IND,
+ NULL, 0) : 0;
+}
+
+/**
* hdd_wlan_shutdown() - HDD SSR shutdown function
*
* This function is called by the HIF to shutdown the driver during SSR.
@@ -1698,7 +1722,7 @@ static int __wlan_hdd_cfg80211_resume_wlan(struct wiphy *wiphy)
pHddCtx->isWiphySuspended = false;
if (true != pHddCtx->isSchedScanUpdatePending) {
qdf_spin_unlock(&pHddCtx->sched_scan_lock);
- hdd_notice("Return resume is not due to PNO indication");
+ hdd_info("Return resume is not due to PNO indication");
return 0;
}
/* Reset flag to avoid updatating cfg80211 data old results again */
@@ -1728,7 +1752,7 @@ static int __wlan_hdd_cfg80211_resume_wlan(struct wiphy *wiphy)
cfg80211_sched_scan_results(pHddCtx->wiphy);
}
- hdd_notice("cfg80211 scan result database updated");
+ hdd_info("cfg80211 scan result database updated");
EXIT();
return result;
}
@@ -1736,7 +1760,6 @@ static int __wlan_hdd_cfg80211_resume_wlan(struct wiphy *wiphy)
pAdapterNode = pNext;
}
- hdd_notice("Failed to find Adapter");
EXIT();
return result;
}
@@ -1831,7 +1854,7 @@ static int __wlan_hdd_cfg80211_suspend_wlan(struct wiphy *wiphy,
true ==
WLAN_HDD_GET_AP_CTX_PTR(pAdapter)->
dfs_cac_block_tx) {
- hdd_notice("RADAR detection in progress, do not allow suspend");
+ hdd_err("RADAR detection in progress, do not allow suspend");
return -EAGAIN;
} else if (!pHddCtx->config->enableSapSuspend) {
/* return -EOPNOTSUPP if SAP does not support
@@ -1863,7 +1886,7 @@ static int __wlan_hdd_cfg80211_suspend_wlan(struct wiphy *wiphy,
if (sme_sta_in_middle_of_roaming
(pHddCtx->hHal, pAdapter->sessionId)) {
- hdd_notice("Roaming in progress, do not allow suspend");
+ hdd_err("Roaming in progress, do not allow suspend");
return -EAGAIN;
}
@@ -1890,7 +1913,7 @@ static int __wlan_hdd_cfg80211_suspend_wlan(struct wiphy *wiphy,
* firmware to avoid any race conditions.
*/
if (hdd_ipa_suspend(pHddCtx)) {
- hdd_notice("IPA not ready to suspend!");
+ hdd_err("IPA not ready to suspend!");
return -EAGAIN;
}
diff --git a/core/hdd/src/wlan_hdd_wext.c b/core/hdd/src/wlan_hdd_wext.c
index 6f6051d31f2d..45b11d137e48 100644
--- a/core/hdd/src/wlan_hdd_wext.c
+++ b/core/hdd/src/wlan_hdd_wext.c
@@ -3672,7 +3672,7 @@ QDF_STATUS wlan_hdd_get_class_astats(hdd_adapter_t *pAdapter)
pHddStaCtx->conn_info.staId[0],
&context, pAdapter->sessionId);
if (QDF_STATUS_SUCCESS != hstatus) {
- hdd_err("Unable to retrieve Class A statistics");
+ hdd_warn("Unable to retrieve Class A statistics");
/* we'll returned a cached value below */
} else {
/* request was sent -- wait for the response */
@@ -3680,7 +3680,7 @@ QDF_STATUS wlan_hdd_get_class_astats(hdd_adapter_t *pAdapter)
(&context.completion,
msecs_to_jiffies(WLAN_WAIT_TIME_STATS));
if (!rc) {
- hdd_err("SME timed out while retrieving Class A statistics");
+ hdd_warn("SME timed out while retrieving Class A statistics");
}
}
diff --git a/core/mac/inc/qwlan_version.h b/core/mac/inc/qwlan_version.h
index 35e3d11cf0ec..4961be7d0034 100644
--- a/core/mac/inc/qwlan_version.h
+++ b/core/mac/inc/qwlan_version.h
@@ -41,9 +41,9 @@
#define QWLAN_VERSION_MAJOR 5
#define QWLAN_VERSION_MINOR 1
#define QWLAN_VERSION_PATCH 0
-#define QWLAN_VERSION_EXTRA ""
+#define QWLAN_VERSION_EXTRA "E"
#define QWLAN_VERSION_BUILD 28
-#define QWLAN_VERSIONSTR "5.1.0.28"
+#define QWLAN_VERSIONSTR "5.1.0.28E"
#endif /* QWLAN_VERSION_H */
diff --git a/core/sme/src/common/sme_api.c b/core/sme/src/common/sme_api.c
index 99ee67b8351b..4c087976da68 100644
--- a/core/sme/src/common/sme_api.c
+++ b/core/sme/src/common/sme_api.c
@@ -749,7 +749,7 @@ bool sme_process_scan_queue(tpAniSirGlobal pMac)
if (!pEntry)
goto end;
- sms_log(pMac, LOGE,
+ sms_log(pMac, LOG1,
FL("scan_count in active scanlist %d "),
pMac->sme.smeScanCmdActiveList.Count);
diff --git a/core/utils/nlink/inc/wlan_nlink_common.h b/core/utils/nlink/inc/wlan_nlink_common.h
index a23456dedb6e..7259990b0e21 100644
--- a/core/utils/nlink/inc/wlan_nlink_common.h
+++ b/core/utils/nlink/inc/wlan_nlink_common.h
@@ -85,6 +85,7 @@
#define WLAN_SVC_WLAN_TP_TX_IND 0x10B
#define WLAN_SVC_WLAN_AUTO_SHUTDOWN_CANCEL_IND 0x10C
#define WLAN_SVC_WLAN_RADIO_INDEX 0x10D
+#define WLAN_SVC_FW_SHUTDOWN_IND 0x10E
#define WLAN_SVC_MAX_SSID_LEN 32
#define WLAN_SVC_MAX_BSSID_LEN 6
#define WLAN_SVC_MAX_STR_LEN 16
diff --git a/core/wma/inc/wma.h b/core/wma/inc/wma.h
index 5a5d738f573d..b82ba1f1738d 100644
--- a/core/wma/inc/wma.h
+++ b/core/wma/inc/wma.h
@@ -907,7 +907,8 @@ typedef struct {
* @chain_mask: chain mask can be used by the vdev
* @mac_id: the mac on which vdev is on
* @wep_default_key_idx: wep default index for group key
- *
+ * @arp_offload_req: cached arp offload request
+ * @ns_offload_req: cached ns offload request
* It stores parameters per vdev in wma.
*/
struct wma_txrx_node {
@@ -985,6 +986,8 @@ struct wma_txrx_node {
uint8_t nss_5g;
bool p2p_lo_in_progress;
uint8_t wep_default_key_idx;
+ tSirHostOffloadReq arp_offload_req;
+ tSirHostOffloadReq ns_offload_req;
};
#if defined(QCA_WIFI_FTM)
diff --git a/core/wma/src/wma_dev_if.c b/core/wma/src/wma_dev_if.c
index 3bdecdd02ca7..4a9426bf692d 100644
--- a/core/wma/src/wma_dev_if.c
+++ b/core/wma/src/wma_dev_if.c
@@ -1407,6 +1407,13 @@ int wma_vdev_stop_resp_handler(void *handle, uint8_t *cmd_param_info,
status = -EINVAL;
goto free_req_msg;
}
+
+ /* Clear arp and ns offload cache */
+ qdf_mem_zero(&iface->ns_offload_req,
+ sizeof(iface->ns_offload_req));
+ qdf_mem_zero(&iface->arp_offload_req,
+ sizeof(iface->arp_offload_req));
+
if (wma_is_vdev_in_ibss_mode(wma, resp_event->vdev_id))
wma_delete_all_ibss_peers(wma, resp_event->vdev_id);
else if (WMA_IS_VDEV_IN_NDI_MODE(wma->interfaces,
diff --git a/core/wma/src/wma_features.c b/core/wma/src/wma_features.c
index 071b1fafdc18..53b7762ddef0 100644
--- a/core/wma/src/wma_features.c
+++ b/core/wma/src/wma_features.c
@@ -4562,7 +4562,7 @@ QDF_STATUS wma_suspend_req(tp_wma_handle wma, enum qdf_suspend_type type)
wmi_set_runtime_pm_inprogress(wma->wmi_handle, true);
if (wma_is_wow_applicable(wma)) {
- WMA_LOGE("WOW Suspend");
+ WMA_LOGI("WOW Suspend");
wma_apply_lphb(wma);
wma_configure_dynamic_wake_events(wma);
@@ -5336,7 +5336,7 @@ out:
* wma_enable_arp_ns_offload() - enable ARP NS offload
* @wma: wma handle
* @tpSirHostOffloadReq: offload request
- * @arp_only: flag
+ * @config_arp: config arp flag
*
* To configure ARP NS off load data to firmware
* when target goes to wow mode.
@@ -5345,41 +5345,73 @@ out:
*/
QDF_STATUS wma_enable_arp_ns_offload(tp_wma_handle wma,
tpSirHostOffloadReq
- pHostOffloadParams, bool arp_only)
+ offload_req, bool config_arp)
{
int32_t res;
uint8_t vdev_id;
+ tpSirHostOffloadReq ns_offload_req;
+ tpSirHostOffloadReq arp_offload_req;
/* Get the vdev id */
- if (!wma_find_vdev_by_bssid(wma, pHostOffloadParams->bssid.bytes,
+ if (!wma_find_vdev_by_bssid(wma, offload_req->bssid.bytes,
&vdev_id)) {
WMA_LOGE("vdev handle is invalid for %pM",
- pHostOffloadParams->bssid.bytes);
- qdf_mem_free(pHostOffloadParams);
+ offload_req->bssid.bytes);
+ qdf_mem_free(offload_req);
return QDF_STATUS_E_INVAL;
}
if (!wma->interfaces[vdev_id].vdev_up) {
WMA_LOGE("vdev %d is not up skipping arp/ns offload", vdev_id);
- qdf_mem_free(pHostOffloadParams);
+ qdf_mem_free(offload_req);
return QDF_STATUS_E_FAILURE;
}
+ /*
+ * config_arp is true means arp request comes from upper layer
+ * Hence ns request need to used from wma cached request.
+ */
+ if (config_arp) {
+ arp_offload_req = offload_req;
+ ns_offload_req = &wma->interfaces[vdev_id].ns_offload_req;
+ WMA_LOGD(" %s: ARP Offload vdev_id: %d enable: %d",
+ __func__, vdev_id,
+ offload_req->enableOrDisable);
+ } else {
+ ns_offload_req = offload_req;
+ arp_offload_req = &wma->interfaces[vdev_id].arp_offload_req;
+ WMA_LOGD(" %s: NS Offload vdev_id: %d enable: %d ns_count: %u",
+ __func__, vdev_id,
+ offload_req->enableOrDisable,
+ offload_req->num_ns_offload_count);
+ }
res = wmi_unified_enable_arp_ns_offload_cmd(wma->wmi_handle,
- (struct host_offload_req_param *)pHostOffloadParams,
- arp_only,
- vdev_id);
+ (struct host_offload_req_param *)arp_offload_req,
+ (struct host_offload_req_param *)ns_offload_req,
+ config_arp,
+ vdev_id);
if (res) {
WMA_LOGE("Failed to enable ARP NDP/NSffload");
- qdf_mem_free(pHostOffloadParams);
+ qdf_mem_free(offload_req);
return QDF_STATUS_E_FAILURE;
}
- qdf_mem_free(pHostOffloadParams);
+ if (config_arp) {
+ qdf_mem_copy(&wma->interfaces[vdev_id].arp_offload_req,
+ offload_req,
+ sizeof(wma->interfaces[vdev_id].arp_offload_req));
+ } else {
+ qdf_mem_copy(&wma->interfaces[vdev_id].ns_offload_req,
+ offload_req,
+ sizeof(wma->interfaces[vdev_id].ns_offload_req));
+ }
+
+ qdf_mem_free(offload_req);
return QDF_STATUS_SUCCESS;
}
+
/**
* wma_process_cesium_enable_ind() - enables cesium functionality in target
* @wma: wma handle
@@ -6414,7 +6446,7 @@ static int __wma_bus_suspend(enum qdf_suspend_type type)
}
if (type == QDF_SYSTEM_SUSPEND)
- WMA_LOGE("%s: wow mode selected %d", __func__,
+ WMA_LOGI("%s: wow mode selected %d", __func__,
wma_is_wow_mode_selected(handle));
if (wma_is_wow_mode_selected(handle)) {
@@ -6469,7 +6501,7 @@ int __wma_bus_resume(WMA_HANDLE handle)
tp_wma_handle wma = handle;
QDF_STATUS status;
- WMA_LOGE("%s: wow mode %d", __func__, wow_mode);
+ WMA_LOGI("%s: wow mode %d", __func__, wow_mode);
wma->wow_initial_wake_up = false;
@@ -6622,7 +6654,7 @@ void wma_target_suspend_acknowledge(void *context, bool wow_nack)
wma->wow_nack = wow_nack;
qdf_event_set(&wma->target_suspend);
- if (wow_nack) {
+ if (wow_nack && !wmi_get_runtime_pm_inprogress(wma->wmi_handle)) {
cds_host_diag_log_work(&wma->wow_wake_lock,
WMA_WAKE_LOCK_TIMEOUT,
WIFI_POWER_EVENT_WAKELOCK_WOW);
diff --git a/core/wma/src/wma_scan_roam.c b/core/wma/src/wma_scan_roam.c
index 5892379dc453..9bca3f3ce651 100644
--- a/core/wma/src/wma_scan_roam.c
+++ b/core/wma/src/wma_scan_roam.c
@@ -528,7 +528,7 @@ QDF_STATUS wma_start_scan(tp_wma_handle wma_handle,
if (scan_req->p2pScanType == P2P_SCAN_TYPE_LISTEN)
wma_set_p2p_scan_info(wma_handle, cmd.scan_id,
cmd.vdev_id, P2P_SCAN_TYPE_LISTEN);
- WMA_LOGE("scan_id 0x%x, vdev_id %d, p2pScanType %d, msg_type 0x%x",
+ WMA_LOGI("scan_id 0x%x, vdev_id %d, p2pScanType %d, msg_type 0x%x",
cmd.scan_id, cmd.vdev_id, scan_req->p2pScanType, msg_type);
/*
* Cache vdev_id and scan_id because cmd is freed after calling
@@ -613,7 +613,7 @@ QDF_STATUS wma_stop_scan(tp_wma_handle wma_handle,
qdf_status);
goto error;
}
- WMA_LOGE("scan_id 0x%x, scan_requestor_id 0x%x, vdev_id %d",
+ WMA_LOGI("scan_id 0x%x, scan_requestor_id 0x%x, vdev_id %d",
abort_scan_req->scan_id,
abort_scan_req->scan_requestor_id,
abort_scan_req->SessionId);
@@ -5659,7 +5659,7 @@ int wma_scan_event_callback(WMA_HANDLE handle, uint8_t *data,
/* Stop scan completion timeout if event is WMI_SCAN_EVENT_COMPLETED */
if (scan_event->event ==
(enum sir_scan_event_type) WMI_SCAN_EVENT_COMPLETED) {
- WMA_LOGE("scan complete:scan_id 0x%x, requestor 0x%x, vdev %d",
+ WMA_LOGI("scan complete:scan_id 0x%x, requestor 0x%x, vdev %d",
wmi_event->scan_id, wmi_event->requestor, vdev_id);
}
diff --git a/target/inc/wlan_tgt_def_config.h b/target/inc/wlan_tgt_def_config.h
index eadc8d599389..40e0e9d843d3 100644
--- a/target/inc/wlan_tgt_def_config.h
+++ b/target/inc/wlan_tgt_def_config.h
@@ -155,7 +155,7 @@
#define CFG_TGT_DEFAULT_MCAST2UCAST_MODE 2
#endif
-#define CFG_TGT_MAX_MULTICAST_FILTER_ENTRIES 16
+#define CFG_TGT_MAX_MULTICAST_FILTER_ENTRIES 32
/*
* Specify how much memory the target should allocate for a debug log of
* tx PPDU meta-information (how large the PPDU was, when it was sent,