1 /* SPDX-License-Identifier: GPL-2.0 */
2 /******************************************************************************
4 * Copyright(c) 2007 - 2011 Realtek Corporation. All rights reserved.
6 ******************************************************************************/
7 #ifndef __HAL_COMMON_H__
8 #define __HAL_COMMON_H__
10 #include "HalVerDef.h"
13 #include "hal_phy_reg.h"
14 #include "hal_com_reg.h"
15 #include "hal_com_phycfg.h"
17 /*------------------------------ Tx Desc definition Macro ------------------------*/
18 /* pragma mark -- Tx Desc related definition. -- */
23 /* CCK Rates, TxHT = 0 */
24 #define DESC_RATE1M 0x00
25 #define DESC_RATE2M 0x01
26 #define DESC_RATE5_5M 0x02
27 #define DESC_RATE11M 0x03
29 /* OFDM Rates, TxHT = 0 */
30 #define DESC_RATE6M 0x04
31 #define DESC_RATE9M 0x05
32 #define DESC_RATE12M 0x06
33 #define DESC_RATE18M 0x07
34 #define DESC_RATE24M 0x08
35 #define DESC_RATE36M 0x09
36 #define DESC_RATE48M 0x0a
37 #define DESC_RATE54M 0x0b
39 /* MCS Rates, TxHT = 1 */
40 #define DESC_RATEMCS0 0x0c
41 #define DESC_RATEMCS1 0x0d
42 #define DESC_RATEMCS2 0x0e
43 #define DESC_RATEMCS3 0x0f
44 #define DESC_RATEMCS4 0x10
45 #define DESC_RATEMCS5 0x11
46 #define DESC_RATEMCS6 0x12
47 #define DESC_RATEMCS7 0x13
49 #define HDATA_RATE(rate)\
50 (rate == DESC_RATE1M) ? "CCK_1M" : \
51 (rate == DESC_RATE2M) ? "CCK_2M" : \
52 (rate == DESC_RATE5_5M) ? "CCK5_5M" : \
53 (rate == DESC_RATE11M) ? "CCK_11M" : \
54 (rate == DESC_RATE6M) ? "OFDM_6M" : \
55 (rate == DESC_RATE9M) ? "OFDM_9M" : \
56 (rate == DESC_RATE12M) ? "OFDM_12M" : \
57 (rate == DESC_RATE18M) ? "OFDM_18M" : \
58 (rate == DESC_RATE24M) ? "OFDM_24M" : \
59 (rate == DESC_RATE36M) ? "OFDM_36M" : \
60 (rate == DESC_RATE48M) ? "OFDM_48M" : \
61 (rate == DESC_RATE54M) ? "OFDM_54M" : \
62 (rate == DESC_RATEMCS0) ? "MCS0" : \
63 (rate == DESC_RATEMCS1) ? "MCS1" : \
64 (rate == DESC_RATEMCS2) ? "MCS2" : \
65 (rate == DESC_RATEMCS3) ? "MCS3" : \
66 (rate == DESC_RATEMCS4) ? "MCS4" : \
67 (rate == DESC_RATEMCS5) ? "MCS5" : \
68 (rate == DESC_RATEMCS6) ? "MCS6" : \
69 (rate == DESC_RATEMCS7) ? "MCS7" : "UNKNOWN"
75 enum rt_media_status {
76 RT_MEDIA_DISCONNECT = 0,
80 #define MAX_DLFW_PAGE_SIZE 4096 /* @ page : 4k bytes */
82 /* BK, BE, VI, VO, HCCA, MANAGEMENT, COMMAND, HIGH, BEACON. */
83 /* define MAX_TX_QUEUE 9 */
85 #define TX_SELE_HQ BIT(0) /* High Queue */
86 #define TX_SELE_LQ BIT(1) /* Low Queue */
87 #define TX_SELE_NQ BIT(2) /* Normal Queue */
88 #define TX_SELE_EQ BIT(3) /* Extern Queue */
90 #define PageNum_128(_Len) ((u32)(((_Len) >> 7) + ((_Len) & 0x7F ? 1 : 0)))
92 u8 rtw_hal_data_init(struct adapter *padapter);
93 void rtw_hal_data_deinit(struct adapter *padapter);
95 void dump_chip_info(struct hal_version ChipVersion);
97 u8 /* return the final channel plan decision */
98 hal_com_config_channel_plan(
99 struct adapter *padapter,
100 u8 hw_channel_plan, /* channel plan from HW (efuse/eeprom) */
101 u8 sw_channel_plan, /* channel plan from SW (registry/module param) */
102 u8 def_channel_plan, /* channel plan used when the former two is invalid */
108 struct adapter *Adapter,
112 u8 MRateToHwRate(u8 rate);
114 u8 HwRateToMRate(u8 rate);
117 struct adapter *Adapter,
123 struct adapter *padapter,
127 void hal_init_macaddr(struct adapter *adapter);
129 void rtw_init_hal_com_default_value(struct adapter *Adapter);
131 void c2h_evt_clear(struct adapter *adapter);
132 s32 c2h_evt_read_88xx(struct adapter *adapter, u8 *buf);
134 u8 rtw_get_mgntframe_raid(struct adapter *adapter, unsigned char network_type);
135 void rtw_hal_update_sta_rate_mask(struct adapter *padapter, struct sta_info *psta);
137 void hw_var_port_switch(struct adapter *adapter);
139 void SetHwReg(struct adapter *padapter, u8 variable, u8 *val);
140 void GetHwReg(struct adapter *padapter, u8 variable, u8 *val);
141 void rtw_hal_check_rxfifo_full(struct adapter *adapter);
143 u8 SetHalDefVar(struct adapter *adapter, enum hal_def_variable variable,
145 u8 GetHalDefVar(struct adapter *adapter, enum hal_def_variable variable,
148 bool eqNByte(u8 *str1, u8 *str2, u32 num);
150 bool IsHexDigit(char chTmp);
152 u32 MapCharToHexDigit(char chTmp);
154 bool GetHexValueFromString(char *szStr, u32 *pu4bVal, u32 *pu4bMove);
156 bool GetFractionValueFromString(char *szStr, u8 *pInteger, u8 *pFraction,
159 bool IsCommentString(char *szStr);
161 bool ParseQualifiedString(char *In, u32 *Start, char *Out, char LeftQualifier,
162 char RightQualifier);
164 bool GetU1ByteIntegerFromStringInDecimal(char *str, u8 *in);
166 bool isAllSpaceOrTab(u8 *data, u8 size);
168 void linked_info_dump(struct adapter *padapter, u8 benable);
169 #ifdef DBG_RX_SIGNAL_DISPLAY_RAW_DATA
170 void rtw_get_raw_rssi_info(void *sel, struct adapter *padapter);
171 void rtw_store_phy_info(struct adapter *padapter, union recv_frame *prframe);
172 void rtw_dump_raw_rssi_info(struct adapter *padapter);
175 #define HWSET_MAX_SIZE 512
177 void rtw_bb_rf_gain_offset(struct adapter *padapter);
179 void GetHalODMVar(struct adapter *Adapter,
180 enum hal_odm_variable eVariable,
184 struct adapter *Adapter,
185 enum hal_odm_variable eVariable,
188 #endif /* __HAL_COMMON_H__ */