/* SPDX-License-Identifier: GPL-2.0 */
|
/******************************************************************************
|
*
|
* Copyright(c) 2007 - 2011 Realtek Corporation. All rights reserved.
|
*
|
******************************************************************************/
|
#ifndef __HAL_COMMON_H__
|
#define __HAL_COMMON_H__
|
|
#include "HalVerDef.h"
|
#include "hal_pg.h"
|
#include "hal_phy.h"
|
#include "hal_phy_reg.h"
|
#include "hal_com_reg.h"
|
#include "hal_com_phycfg.h"
|
|
/*------------------------------ Tx Desc definition Macro ------------------------*/
|
/* pragma mark -- Tx Desc related definition. -- */
|
/* */
|
/* */
|
/* Rate */
|
/* */
|
/* CCK Rates, TxHT = 0 */
|
#define DESC_RATE1M 0x00
|
#define DESC_RATE2M 0x01
|
#define DESC_RATE5_5M 0x02
|
#define DESC_RATE11M 0x03
|
|
/* OFDM Rates, TxHT = 0 */
|
#define DESC_RATE6M 0x04
|
#define DESC_RATE9M 0x05
|
#define DESC_RATE12M 0x06
|
#define DESC_RATE18M 0x07
|
#define DESC_RATE24M 0x08
|
#define DESC_RATE36M 0x09
|
#define DESC_RATE48M 0x0a
|
#define DESC_RATE54M 0x0b
|
|
/* MCS Rates, TxHT = 1 */
|
#define DESC_RATEMCS0 0x0c
|
#define DESC_RATEMCS1 0x0d
|
#define DESC_RATEMCS2 0x0e
|
#define DESC_RATEMCS3 0x0f
|
#define DESC_RATEMCS4 0x10
|
#define DESC_RATEMCS5 0x11
|
#define DESC_RATEMCS6 0x12
|
#define DESC_RATEMCS7 0x13
|
#define DESC_RATEMCS8 0x14
|
#define DESC_RATEMCS9 0x15
|
#define DESC_RATEMCS10 0x16
|
#define DESC_RATEMCS11 0x17
|
#define DESC_RATEMCS12 0x18
|
#define DESC_RATEMCS13 0x19
|
#define DESC_RATEMCS14 0x1a
|
#define DESC_RATEMCS15 0x1b
|
#define DESC_RATEMCS16 0x1C
|
#define DESC_RATEMCS17 0x1D
|
#define DESC_RATEMCS18 0x1E
|
#define DESC_RATEMCS19 0x1F
|
#define DESC_RATEMCS20 0x20
|
#define DESC_RATEMCS21 0x21
|
#define DESC_RATEMCS22 0x22
|
#define DESC_RATEMCS23 0x23
|
#define DESC_RATEMCS24 0x24
|
#define DESC_RATEMCS25 0x25
|
#define DESC_RATEMCS26 0x26
|
#define DESC_RATEMCS27 0x27
|
#define DESC_RATEMCS28 0x28
|
#define DESC_RATEMCS29 0x29
|
#define DESC_RATEMCS30 0x2A
|
#define DESC_RATEMCS31 0x2B
|
#define DESC_RATEVHTSS1MCS0 0x2C
|
#define DESC_RATEVHTSS1MCS1 0x2D
|
#define DESC_RATEVHTSS1MCS2 0x2E
|
#define DESC_RATEVHTSS1MCS3 0x2F
|
#define DESC_RATEVHTSS1MCS4 0x30
|
#define DESC_RATEVHTSS1MCS5 0x31
|
#define DESC_RATEVHTSS1MCS6 0x32
|
#define DESC_RATEVHTSS1MCS7 0x33
|
#define DESC_RATEVHTSS1MCS8 0x34
|
#define DESC_RATEVHTSS1MCS9 0x35
|
#define DESC_RATEVHTSS2MCS0 0x36
|
#define DESC_RATEVHTSS2MCS1 0x37
|
#define DESC_RATEVHTSS2MCS2 0x38
|
#define DESC_RATEVHTSS2MCS3 0x39
|
#define DESC_RATEVHTSS2MCS4 0x3A
|
#define DESC_RATEVHTSS2MCS5 0x3B
|
#define DESC_RATEVHTSS2MCS6 0x3C
|
#define DESC_RATEVHTSS2MCS7 0x3D
|
#define DESC_RATEVHTSS2MCS8 0x3E
|
#define DESC_RATEVHTSS2MCS9 0x3F
|
#define DESC_RATEVHTSS3MCS0 0x40
|
#define DESC_RATEVHTSS3MCS1 0x41
|
#define DESC_RATEVHTSS3MCS2 0x42
|
#define DESC_RATEVHTSS3MCS3 0x43
|
#define DESC_RATEVHTSS3MCS4 0x44
|
#define DESC_RATEVHTSS3MCS5 0x45
|
#define DESC_RATEVHTSS3MCS6 0x46
|
#define DESC_RATEVHTSS3MCS7 0x47
|
#define DESC_RATEVHTSS3MCS8 0x48
|
#define DESC_RATEVHTSS3MCS9 0x49
|
#define DESC_RATEVHTSS4MCS0 0x4A
|
#define DESC_RATEVHTSS4MCS1 0x4B
|
#define DESC_RATEVHTSS4MCS2 0x4C
|
#define DESC_RATEVHTSS4MCS3 0x4D
|
#define DESC_RATEVHTSS4MCS4 0x4E
|
#define DESC_RATEVHTSS4MCS5 0x4F
|
#define DESC_RATEVHTSS4MCS6 0x50
|
#define DESC_RATEVHTSS4MCS7 0x51
|
#define DESC_RATEVHTSS4MCS8 0x52
|
#define DESC_RATEVHTSS4MCS9 0x53
|
|
#define HDATA_RATE(rate)\
|
(rate == DESC_RATE1M) ? "CCK_1M" : \
|
(rate == DESC_RATE2M) ? "CCK_2M" : \
|
(rate == DESC_RATE5_5M) ? "CCK5_5M" : \
|
(rate == DESC_RATE11M) ? "CCK_11M" : \
|
(rate == DESC_RATE6M) ? "OFDM_6M" : \
|
(rate == DESC_RATE9M) ? "OFDM_9M" : \
|
(rate == DESC_RATE12M) ? "OFDM_12M" : \
|
(rate == DESC_RATE18M) ? "OFDM_18M" : \
|
(rate == DESC_RATE24M) ? "OFDM_24M" : \
|
(rate == DESC_RATE36M) ? "OFDM_36M" : \
|
(rate == DESC_RATE48M) ? "OFDM_48M" : \
|
(rate == DESC_RATE54M) ? "OFDM_54M" : \
|
(rate == DESC_RATEMCS0) ? "MCS0" : \
|
(rate == DESC_RATEMCS1) ? "MCS1" : \
|
(rate == DESC_RATEMCS2) ? "MCS2" : \
|
(rate == DESC_RATEMCS3) ? "MCS3" : \
|
(rate == DESC_RATEMCS4) ? "MCS4" : \
|
(rate == DESC_RATEMCS5) ? "MCS5" : \
|
(rate == DESC_RATEMCS6) ? "MCS6" : \
|
(rate == DESC_RATEMCS7) ? "MCS7" : \
|
(rate == DESC_RATEMCS8) ? "MCS8" : \
|
(rate == DESC_RATEMCS9) ? "MCS9" : \
|
(rate == DESC_RATEMCS10) ? "MCS10" : \
|
(rate == DESC_RATEMCS11) ? "MCS11" : \
|
(rate == DESC_RATEMCS12) ? "MCS12" : \
|
(rate == DESC_RATEMCS13) ? "MCS13" : \
|
(rate == DESC_RATEMCS14) ? "MCS14" : \
|
(rate == DESC_RATEMCS15) ? "MCS15" : \
|
(rate == DESC_RATEVHTSS1MCS0) ? "VHTSS1MCS0" : \
|
(rate == DESC_RATEVHTSS1MCS1) ? "VHTSS1MCS1" : \
|
(rate == DESC_RATEVHTSS1MCS2) ? "VHTSS1MCS2" : \
|
(rate == DESC_RATEVHTSS1MCS3) ? "VHTSS1MCS3" : \
|
(rate == DESC_RATEVHTSS1MCS4) ? "VHTSS1MCS4" : \
|
(rate == DESC_RATEVHTSS1MCS5) ? "VHTSS1MCS5" : \
|
(rate == DESC_RATEVHTSS1MCS6) ? "VHTSS1MCS6" : \
|
(rate == DESC_RATEVHTSS1MCS7) ? "VHTSS1MCS7" : \
|
(rate == DESC_RATEVHTSS1MCS8) ? "VHTSS1MCS8" : \
|
(rate == DESC_RATEVHTSS1MCS9) ? "VHTSS1MCS9" : \
|
(rate == DESC_RATEVHTSS2MCS0) ? "VHTSS2MCS0" : \
|
(rate == DESC_RATEVHTSS2MCS1) ? "VHTSS2MCS1" : \
|
(rate == DESC_RATEVHTSS2MCS2) ? "VHTSS2MCS2" : \
|
(rate == DESC_RATEVHTSS2MCS3) ? "VHTSS2MCS3" : \
|
(rate == DESC_RATEVHTSS2MCS4) ? "VHTSS2MCS4" : \
|
(rate == DESC_RATEVHTSS2MCS5) ? "VHTSS2MCS5" : \
|
(rate == DESC_RATEVHTSS2MCS6) ? "VHTSS2MCS6" : \
|
(rate == DESC_RATEVHTSS2MCS7) ? "VHTSS2MCS7" : \
|
(rate == DESC_RATEVHTSS2MCS8) ? "VHTSS2MCS8" : \
|
(rate == DESC_RATEVHTSS2MCS9) ? "VHTSS2MCS9" : "UNKNOW"
|
|
|
enum{
|
UP_LINK,
|
DOWN_LINK,
|
};
|
typedef enum _RT_MEDIA_STATUS {
|
RT_MEDIA_DISCONNECT = 0,
|
RT_MEDIA_CONNECT = 1
|
} RT_MEDIA_STATUS;
|
|
#define MAX_DLFW_PAGE_SIZE 4096 /* @ page : 4k bytes */
|
enum FIRMWARE_SOURCE {
|
FW_SOURCE_IMG_FILE = 0,
|
FW_SOURCE_HEADER_FILE = 1, /* from header file */
|
};
|
|
/* BK, BE, VI, VO, HCCA, MANAGEMENT, COMMAND, HIGH, BEACON. */
|
/* define MAX_TX_QUEUE 9 */
|
|
#define TX_SELE_HQ BIT(0) /* High Queue */
|
#define TX_SELE_LQ BIT(1) /* Low Queue */
|
#define TX_SELE_NQ BIT(2) /* Normal Queue */
|
#define TX_SELE_EQ BIT(3) /* Extern Queue */
|
|
#define PageNum_128(_Len) (u32)(((_Len)>>7) + ((_Len)&0x7F ? 1:0))
|
#define PageNum_256(_Len) (u32)(((_Len)>>8) + ((_Len)&0xFF ? 1:0))
|
#define PageNum_512(_Len) (u32)(((_Len)>>9) + ((_Len)&0x1FF ? 1:0))
|
#define PageNum(_Len, _Size) (u32)(((_Len)/(_Size)) + ((_Len)&((_Size) - 1) ? 1:0))
|
|
|
u8 rtw_hal_data_init(struct adapter *padapter);
|
void rtw_hal_data_deinit(struct adapter *padapter);
|
|
void dump_chip_info(HAL_VERSION ChipVersion);
|
|
u8 /* return the final channel plan decision */
|
hal_com_config_channel_plan(
|
struct adapter *padapter,
|
u8 hw_channel_plan, /* channel plan from HW (efuse/eeprom) */
|
u8 sw_channel_plan, /* channel plan from SW (registry/module param) */
|
u8 def_channel_plan, /* channel plan used when the former two is invalid */
|
bool AutoLoadFail
|
);
|
|
bool
|
HAL_IsLegalChannel(
|
struct adapter *Adapter,
|
u32 Channel
|
);
|
|
u8 MRateToHwRate(u8 rate);
|
|
u8 HwRateToMRate(u8 rate);
|
|
void HalSetBrateCfg(
|
struct adapter * Adapter,
|
u8 *mBratesOS,
|
u16 *pBrateCfg);
|
|
bool
|
Hal_MappingOutPipe(
|
struct adapter *padapter,
|
u8 NumOutPipe
|
);
|
|
void hal_init_macaddr(struct adapter *adapter);
|
|
void rtw_init_hal_com_default_value(struct adapter * Adapter);
|
|
void c2h_evt_clear(struct adapter *adapter);
|
s32 c2h_evt_read_88xx(struct adapter *adapter, u8 *buf);
|
|
u8 rtw_get_mgntframe_raid(struct adapter *adapter, unsigned char network_type);
|
void rtw_hal_update_sta_rate_mask(struct adapter *padapter, struct sta_info *psta);
|
|
void hw_var_port_switch(struct adapter *adapter);
|
|
void SetHwReg(struct adapter *padapter, u8 variable, u8 *val);
|
void GetHwReg(struct adapter *padapter, u8 variable, u8 *val);
|
void rtw_hal_check_rxfifo_full(struct adapter *adapter);
|
|
u8 SetHalDefVar(struct adapter *adapter, enum HAL_DEF_VARIABLE variable,
|
void *value);
|
u8 GetHalDefVar(struct adapter *adapter, enum HAL_DEF_VARIABLE variable,
|
void *value);
|
|
bool eqNByte(u8 *str1, u8 *str2, u32 num);
|
|
bool IsHexDigit(char chTmp);
|
|
u32 MapCharToHexDigit(char chTmp);
|
|
bool GetHexValueFromString(char *szStr, u32 *pu4bVal, u32 *pu4bMove);
|
|
bool GetFractionValueFromString(char *szStr, u8 *pInteger, u8 *pFraction,
|
u32 *pu4bMove);
|
|
bool IsCommentString(char *szStr);
|
|
bool ParseQualifiedString(char *In, u32 *Start, char *Out, char LeftQualifier,
|
char RightQualifier);
|
|
bool GetU1ByteIntegerFromStringInDecimal(char *str, u8 *in);
|
|
bool isAllSpaceOrTab(u8 *data, u8 size);
|
|
void linked_info_dump(struct adapter *padapter, u8 benable);
|
#ifdef DBG_RX_SIGNAL_DISPLAY_RAW_DATA
|
void rtw_get_raw_rssi_info(void *sel, struct adapter *padapter);
|
void rtw_store_phy_info(struct adapter *padapter, union recv_frame *prframe);
|
void rtw_dump_raw_rssi_info(struct adapter *padapter);
|
#endif
|
|
#define HWSET_MAX_SIZE 512
|
|
void rtw_bb_rf_gain_offset(struct adapter *padapter);
|
|
void GetHalODMVar(struct adapter *Adapter,
|
enum HAL_ODM_VARIABLE eVariable,
|
void * pValue1,
|
void * pValue2);
|
void SetHalODMVar(
|
struct adapter * Adapter,
|
enum HAL_ODM_VARIABLE eVariable,
|
void * pValue1,
|
bool bSet);
|
|
#ifdef CONFIG_BACKGROUND_NOISE_MONITOR
|
struct noise_info {
|
u8 bPauseDIG;
|
u8 IGIValue;
|
u32 max_time;/* ms */
|
u8 chan;
|
};
|
#endif
|
|
#endif /* __HAL_COMMON_H__ */
|