| /* SPDX-License-Identifier: BSD-3-Clause-Clear */ |
| /* |
| * Copyright (c) 2018-2019 The Linux Foundation. All rights reserved. |
| * Copyright (c) 2022, Qualcomm Innovation Center, Inc. All rights reserved. |
| */ |
| #ifndef ATH11K_AHB_H |
| #define ATH11K_AHB_H |
| |
| #include "core.h" |
| |
| #define ATH11K_AHB_RECOVERY_TIMEOUT (3 * HZ) |
| |
| #define ATH11K_AHB_SMP2P_SMEM_MSG GENMASK(15, 0) |
| #define ATH11K_AHB_SMP2P_SMEM_SEQ_NO GENMASK(31, 16) |
| #define ATH11K_AHB_SMP2P_SMEM_VALUE_MASK 0xFFFFFFFF |
| |
| enum ath11k_ahb_smp2p_msg_id { |
| ATH11K_AHB_POWER_SAVE_ENTER = 1, |
| ATH11K_AHB_POWER_SAVE_EXIT, |
| }; |
| |
| struct ath11k_base; |
| |
| struct ath11k_ahb { |
| struct rproc *tgt_rproc; |
| struct { |
| struct device *dev; |
| struct iommu_domain *iommu_domain; |
| dma_addr_t msa_paddr; |
| u32 msa_size; |
| dma_addr_t ce_paddr; |
| u32 ce_size; |
| bool use_tz; |
| } fw; |
| struct { |
| unsigned short seq_no; |
| unsigned int smem_bit; |
| struct qcom_smem_state *smem_state; |
| } smp2p_info; |
| }; |
| |
| static inline struct ath11k_ahb *ath11k_ahb_priv(struct ath11k_base *ab) |
| { |
| return (struct ath11k_ahb *)ab->drv_priv; |
| } |
| #endif |