linux/drivers/net/wireless/ath/ath11k/hw.h

/* SPDX-License-Identifier: BSD-3-Clause-Clear */
/*
 * Copyright (c) 2018-2019 The Linux Foundation. All rights reserved.
 * Copyright (c) 2021-2024 Qualcomm Innovation Center, Inc. All rights reserved.
 */

#ifndef ATH11K_HW_H
#define ATH11K_HW_H

#include "hal.h"
#include "wmi.h"

/* Target configuration defines */

/* Num VDEVS per radio */
#define TARGET_NUM_VDEVS(ab)

#define TARGET_NUM_PEERS_PDEV(ab)

/* Num of peers for Single Radio mode */
#define TARGET_NUM_PEERS_SINGLE(ab)

/* Num of peers for DBS */
#define TARGET_NUM_PEERS_DBS(ab)

/* Num of peers for DBS_SBS */
#define TARGET_NUM_PEERS_DBS_SBS(ab)

/* Max num of stations (per radio) */
#define TARGET_NUM_STATIONS(ab)

#define TARGET_NUM_PEERS(ab, x)
#define TARGET_NUM_PEER_KEYS
#define TARGET_NUM_TIDS(ab, x)

#define TARGET_AST_SKID_LIMIT
#define TARGET_NUM_OFFLD_PEERS
#define TARGET_NUM_OFFLD_REORDER_BUFFS

#define TARGET_TX_CHAIN_MASK
#define TARGET_RX_CHAIN_MASK
#define TARGET_RX_TIMEOUT_LO_PRI
#define TARGET_RX_TIMEOUT_HI_PRI

#define TARGET_DECAP_MODE_RAW
#define TARGET_DECAP_MODE_NATIVE_WIFI
#define TARGET_DECAP_MODE_ETH

#define TARGET_SCAN_MAX_PENDING_REQS
#define TARGET_BMISS_OFFLOAD_MAX_VDEV
#define TARGET_ROAM_OFFLOAD_MAX_VDEV
#define TARGET_ROAM_OFFLOAD_MAX_AP_PROFILES
#define TARGET_GTK_OFFLOAD_MAX_VDEV
#define TARGET_NUM_MCAST_GROUPS
#define TARGET_NUM_MCAST_TABLE_ELEMS
#define TARGET_MCAST2UCAST_MODE
#define TARGET_TX_DBG_LOG_SIZE
#define TARGET_RX_SKIP_DEFRAG_TIMEOUT_DUP_DETECTION_CHECK
#define TARGET_VOW_CONFIG
#define TARGET_NUM_MSDU_DESC
#define TARGET_MAX_FRAG_ENTRIES
#define TARGET_MAX_BCN_OFFLD
#define TARGET_NUM_WDS_ENTRIES
#define TARGET_DMA_BURST_SIZE
#define TARGET_RX_BATCHMODE
#define TARGET_EMA_MAX_PROFILE_PERIOD

#define ATH11K_HW_MAX_QUEUES
#define ATH11K_QUEUE_LEN

#define ATH11k_HW_RATECODE_CCK_SHORT_PREAM_MASK

#define ATH11K_FW_DIR

#define ATH11K_BOARD_MAGIC
#define ATH11K_BOARD_API2_FILE
#define ATH11K_DEFAULT_BOARD_FILE
#define ATH11K_DEFAULT_CAL_FILE
#define ATH11K_AMSS_FILE
#define ATH11K_M3_FILE
#define ATH11K_REGDB_FILE_NAME

#define ATH11K_CE_OFFSET(ab)

enum ath11k_hw_rate_cck {};

enum ath11k_hw_rate_ofdm {};

enum ath11k_bus {};

#define ATH11K_EXT_IRQ_GRP_NUM_MAX

struct hal_rx_desc;
struct hal_tcl_data_cmd;

struct ath11k_hw_ring_mask {};

struct ath11k_hw_tcl2wbm_rbm_map {};

struct ath11k_hw_hal_params {};

struct ath11k_hw_params {};

struct ath11k_hw_ops {};

extern const struct ath11k_hw_ops ipq8074_ops;
extern const struct ath11k_hw_ops ipq6018_ops;
extern const struct ath11k_hw_ops qca6390_ops;
extern const struct ath11k_hw_ops qcn9074_ops;
extern const struct ath11k_hw_ops wcn6855_ops;
extern const struct ath11k_hw_ops wcn6750_ops;
extern const struct ath11k_hw_ops ipq5018_ops;

extern const struct ath11k_hw_ring_mask ath11k_hw_ring_mask_ipq8074;
extern const struct ath11k_hw_ring_mask ath11k_hw_ring_mask_qca6390;
extern const struct ath11k_hw_ring_mask ath11k_hw_ring_mask_qcn9074;
extern const struct ath11k_hw_ring_mask ath11k_hw_ring_mask_wcn6750;

extern const struct ce_ie_addr ath11k_ce_ie_addr_ipq8074;
extern const struct ce_ie_addr ath11k_ce_ie_addr_ipq5018;

extern const struct ce_remap ath11k_ce_remap_ipq5018;

extern const struct ath11k_hw_hal_params ath11k_hw_hal_params_ipq8074;
extern const struct ath11k_hw_hal_params ath11k_hw_hal_params_qca6390;
extern const struct ath11k_hw_hal_params ath11k_hw_hal_params_wcn6750;

static inline
int ath11k_hw_get_mac_from_pdev_id(struct ath11k_hw_params *hw,
				   int pdev_idx)
{}

static inline int ath11k_hw_mac_id_to_pdev_id(struct ath11k_hw_params *hw,
					      int mac_id)
{}

static inline int ath11k_hw_mac_id_to_srng_id(struct ath11k_hw_params *hw,
					      int mac_id)
{}

struct ath11k_fw_ie {};

enum ath11k_bd_ie_board_type {};

enum ath11k_bd_ie_regdb_type {};

enum ath11k_bd_ie_type {};

struct ath11k_hw_regs {};

extern const struct ath11k_hw_regs ipq8074_regs;
extern const struct ath11k_hw_regs qca6390_regs;
extern const struct ath11k_hw_regs qcn9074_regs;
extern const struct ath11k_hw_regs wcn6855_regs;
extern const struct ath11k_hw_regs wcn6750_regs;
extern const struct ath11k_hw_regs ipq5018_regs;

static inline const char *ath11k_bd_ie_type_str(enum ath11k_bd_ie_type type)
{}

extern const struct cfg80211_sar_capa ath11k_hw_sar_capa_wcn6855;

#endif