File: ahb.h

package info (click to toggle)
linux 6.1.4-1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 1,532,052 kB
  • sloc: ansic: 23,400,063; asm: 266,720; sh: 108,896; makefile: 49,712; python: 36,925; perl: 36,810; cpp: 6,044; yacc: 4,904; lex: 2,722; awk: 1,440; ruby: 25; sed: 5
file content (46 lines) | stat: -rw-r--r-- 1,047 bytes parent folder | download | duplicates (15)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
/* 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