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

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

#ifndef ATH11K_HAL_TX_H
#define ATH11K_HAL_TX_H

#include "hal_desc.h"
#include "core.h"

#define HAL_TX_ADDRX_EN
#define HAL_TX_ADDRY_EN

#define HAL_TX_ADDR_SEARCH_DEFAULT
#define HAL_TX_ADDR_SEARCH_INDEX

struct hal_tx_info {};

/* TODO: Check if the actual desc macros can be used instead */
#define HAL_TX_STATUS_FLAGS_FIRST_MSDU
#define HAL_TX_STATUS_FLAGS_LAST_MSDU
#define HAL_TX_STATUS_FLAGS_MSDU_IN_AMSDU
#define HAL_TX_STATUS_FLAGS_RATE_STATS_VALID
#define HAL_TX_STATUS_FLAGS_RATE_LDPC
#define HAL_TX_STATUS_FLAGS_RATE_STBC
#define HAL_TX_STATUS_FLAGS_OFDMA

#define HAL_TX_STATUS_DESC_LEN

/* Tx status parsed from srng desc */
struct hal_tx_status {};

void ath11k_hal_tx_cmd_desc_setup(struct ath11k_base *ab, void *cmd,
				  struct hal_tx_info *ti);
void ath11k_hal_tx_set_dscp_tid_map(struct ath11k_base *ab, int id);
int ath11k_hal_reo_cmd_send(struct ath11k_base *ab, struct hal_srng *srng,
			    enum hal_reo_cmd_type type,
			    struct ath11k_hal_reo_cmd *cmd);
void ath11k_hal_tx_init_data_ring(struct ath11k_base *ab,
				  struct hal_srng *srng);
#endif