102 lines
2.5 KiB
C
102 lines
2.5 KiB
C
/* SPDX-License-Identifier: ISC */
|
|
/* Copyright (C) 2020 MediaTek Inc. */
|
|
|
|
#ifndef __MT7915_MAC_H
|
|
#define __MT7915_MAC_H
|
|
|
|
#include "../mt76_connac2_mac.h"
|
|
|
|
#define MT_CT_PARSE_LEN 72
|
|
#define MT_CT_DMA_BUF_NUM 2
|
|
|
|
#define MT_RXD0_LENGTH GENMASK(15, 0)
|
|
#define MT_RXD0_PKT_TYPE GENMASK(31, 27)
|
|
|
|
#define MT_RXD0_NORMAL_ETH_TYPE_OFS GENMASK(22, 16)
|
|
#define MT_RXD0_NORMAL_IP_SUM BIT(23)
|
|
#define MT_RXD0_NORMAL_UDP_TCP_SUM BIT(24)
|
|
|
|
enum rx_pkt_type {
|
|
PKT_TYPE_TXS,
|
|
PKT_TYPE_TXRXV,
|
|
PKT_TYPE_NORMAL,
|
|
PKT_TYPE_RX_DUP_RFB,
|
|
PKT_TYPE_RX_TMR,
|
|
PKT_TYPE_RETRIEVE,
|
|
PKT_TYPE_TXRX_NOTIFY,
|
|
PKT_TYPE_RX_EVENT,
|
|
PKT_TYPE_RX_FW_MONITOR = 0x0c,
|
|
PKT_TYPE_TXRX_NOTIFY_V0 = 0x18,
|
|
};
|
|
|
|
#define MT_TX_FREE_VER GENMASK(18, 16)
|
|
#define MT_TX_FREE_MSDU_CNT GENMASK(9, 0)
|
|
#define MT_TX_FREE_MSDU_CNT_V0 GENMASK(6, 0)
|
|
#define MT_TX_FREE_WLAN_ID GENMASK(23, 14)
|
|
#define MT_TX_FREE_LATENCY GENMASK(12, 0)
|
|
/* 0: success, others: dropped */
|
|
#define MT_TX_FREE_MSDU_ID GENMASK(30, 16)
|
|
#define MT_TX_FREE_PAIR BIT(31)
|
|
#define MT_TX_FREE_MPDU_HEADER BIT(30)
|
|
#define MT_TX_FREE_MSDU_ID_V3 GENMASK(14, 0)
|
|
|
|
/* will support this field in further revision */
|
|
#define MT_TX_FREE_RATE GENMASK(13, 0)
|
|
|
|
#define MT_TXS5_F0_FINAL_MPDU BIT(31)
|
|
#define MT_TXS5_F0_QOS BIT(30)
|
|
#define MT_TXS5_F0_TX_COUNT GENMASK(29, 25)
|
|
#define MT_TXS5_F0_FRONT_TIME GENMASK(24, 0)
|
|
#define MT_TXS5_F1_MPDU_TX_COUNT GENMASK(31, 24)
|
|
#define MT_TXS5_F1_MPDU_TX_BYTES GENMASK(23, 0)
|
|
|
|
#define MT_TXS6_F0_NOISE_3 GENMASK(31, 24)
|
|
#define MT_TXS6_F0_NOISE_2 GENMASK(23, 16)
|
|
#define MT_TXS6_F0_NOISE_1 GENMASK(15, 8)
|
|
#define MT_TXS6_F0_NOISE_0 GENMASK(7, 0)
|
|
#define MT_TXS6_F1_MPDU_FAIL_COUNT GENMASK(31, 24)
|
|
#define MT_TXS6_F1_MPDU_FAIL_BYTES GENMASK(23, 0)
|
|
|
|
#define MT_TXS7_F0_RCPI_3 GENMASK(31, 24)
|
|
#define MT_TXS7_F0_RCPI_2 GENMASK(23, 16)
|
|
#define MT_TXS7_F0_RCPI_1 GENMASK(15, 8)
|
|
#define MT_TXS7_F0_RCPI_0 GENMASK(7, 0)
|
|
#define MT_TXS7_F1_MPDU_RETRY_COUNT GENMASK(31, 24)
|
|
#define MT_TXS7_F1_MPDU_RETRY_BYTES GENMASK(23, 0)
|
|
|
|
struct mt7915_dfs_pulse {
|
|
u32 max_width; /* us */
|
|
int max_pwr; /* dbm */
|
|
int min_pwr; /* dbm */
|
|
u32 min_stgr_pri; /* us */
|
|
u32 max_stgr_pri; /* us */
|
|
u32 min_cr_pri; /* us */
|
|
u32 max_cr_pri; /* us */
|
|
};
|
|
|
|
struct mt7915_dfs_pattern {
|
|
u8 enb;
|
|
u8 stgr;
|
|
u8 min_crpn;
|
|
u8 max_crpn;
|
|
u8 min_crpr;
|
|
u8 min_pw;
|
|
u32 min_pri;
|
|
u32 max_pri;
|
|
u8 max_pw;
|
|
u8 min_crbn;
|
|
u8 max_crbn;
|
|
u8 min_stgpn;
|
|
u8 max_stgpn;
|
|
u8 min_stgpr;
|
|
u8 rsv[2];
|
|
u32 min_stgpr_diff;
|
|
} __packed;
|
|
|
|
struct mt7915_dfs_radar_spec {
|
|
struct mt7915_dfs_pulse pulse_th;
|
|
struct mt7915_dfs_pattern radar_pattern[16];
|
|
};
|
|
|
|
#endif
|