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

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

#ifndef ATH12K_HW_H
#define ATH12K_HW_H

#include <linux/mhi.h>
#include <linux/uuid.h>

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

/* Target configuration defines */

/* Num VDEVS per radio */
#define TARGET_NUM_VDEVS

#define TARGET_NUM_PEERS_PDEV_SINGLE
#define TARGET_NUM_PEERS_PDEV_DBS
#define TARGET_NUM_PEERS_PDEV_DBS_SBS

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

/* Num of peers for DBS */
#define TARGET_NUM_PEERS_DBS

/* Num of peers for DBS_SBS */
#define TARGET_NUM_PEERS_DBS_SBS

/* Max num of stations for Single Radio mode */
#define TARGET_NUM_STATIONS_SINGLE

/* Max num of stations for DBS */
#define TARGET_NUM_STATIONS_DBS

/* Max num of stations for DBS_SBS */
#define TARGET_NUM_STATIONS_DBS_SBS

#define TARGET_NUM_PEERS(x)
#define TARGET_NUM_PEER_KEYS
#define TARGET_NUM_TIDS(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 ATH12K_HW_DEFAULT_QUEUE
#define ATH12K_HW_MAX_QUEUES
#define ATH12K_QUEUE_LEN

#define ATH12K_HW_RATECODE_CCK_SHORT_PREAM_MASK

#define ATH12K_FW_DIR

#define ATH12K_BOARD_MAGIC
#define ATH12K_BOARD_API2_FILE
#define ATH12K_DEFAULT_BOARD_FILE
#define ATH12K_DEFAULT_CAL_FILE
#define ATH12K_AMSS_FILE
#define ATH12K_M3_FILE
#define ATH12K_REGDB_FILE_NAME

enum ath12k_hw_rate_cck {};

enum ath12k_hw_rate_ofdm {};

enum ath12k_bus {};

#define ATH12K_EXT_IRQ_GRP_NUM_MAX

struct hal_rx_desc;
struct hal_tcl_data_cmd;
struct htt_rx_ring_tlv_filter;
enum hal_encrypt_type;

struct ath12k_hw_ring_mask {};

struct ath12k_hw_hal_params {};

struct ath12k_hw_params {};

struct ath12k_hw_ops {};

static inline
int ath12k_hw_get_mac_from_pdev_id(const struct ath12k_hw_params *hw,
				   int pdev_idx)
{}

static inline int ath12k_hw_mac_id_to_pdev_id(const struct ath12k_hw_params *hw,
					      int mac_id)
{}

static inline int ath12k_hw_mac_id_to_srng_id(const struct ath12k_hw_params *hw,
					      int mac_id)
{}

struct ath12k_fw_ie {};

enum ath12k_bd_ie_board_type {};

enum ath12k_bd_ie_regdb_type {};

enum ath12k_bd_ie_type {};

struct ath12k_hw_regs {};

static inline const char *ath12k_bd_ie_type_str(enum ath12k_bd_ie_type type)
{}

int ath12k_hw_init(struct ath12k_base *ab);

#endif