1 /* SPDX-License-Identifier: ISC */
3 * Copyright (c) 2018 The Linux Foundation. All rights reserved.
9 #include <linux/notifier.h>
15 struct ath10k_snoc_drv_priv
{
16 enum ath10k_hw_rev hw_rev
;
26 struct ath10k_snoc_pipe
{
27 struct ath10k_ce_pipe
*ce_hdl
;
29 struct ath10k
*hif_ce_state
;
33 struct ath10k_snoc
*ar_snoc
;
36 struct ath10k_snoc_target_info
{
43 struct ath10k_snoc_ce_irq
{
47 enum ath10k_snoc_flags
{
48 ATH10K_SNOC_FLAG_REGISTERED
,
49 ATH10K_SNOC_FLAG_UNREGISTERING
,
50 ATH10K_SNOC_FLAG_MODEM_STOPPED
,
51 ATH10K_SNOC_FLAG_RECOVERY
,
52 ATH10K_SNOC_FLAG_8BIT_HOST_CAP_QUIRK
,
56 struct regulator_bulk_data
;
59 struct platform_device
*dev
;
62 struct ath10k_firmware
{
64 dma_addr_t fw_start_addr
;
65 struct iommu_domain
*iommu_domain
;
66 size_t mapped_mem_size
;
70 struct ath10k_snoc_target_info target_info
;
72 struct ath10k_snoc_pipe pipe_info
[CE_COUNT_MAX
];
73 struct ath10k_snoc_ce_irq ce_irqs
[CE_COUNT_MAX
];
75 struct timer_list rx_post_retry
;
76 struct regulator_bulk_data
*vregs
;
78 struct clk_bulk_data
*clks
;
80 struct ath10k_qmi
*qmi
;
81 struct notifier_block nb
;
84 bool xo_cal_supported
;
86 DECLARE_BITMAP(pending_ce_irqs
, CE_COUNT_MAX
);
89 static inline struct ath10k_snoc
*ath10k_snoc_priv(struct ath10k
*ar
)
91 return (struct ath10k_snoc
*)ar
->drv_priv
;
94 int ath10k_snoc_fw_indication(struct ath10k
*ar
, u64 type
);
95 void ath10k_snoc_fw_crashed_dump(struct ath10k
*ar
);