diff options
author | Venkateswara Naralasetty <vnaralas@codeaurora.org> | 2020-11-06 15:40:42 +0530 |
---|---|---|
committer | Kalle Valo <kvalo@codeaurora.org> | 2020-11-23 20:07:20 +0200 |
commit | 9af7c32ceca85da27867dd863697d2aafc80a3f8 (patch) | |
tree | 6792cf4b9f080ca30d5800708016bc57afb6b89d /drivers/net/wireless/ath/ath10k/wmi.h | |
parent | 1057db1b8b7661c5031caa0244dfa6bee9adc938 (diff) | |
download | lwn-9af7c32ceca85da27867dd863697d2aafc80a3f8.tar.gz lwn-9af7c32ceca85da27867dd863697d2aafc80a3f8.zip |
ath10k: add target IRAM recovery feature support
This target IRAM recovery feature support is to copy target
IRAM contents available at ATH10K_MEM_REGION_TYPE_REG to host
memory for back up after firmware loaded. Target IRAM contents
are copied to wmi memory chunks allocated for the
WMI_IRAM_RECOVERY_HOST_MEM_REQ_ID and provide the wmi chunks
address to the firmware through wmi init command.
If firmware detects andy IRAM corruption through periodic
checksum validation, It will download the IRAM contents back
from the provided wmi memory chunks address using hif_memcpy.
This IRAM recovery feature prevent target assert in case of
unexpected target IRAM corruptions.
This patch also introduce a new feature flag 'iram-recovery' for
backward compatibility.
Tested-on: QCA9888 10.4-3.9.0.2-00094
Signed-off-by: Venkateswara Naralasetty <vnaralas@codeaurora.org>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
Link: https://lore.kernel.org/r/1604657442-23674-1-git-send-email-vnaralas@codeaurora.org
Diffstat (limited to 'drivers/net/wireless/ath/ath10k/wmi.h')
-rw-r--r-- | drivers/net/wireless/ath/ath10k/wmi.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/net/wireless/ath/ath10k/wmi.h b/drivers/net/wireless/ath/ath10k/wmi.h index 11300b1320a9..c32aabea8293 100644 --- a/drivers/net/wireless/ath/ath10k/wmi.h +++ b/drivers/net/wireless/ath/ath10k/wmi.h @@ -3060,6 +3060,8 @@ struct host_memory_chunk { __le32 size; } __packed; +#define WMI_IRAM_RECOVERY_HOST_MEM_REQ_ID 8 + struct wmi_host_mem_chunks { __le32 count; /* some fw revisions require at least 1 chunk regardless of count */ |