/* SPDX-License-Identifier: GPL-2.0 */
/* Copyright(c) 2009-2010 Realtek Corporation.*/
#ifndef __RTL8821AE_DEF_H__
#define __RTL8821AE_DEF_H__
/*--------------------------Define -------------------------------------------*/
#define USE_SPECIFIC_FW_TO_SUPPORT_WOWLAN 1
/* BIT 7 HT Rate*/
/*TxHT = 0*/
#define MGN_1M 0 x02
#define MGN_2M 0 x04
#define MGN_5_5M 0 x0b
#define MGN_11M 0 x16
#define MGN_6M 0 x0c
#define MGN_9M 0 x12
#define MGN_12M 0 x18
#define MGN_18M 0 x24
#define MGN_24M 0 x30
#define MGN_36M 0 x48
#define MGN_48M 0 x60
#define MGN_54M 0 x6c
/* TxHT = 1 */
#define MGN_MCS0 0 x80
#define MGN_MCS1 0 x81
#define MGN_MCS2 0 x82
#define MGN_MCS3 0 x83
#define MGN_MCS4 0 x84
#define MGN_MCS5 0 x85
#define MGN_MCS6 0 x86
#define MGN_MCS7 0 x87
#define MGN_MCS8 0 x88
#define MGN_MCS9 0 x89
#define MGN_MCS10 0 x8a
#define MGN_MCS11 0 x8b
#define MGN_MCS12 0 x8c
#define MGN_MCS13 0 x8d
#define MGN_MCS14 0 x8e
#define MGN_MCS15 0 x8f
/* VHT rate */
#define MGN_VHT1SS_MCS0 0 x90
#define MGN_VHT1SS_MCS1 0 x91
#define MGN_VHT1SS_MCS2 0 x92
#define MGN_VHT1SS_MCS3 0 x93
#define MGN_VHT1SS_MCS4 0 x94
#define MGN_VHT1SS_MCS5 0 x95
#define MGN_VHT1SS_MCS6 0 x96
#define MGN_VHT1SS_MCS7 0 x97
#define MGN_VHT1SS_MCS8 0 x98
#define MGN_VHT1SS_MCS9 0 x99
#define MGN_VHT2SS_MCS0 0 x9a
#define MGN_VHT2SS_MCS1 0 x9b
#define MGN_VHT2SS_MCS2 0 x9c
#define MGN_VHT2SS_MCS3 0 x9d
#define MGN_VHT2SS_MCS4 0 x9e
#define MGN_VHT2SS_MCS5 0 x9f
#define MGN_VHT2SS_MCS6 0 xa0
#define MGN_VHT2SS_MCS7 0 xa1
#define MGN_VHT2SS_MCS8 0 xa2
#define MGN_VHT2SS_MCS9 0 xa3
#define MGN_VHT3SS_MCS0 0 xa4
#define MGN_VHT3SS_MCS1 0 xa5
#define MGN_VHT3SS_MCS2 0 xa6
#define MGN_VHT3SS_MCS3 0 xa7
#define MGN_VHT3SS_MCS4 0 xa8
#define MGN_VHT3SS_MCS5 0 xa9
#define MGN_VHT3SS_MCS6 0 xaa
#define MGN_VHT3SS_MCS7 0 xab
#define MGN_VHT3SS_MCS8 0 xac
#define MGN_VHT3SS_MCS9 0 xad
#define MGN_MCS0_SG 0 xc0
#define MGN_MCS1_SG 0 xc1
#define MGN_MCS2_SG 0 xc2
#define MGN_MCS3_SG 0 xc3
#define MGN_MCS4_SG 0 xc4
#define MGN_MCS5_SG 0 xc5
#define MGN_MCS6_SG 0 xc6
#define MGN_MCS7_SG 0 xc7
#define MGN_MCS8_SG 0 xc8
#define MGN_MCS9_SG 0 xc9
#define MGN_MCS10_SG 0 xca
#define MGN_MCS11_SG 0 xcb
#define MGN_MCS12_SG 0 xcc
#define MGN_MCS13_SG 0 xcd
#define MGN_MCS14_SG 0 xce
#define MGN_MCS15_SG 0 xcf
#define MGN_UNKNOWN 0 xff
/* 30 ms */
#define WIFI_NAV_UPPER_US 30000
#define HAL_92C_NAV_UPPER_UNIT 128
#define MAX_RX_DMA_BUFFER_SIZE 0 x3E80
#define HAL_PRIME_CHNL_OFFSET_DONT_CARE 0
#define HAL_PRIME_CHNL_OFFSET_LOWER 1
#define HAL_PRIME_CHNL_OFFSET_UPPER 2
#define RX_MPDU_QUEUE 0
#define RX_CMD_QUEUE 1
#define MAX_RX_DMA_BUFFER_SIZE_8812 0 x3E80
#define CHIP_BONDING_IDENTIFIER(_value) (((_value)>>22 )&0 x3)
#define CHIP_8812 BIT(2 )
#define CHIP_8821 (BIT(0 )|BIT(2 ))
#define CHIP_8821A (BIT(0 )|BIT(2 ))
#define NORMAL_CHIP BIT(3 )
#define RF_TYPE_1T1R (~(BIT(4 )|BIT(5 )|BIT(6 )))
#define RF_TYPE_1T2R BIT(4 )
#define RF_TYPE_2T2R BIT(5 )
#define CHIP_VENDOR_UMC BIT(7 )
#define B_CUT_VERSION BIT(12 )
#define C_CUT_VERSION BIT(13 )
#define D_CUT_VERSION ((BIT(12 )|BIT(13 )))
#define E_CUT_VERSION BIT(14 )
#define RF_RL_ID (BIT(31 )|BIT(30 )|BIT(29 )|BIT(28 ))
enum version_8821ae {
VERSION_TEST_CHIP_1T1R_8812 = 0 x0004,
VERSION_TEST_CHIP_2T2R_8812 = 0 x0024,
VERSION_NORMAL_TSMC_CHIP_1T1R_8812 = 0 x100c,
VERSION_NORMAL_TSMC_CHIP_2T2R_8812 = 0 x102c,
VERSION_NORMAL_TSMC_CHIP_1T1R_8812_C_CUT = 0 x200c,
VERSION_NORMAL_TSMC_CHIP_2T2R_8812_C_CUT = 0 x202c,
VERSION_TEST_CHIP_8821 = 0 x0005,
VERSION_NORMAL_TSMC_CHIP_8821 = 0 x000d,
VERSION_NORMAL_TSMC_CHIP_8821_B_CUT = 0 x100d,
VERSION_UNKNOWN = 0 xFF,
};
enum vht_data_sc {
VHT_DATA_SC_DONOT_CARE = 0 ,
VHT_DATA_SC_20_UPPER_OF_80MHZ = 1 ,
VHT_DATA_SC_20_LOWER_OF_80MHZ = 2 ,
VHT_DATA_SC_20_UPPERST_OF_80MHZ = 3 ,
VHT_DATA_SC_20_LOWEST_OF_80MHZ = 4 ,
VHT_DATA_SC_20_RECV1 = 5 ,
VHT_DATA_SC_20_RECV2 = 6 ,
VHT_DATA_SC_20_RECV3 = 7 ,
VHT_DATA_SC_20_RECV4 = 8 ,
VHT_DATA_SC_40_UPPER_OF_80MHZ = 9 ,
VHT_DATA_SC_40_LOWER_OF_80MHZ = 10 ,
};
/* MASK */
#define IC_TYPE_MASK (BIT(0 )|BIT(1 )|BIT(2 ))
#define CHIP_TYPE_MASK BIT(3 )
#define RF_TYPE_MASK (BIT(4 )|BIT(5 )|BIT(6 ))
#define MANUFACTUER_MASK BIT(7 )
#define ROM_VERSION_MASK (BIT(11 )|BIT(10 )|BIT(9 )|BIT(8 ))
#define CUT_VERSION_MASK (BIT(15 )|BIT(14 )|BIT(13 )|BIT(12 ))
/* Get element */
#define GET_CVID_IC_TYPE(version) ((version) & IC_TYPE_MASK)
#define GET_CVID_CHIP_TYPE(version) ((version) & CHIP_TYPE_MASK)
#define GET_CVID_RF_TYPE(version) ((version) & RF_TYPE_MASK)
#define GET_CVID_MANUFACTUER(version) ((version) & MANUFACTUER_MASK)
#define GET_CVID_ROM_VERSION(version) ((version) & ROM_VERSION_MASK)
#define GET_CVID_CUT_VERSION(version) ((version) & CUT_VERSION_MASK)
#define IS_1T1R(version) ((GET_CVID_RF_TYPE(version)) ? false : true )
#define IS_1T2R(version) ((GET_CVID_RF_TYPE(version) == RF_TYPE_1T2R)\
? true : false )
#define IS_2T2R(version) ((GET_CVID_RF_TYPE(version) == RF_TYPE_2T2R)\
? true : false )
#define IS_8812_SERIES(version) ((GET_CVID_IC_TYPE(version) == CHIP_8812) ? \
true : false )
#define IS_8821_SERIES(version) ((GET_CVID_IC_TYPE(version) == CHIP_8821) ? \
true : false )
#define IS_VENDOR_8812A_TEST_CHIP(version) ((IS_8812_SERIES(version)) ? \
((IS_NORMAL_CHIP(version)) ? \
false : true ) : false )
#define IS_VENDOR_8812A_MP_CHIP(version) ((IS_8812_SERIES(version)) ? \
((IS_NORMAL_CHIP(version)) ? \
true : false ) : false )
#define IS_VENDOR_8812A_C_CUT(version) ((IS_8812_SERIES(version)) ? \
((GET_CVID_CUT_VERSION(version) == \
C_CUT_VERSION) ? \
true : false ) : false )
#define IS_VENDOR_8821A_TEST_CHIP(version) ((IS_8821_SERIES(version)) ? \
((IS_NORMAL_CHIP(version)) ? \
false : true ) : false )
#define IS_VENDOR_8821A_MP_CHIP(version) ((IS_8821_SERIES(version)) ? \
((IS_NORMAL_CHIP(version)) ? \
true : false ) : false )
#define IS_VENDOR_8821A_B_CUT(version) ((IS_8821_SERIES(version)) ? \
((GET_CVID_CUT_VERSION(version) == \
B_CUT_VERSION) ? \
true : false ) : false )
enum board_type {
ODM_BOARD_DEFAULT = 0 , /* The DEFAULT case. */
ODM_BOARD_MINICARD = BIT(0 ), /* 0 = non-mini card, 1 = mini card. */
ODM_BOARD_SLIM = BIT(1 ), /* 0 = non-slim card, 1 = slim card */
ODM_BOARD_BT = BIT(2 ), /* 0 = without BT card, 1 = with BT */
ODM_BOARD_EXT_PA = BIT(3 ), /* 1 = existing 2G ext-PA */
ODM_BOARD_EXT_LNA = BIT(4 ), /* 1 = existing 2G ext-LNA */
ODM_BOARD_EXT_TRSW = BIT(5 ), /* 1 = existing ext-TRSW */
ODM_BOARD_EXT_PA_5G = BIT(6 ), /* 1 = existing 5G ext-PA */
ODM_BOARD_EXT_LNA_5G = BIT(7 ), /* 1 = existing 5G ext-LNA */
};
enum rf_optype {
RF_OP_BY_SW_3WIRE = 0 ,
RF_OP_BY_FW,
RF_OP_MAX
};
enum rf_power_state {
RF_ON,
RF_OFF,
RF_SLEEP,
RF_SHUT_DOWN,
};
enum power_save_mode {
POWER_SAVE_MODE_ACTIVE,
POWER_SAVE_MODE_SAVE,
};
enum power_polocy_config {
POWERCFG_MAX_POWER_SAVINGS,
POWERCFG_GLOBAL_POWER_SAVINGS,
POWERCFG_LOCAL_POWER_SAVINGS,
POWERCFG_LENOVO,
};
enum interface_select_pci {
INTF_SEL1_MINICARD = 0 ,
INTF_SEL0_PCIE = 1 ,
INTF_SEL2_RSV = 2 ,
INTF_SEL3_RSV = 3 ,
};
enum rtl_desc_qsel {
QSLT_BK = 0 x2,
QSLT_BE = 0 x0,
QSLT_VI = 0 x5,
QSLT_VO = 0 x7,
QSLT_BEACON = 0 x10,
QSLT_HIGH = 0 x11,
QSLT_MGNT = 0 x12,
QSLT_CMD = 0 x13,
};
struct phy_sts_cck_8821ae_t {
u8 adc_pwdb_X[4 ];
u8 sq_rpt;
u8 cck_agc_rpt;
};
struct h2c_cmd_8821ae {
u8 element_id;
u32 cmd_len;
u8 *p_cmdbuffer;
};
#endif
Messung V0.5 in Prozent C=99 H=94 G=96
¤ Dauer der Verarbeitung: 0.8 Sekunden
(vorverarbeitet am 2026-06-07)
¤
*© Formatika GbR, Deutschland