brintos

brintos / linux-shallow public Read only

0
0
Text · 2.0 KiB · d4bce17 Raw
98 lines · c
1/* SPDX-License-Identifier: ISC */2/*3 * Copyright (c) 2018 The Linux Foundation. All rights reserved.4 */5 6#ifndef _SNOC_H_7#define _SNOC_H_8 9#include <linux/notifier.h>10 11#include "hw.h"12#include "ce.h"13#include "qmi.h"14 15struct ath10k_snoc_drv_priv {16	enum ath10k_hw_rev hw_rev;17	u64 dma_mask;18	u32 msa_size;19};20 21struct snoc_state {22	u32 pipe_cfg_addr;23	u32 svc_to_pipe_map;24};25 26struct ath10k_snoc_pipe {27	struct ath10k_ce_pipe *ce_hdl;28	u8 pipe_num;29	struct ath10k *hif_ce_state;30	size_t buf_sz;31	/* protect ce info */32	spinlock_t pipe_lock;33	struct ath10k_snoc *ar_snoc;34};35 36struct ath10k_snoc_target_info {37	u32 target_version;38	u32 target_type;39	u32 target_revision;40	u32 soc_version;41};42 43struct ath10k_snoc_ce_irq {44	u32 irq_line;45};46 47enum 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,53};54 55struct clk_bulk_data;56struct regulator_bulk_data;57 58struct ath10k_snoc {59	struct platform_device *dev;60	struct ath10k *ar;61	unsigned int use_tz;62	struct ath10k_firmware {63		struct device *dev;64		dma_addr_t fw_start_addr;65		struct iommu_domain *iommu_domain;66		size_t mapped_mem_size;67	} fw;68	void __iomem *mem;69	dma_addr_t mem_pa;70	struct ath10k_snoc_target_info target_info;71	size_t mem_len;72	struct ath10k_snoc_pipe pipe_info[CE_COUNT_MAX];73	struct ath10k_snoc_ce_irq ce_irqs[CE_COUNT_MAX];74	struct ath10k_ce ce;75	struct timer_list rx_post_retry;76	struct regulator_bulk_data *vregs;77	size_t num_vregs;78	struct clk_bulk_data *clks;79	size_t num_clks;80	struct ath10k_qmi *qmi;81	struct notifier_block nb;82	void *notifier;83	unsigned long flags;84	bool xo_cal_supported;85	u32 xo_cal_data;86	DECLARE_BITMAP(pending_ce_irqs, CE_COUNT_MAX);87};88 89static inline struct ath10k_snoc *ath10k_snoc_priv(struct ath10k *ar)90{91	return (struct ath10k_snoc *)ar->drv_priv;92}93 94int ath10k_snoc_fw_indication(struct ath10k *ar, u64 type);95void ath10k_snoc_fw_crashed_dump(struct ath10k *ar);96 97#endif /* _SNOC_H_ */98