1 /* SPDX-License-Identifier: ISC */
3 * Copyright (c) 2018 The Linux Foundation. All rights reserved.
13 struct ath10k_snoc_drv_priv
{
14 enum ath10k_hw_rev hw_rev
;
24 struct ath10k_snoc_pipe
{
25 struct ath10k_ce_pipe
*ce_hdl
;
27 struct ath10k
*hif_ce_state
;
31 struct ath10k_snoc
*ar_snoc
;
34 struct ath10k_snoc_target_info
{
41 struct ath10k_snoc_ce_irq
{
45 enum ath10k_snoc_flags
{
46 ATH10K_SNOC_FLAG_REGISTERED
,
47 ATH10K_SNOC_FLAG_UNREGISTERING
,
48 ATH10K_SNOC_FLAG_RECOVERY
,
49 ATH10K_SNOC_FLAG_8BIT_HOST_CAP_QUIRK
,
53 struct regulator_bulk_data
;
56 struct platform_device
*dev
;
59 struct ath10k_firmware
{
61 dma_addr_t fw_start_addr
;
62 struct iommu_domain
*iommu_domain
;
63 size_t mapped_mem_size
;
67 struct ath10k_snoc_target_info target_info
;
69 struct ath10k_snoc_pipe pipe_info
[CE_COUNT_MAX
];
70 struct ath10k_snoc_ce_irq ce_irqs
[CE_COUNT_MAX
];
72 struct timer_list rx_post_retry
;
73 struct regulator_bulk_data
*vregs
;
75 struct clk_bulk_data
*clks
;
77 struct ath10k_qmi
*qmi
;
79 bool xo_cal_supported
;
81 DECLARE_BITMAP(pending_ce_irqs
, CE_COUNT_MAX
);
84 static inline struct ath10k_snoc
*ath10k_snoc_priv(struct ath10k
*ar
)
86 return (struct ath10k_snoc
*)ar
->drv_priv
;
89 int ath10k_snoc_fw_indication(struct ath10k
*ar
, u64 type
);
90 void ath10k_snoc_fw_crashed_dump(struct ath10k
*ar
);