qcacld-3.0: Set PM delay to 1200 ms for WOW_REASON_LOCAL_DATA_UC_DROP
Currently general PM delay is 500 ms. If fw sends wow wakeup with reason code WOW_REASON_LOCAL_DATA_UC_DROP host wakes up, 500 ms after the transactions again runtime suspend takes effect. Every time FW sends wow wake there will be a small delay induced. It is noticed that large frames are getting dropped for continuous wow wakeup events. To address this issue increase PM delay to 1200 ms if fw sends wow wake for reason WOW_REASON_LOCAL_DATA_UC_DROP and again revert it back to 500 ms on next WoW enter. Change-Id: I57bafc5ae8a633f1f685201ceb5936b59c985148 CRs-Fixed: 3330844
This commit is contained in:

committato da
Madan Koyyalamudi

parent
0301202d47
commit
7b4c3a6fb3
@@ -42,7 +42,7 @@
|
||||
#include "cfg_ucfg_api.h"
|
||||
#include "cdp_txrx_bus.h"
|
||||
#include "wlan_pmo_ucfg_api.h"
|
||||
|
||||
#include "hif.h"
|
||||
/**
|
||||
* pmo_core_get_vdev_dtim_period() - Get vdev dtim period
|
||||
* @vdev: objmgr vdev handle
|
||||
@@ -884,6 +884,9 @@ pmo_core_enable_wow_in_fw(struct wlan_objmgr_psoc *psoc,
|
||||
|
||||
hif_latency_detect_timer_stop(pmo_core_psoc_get_hif_handle(psoc));
|
||||
|
||||
if (hif_rtpm_get_autosuspend_delay() == WOW_LARGE_RX_RTPM_DELAY)
|
||||
hif_rtpm_restore_autosuspend_delay();
|
||||
|
||||
pmo_core_update_wow_enable_cmd_sent(psoc_ctx, true);
|
||||
|
||||
out:
|
||||
|
@@ -55,6 +55,8 @@
|
||||
#define MAX_MC_IP_ADDR 10
|
||||
#define IGMP_QUERY_ADDRESS 0x10000e0
|
||||
|
||||
#define WOW_LARGE_RX_RTPM_DELAY 1200
|
||||
|
||||
/**
|
||||
* enum pmo_vdev_param_id: tell vdev param id
|
||||
* @pmo_vdev_param_listen_interval: vdev listen interval param id
|
||||
|
@@ -75,6 +75,7 @@
|
||||
#include "cdp_txrx_host_stats.h"
|
||||
#include "target_if_cm_roam_event.h"
|
||||
#include <wlan_mlo_mgr_cmn.h>
|
||||
#include "hif.h"
|
||||
|
||||
/**
|
||||
* WMA_SET_VDEV_IE_SOURCE_HOST - Flag to identify the source of VDEV SET IE
|
||||
@@ -3079,6 +3080,9 @@ int wma_wow_wakeup_host_event(void *handle, uint8_t *event, uint32_t len)
|
||||
|
||||
wma_wake_event_log_reason(wma, wake_info);
|
||||
|
||||
if (wake_info->wake_reason == WOW_REASON_LOCAL_DATA_UC_DROP)
|
||||
hif_rtpm_set_autosuspend_delay(WOW_LARGE_RX_RTPM_DELAY);
|
||||
|
||||
ucfg_pmo_psoc_wakeup_host_event_received(wma->psoc);
|
||||
|
||||
wma_print_wow_stats(wma, wake_info);
|
||||
|
Fai riferimento in un nuovo problema
Block a user