android_kernel_motorola_sm6375/components
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Jianmin Zhu d75c4ea61c qcacld-3.0: Fix long ping delay after enable RTPM
Issue1: Driver RTPM state is ON/NONE, Kernel state is RESUMING.
cdp_runtime_resume is already complete,
hif_pm_runtime_get return -E_INPROGRESS,
dp_tx_hw_enqueue will set the flush event,
but cdp_runtime_resume is already done,
this flush event will be handled only on next pkt tx.

Issue2: Driver RTPM state: Resuming
hif_pm_runtime_get returns -EBUSY,
dp_tx_hw_enqueue is interrupted by any IRQ,
cdp_runtime_resume is completed,
dp_tx_hw_enqueue will set the flush event,
This flush event will be handled only on next pkt tx.

Fix:
Introduce a link_state_up atomic variable in hif to track the link state
change by pld_cb.
Set atomic variable link_state_up=1 in pmo_core_psoc_bus_runtime_resume
just after pld_cb. pld_cb brings the PCIe bus out of suspend state.
Set atomic variable link_state_up=0 in pmo_core_psoc_bus_runtime_suspend
just before pld_cb. pld_cb puts the PCIe bus into suspend state.

Introduce dp_runtime_get and dp_runtime_put.
dp_runtime_get get refcount with increment of an atomic variable.
dp_runtime_put return refcount with decrement of  this atomic variable.
If hif_pm_runtime_get returns -EBUSY or -EINPROGRESS,
take the dp runtime refcount using dp_runtime_get,
check if the link state is up, write TX ring HP,
return the dp runtime refcount using dp_runtime_put.

cdp_runtime_suspend should reject the suspend, if dp_runtime_get is non
zero.
cdp_runtime_resume should wait until dp_runtime_get becomes zero or time
out, then flush pending tx for runtime suspend.

Change-Id: I7f38b3dc6975fcc208ad85e913564dfef5cc1cb7
CRs-Fixed: 2849002
2021-01-14 21:27:29 -08:00
..
action_oui qcacld-3.0: Add action OUI to disable TWT for some APs 2020-10-29 13:18:17 -07:00
blacklist_mgr qcacld-3.0: Overide blacklist and connect to AP 2020-12-07 20:38:32 -08:00
cfg
cmn_services qcacld-3.0: acquire lock before update connection list 2021-01-11 10:09:42 +08:00
cp_stats/dispatcher qcacld-3.0: Reduce excessive kmsg logging in roaming path 2021-01-11 09:29:08 -08:00
disa qcacld-3.0: components: Remove logs for qdf_mem_malloc() checks 2020-09-25 12:59:42 -07:00
dsc
ftm_time_sync
fw_offload qcacld-3.0: Add an INI param to configure HW assist feature in FW 2021-01-12 20:19:11 -08:00
interop_issues_ap
ipa qcacld-3.0: Fix uninitialized IPA MCC work cancellation 2020-11-26 01:11:41 -08:00
mlme qcacld-3.0: Change INI sae_connect_retries defalut 0x52 2021-01-14 14:03:46 +08:00
nan qcacld-3.0: Add INI parameter to configure NAN in 6GHz 2020-11-25 23:11:59 -08:00
ocb qcacld-3.0: components: Remove logs for qdf_mem_malloc() checks 2020-09-25 12:59:42 -07:00
p2p qcacld-3.0: Fix implicit-fallthrough compile error casued by gcc 9.3 2020-10-01 12:28:39 -07:00
pkt_capture qcacld-3.0: Process offload Tx data packet for pkt capture mode 2021-01-13 02:34:45 -08:00
pmo qcacld-3.0: Fix long ping delay after enable RTPM 2021-01-14 21:27:29 -08:00
target_if qcacld-3.0: Request fw stats for monitor mode 2020-12-21 00:17:38 -08:00
tdls qcacld-3.0: Release resource after TDLS cmd processing 2020-12-22 15:03:33 -08:00
umac/mlme qcacld-3.0: Allow switch to RSO STOP State while roam in progress 2020-12-27 05:44:06 -08:00
wmi qcacld-3.0: Update mobility domain in RSO command 2020-10-19 05:27:01 -07:00