1 /* SPDX-License-Identifier: GPL-2.0 */ 2 /****************************************************************************** 3 * 4 * Copyright(c) 2007 - 2011 Realtek Corporation. All rights reserved. 5 * 6 ******************************************************************************/ 7 #ifndef __HAL_COMMON_H__ 8 #define __HAL_COMMON_H__ 9 10 #include "HalVerDef.h" 11 #include "hal_pg.h" 12 #include "hal_phy.h" 13 #include "hal_phy_reg.h" 14 #include "hal_com_reg.h" 15 #include "hal_com_phycfg.h" 16 17 /*------------------------------ Tx Desc definition Macro ------------------------*/ 18 /* pragma mark -- Tx Desc related definition. -- */ 19 /* */ 20 /* */ 21 /* Rate */ 22 /* */ 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 28 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 38 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 48 #define DESC_RATEMCS8 0x14 49 #define DESC_RATEMCS9 0x15 50 #define DESC_RATEMCS10 0x16 51 #define DESC_RATEMCS11 0x17 52 #define DESC_RATEMCS12 0x18 53 #define DESC_RATEMCS13 0x19 54 #define DESC_RATEMCS14 0x1a 55 #define DESC_RATEMCS15 0x1b 56 #define DESC_RATEMCS16 0x1C 57 #define DESC_RATEMCS17 0x1D 58 #define DESC_RATEMCS18 0x1E 59 #define DESC_RATEMCS19 0x1F 60 #define DESC_RATEMCS20 0x20 61 #define DESC_RATEMCS21 0x21 62 #define DESC_RATEMCS22 0x22 63 #define DESC_RATEMCS23 0x23 64 #define DESC_RATEMCS24 0x24 65 #define DESC_RATEMCS25 0x25 66 #define DESC_RATEMCS26 0x26 67 #define DESC_RATEMCS27 0x27 68 #define DESC_RATEMCS28 0x28 69 #define DESC_RATEMCS29 0x29 70 #define DESC_RATEMCS30 0x2A 71 #define DESC_RATEMCS31 0x2B 72 73 #define HDATA_RATE(rate)\ 74 (rate == DESC_RATE1M) ? "CCK_1M" : \ 75 (rate == DESC_RATE2M) ? "CCK_2M" : \ 76 (rate == DESC_RATE5_5M) ? "CCK5_5M" : \ 77 (rate == DESC_RATE11M) ? "CCK_11M" : \ 78 (rate == DESC_RATE6M) ? "OFDM_6M" : \ 79 (rate == DESC_RATE9M) ? "OFDM_9M" : \ 80 (rate == DESC_RATE12M) ? "OFDM_12M" : \ 81 (rate == DESC_RATE18M) ? "OFDM_18M" : \ 82 (rate == DESC_RATE24M) ? "OFDM_24M" : \ 83 (rate == DESC_RATE36M) ? "OFDM_36M" : \ 84 (rate == DESC_RATE48M) ? "OFDM_48M" : \ 85 (rate == DESC_RATE54M) ? "OFDM_54M" : \ 86 (rate == DESC_RATEMCS0) ? "MCS0" : \ 87 (rate == DESC_RATEMCS1) ? "MCS1" : \ 88 (rate == DESC_RATEMCS2) ? "MCS2" : \ 89 (rate == DESC_RATEMCS3) ? "MCS3" : \ 90 (rate == DESC_RATEMCS4) ? "MCS4" : \ 91 (rate == DESC_RATEMCS5) ? "MCS5" : \ 92 (rate == DESC_RATEMCS6) ? "MCS6" : \ 93 (rate == DESC_RATEMCS7) ? "MCS7" : \ 94 (rate == DESC_RATEMCS8) ? "MCS8" : \ 95 (rate == DESC_RATEMCS9) ? "MCS9" : \ 96 (rate == DESC_RATEMCS10) ? "MCS10" : \ 97 (rate == DESC_RATEMCS11) ? "MCS11" : \ 98 (rate == DESC_RATEMCS12) ? "MCS12" : \ 99 (rate == DESC_RATEMCS13) ? "MCS13" : \ 100 (rate == DESC_RATEMCS14) ? "MCS14" : \ 101 (rate == DESC_RATEMCS15) ? "MCS15" : "UNKNOWN" 102 103 104 enum{ 105 UP_LINK, 106 DOWN_LINK, 107 }; 108 enum rt_media_status { 109 RT_MEDIA_DISCONNECT = 0, 110 RT_MEDIA_CONNECT = 1 111 }; 112 113 #define MAX_DLFW_PAGE_SIZE 4096 /* @ page : 4k bytes */ 114 115 /* BK, BE, VI, VO, HCCA, MANAGEMENT, COMMAND, HIGH, BEACON. */ 116 /* define MAX_TX_QUEUE 9 */ 117 118 #define TX_SELE_HQ BIT(0) /* High Queue */ 119 #define TX_SELE_LQ BIT(1) /* Low Queue */ 120 #define TX_SELE_NQ BIT(2) /* Normal Queue */ 121 #define TX_SELE_EQ BIT(3) /* Extern Queue */ 122 123 #define PageNum_128(_Len) ((u32)(((_Len) >> 7) + ((_Len) & 0x7F ? 1 : 0))) 124 125 u8 rtw_hal_data_init(struct adapter *padapter); 126 void rtw_hal_data_deinit(struct adapter *padapter); 127 128 void dump_chip_info(struct hal_version ChipVersion); 129 130 u8 /* return the final channel plan decision */ 131 hal_com_config_channel_plan( 132 struct adapter *padapter, 133 u8 hw_channel_plan, /* channel plan from HW (efuse/eeprom) */ 134 u8 sw_channel_plan, /* channel plan from SW (registry/module param) */ 135 u8 def_channel_plan, /* channel plan used when the former two is invalid */ 136 bool AutoLoadFail 137 ); 138 139 bool 140 HAL_IsLegalChannel( 141 struct adapter *Adapter, 142 u32 Channel 143 ); 144 145 u8 MRateToHwRate(u8 rate); 146 147 u8 HwRateToMRate(u8 rate); 148 149 void HalSetBrateCfg( 150 struct adapter *Adapter, 151 u8 *mBratesOS, 152 u16 *pBrateCfg); 153 154 bool 155 Hal_MappingOutPipe( 156 struct adapter *padapter, 157 u8 NumOutPipe 158 ); 159 160 void hal_init_macaddr(struct adapter *adapter); 161 162 void rtw_init_hal_com_default_value(struct adapter *Adapter); 163 164 void c2h_evt_clear(struct adapter *adapter); 165 s32 c2h_evt_read_88xx(struct adapter *adapter, u8 *buf); 166 167 u8 rtw_get_mgntframe_raid(struct adapter *adapter, unsigned char network_type); 168 void rtw_hal_update_sta_rate_mask(struct adapter *padapter, struct sta_info *psta); 169 170 void hw_var_port_switch(struct adapter *adapter); 171 172 void SetHwReg(struct adapter *padapter, u8 variable, u8 *val); 173 void GetHwReg(struct adapter *padapter, u8 variable, u8 *val); 174 void rtw_hal_check_rxfifo_full(struct adapter *adapter); 175 176 u8 SetHalDefVar(struct adapter *adapter, enum hal_def_variable variable, 177 void *value); 178 u8 GetHalDefVar(struct adapter *adapter, enum hal_def_variable variable, 179 void *value); 180 181 bool eqNByte(u8 *str1, u8 *str2, u32 num); 182 183 bool IsHexDigit(char chTmp); 184 185 u32 MapCharToHexDigit(char chTmp); 186 187 bool GetHexValueFromString(char *szStr, u32 *pu4bVal, u32 *pu4bMove); 188 189 bool GetFractionValueFromString(char *szStr, u8 *pInteger, u8 *pFraction, 190 u32 *pu4bMove); 191 192 bool IsCommentString(char *szStr); 193 194 bool ParseQualifiedString(char *In, u32 *Start, char *Out, char LeftQualifier, 195 char RightQualifier); 196 197 bool GetU1ByteIntegerFromStringInDecimal(char *str, u8 *in); 198 199 bool isAllSpaceOrTab(u8 *data, u8 size); 200 201 void linked_info_dump(struct adapter *padapter, u8 benable); 202 #ifdef DBG_RX_SIGNAL_DISPLAY_RAW_DATA 203 void rtw_get_raw_rssi_info(void *sel, struct adapter *padapter); 204 void rtw_store_phy_info(struct adapter *padapter, union recv_frame *prframe); 205 void rtw_dump_raw_rssi_info(struct adapter *padapter); 206 #endif 207 208 #define HWSET_MAX_SIZE 512 209 210 void rtw_bb_rf_gain_offset(struct adapter *padapter); 211 212 void GetHalODMVar(struct adapter *Adapter, 213 enum hal_odm_variable eVariable, 214 void *pValue1, 215 void *pValue2); 216 void SetHalODMVar( 217 struct adapter *Adapter, 218 enum hal_odm_variable eVariable, 219 void *pValue1, 220 bool bSet); 221 #endif /* __HAL_COMMON_H__ */ 222