Commit 2461c7d6 authored by Larry Finger's avatar Larry Finger Committed by John W. Linville

rtlwifi: Update header file

The latest version of the vendor driver for the rtlwifi family
includes many changes. This patch incorporates the difference
in the main header file.
Signed-off-by: default avatarLarry Finger <Larry.Finger@lwfinger.net>
Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
parent 8e2c406a
...@@ -135,7 +135,7 @@ enum hardware_type { ...@@ -135,7 +135,7 @@ enum hardware_type {
HARDWARE_TYPE_RTL8192CU, HARDWARE_TYPE_RTL8192CU,
HARDWARE_TYPE_RTL8192DE, HARDWARE_TYPE_RTL8192DE,
HARDWARE_TYPE_RTL8192DU, HARDWARE_TYPE_RTL8192DU,
HARDWARE_TYPE_RTL8723E, HARDWARE_TYPE_RTL8723AE,
HARDWARE_TYPE_RTL8723U, HARDWARE_TYPE_RTL8723U,
/* keep it last */ /* keep it last */
...@@ -389,6 +389,7 @@ enum rt_enc_alg { ...@@ -389,6 +389,7 @@ enum rt_enc_alg {
RSERVED_ENCRYPTION = 3, RSERVED_ENCRYPTION = 3,
AESCCMP_ENCRYPTION = 4, AESCCMP_ENCRYPTION = 4,
WEP104_ENCRYPTION = 5, WEP104_ENCRYPTION = 5,
AESCMAC_ENCRYPTION = 6, /*IEEE802.11w */
}; };
enum rtl_hal_state { enum rtl_hal_state {
...@@ -873,6 +874,7 @@ struct rtl_phy { ...@@ -873,6 +874,7 @@ struct rtl_phy {
u32 adda_backup[16]; u32 adda_backup[16];
u32 iqk_mac_backup[IQK_MAC_REG_NUM]; u32 iqk_mac_backup[IQK_MAC_REG_NUM];
u32 iqk_bb_backup[10]; u32 iqk_bb_backup[10];
bool iqk_initialized;
/* Dual mac */ /* Dual mac */
bool need_iqk; bool need_iqk;
...@@ -910,6 +912,8 @@ struct rtl_phy { ...@@ -910,6 +912,8 @@ struct rtl_phy {
#define RTL_AGG_OPERATIONAL 3 #define RTL_AGG_OPERATIONAL 3
#define RTL_AGG_OFF 0 #define RTL_AGG_OFF 0
#define RTL_AGG_ON 1 #define RTL_AGG_ON 1
#define RTL_RX_AGG_START 1
#define RTL_RX_AGG_STOP 0
#define RTL_AGG_EMPTYING_HW_QUEUE_ADDBA 2 #define RTL_AGG_EMPTYING_HW_QUEUE_ADDBA 2
#define RTL_AGG_EMPTYING_HW_QUEUE_DELBA 3 #define RTL_AGG_EMPTYING_HW_QUEUE_DELBA 3
...@@ -920,6 +924,7 @@ struct rtl_ht_agg { ...@@ -920,6 +924,7 @@ struct rtl_ht_agg {
u64 bitmap; u64 bitmap;
u32 rate_n_flags; u32 rate_n_flags;
u8 agg_state; u8 agg_state;
u8 rx_agg_state;
}; };
struct rtl_tid_data { struct rtl_tid_data {
...@@ -927,11 +932,19 @@ struct rtl_tid_data { ...@@ -927,11 +932,19 @@ struct rtl_tid_data {
struct rtl_ht_agg agg; struct rtl_ht_agg agg;
}; };
struct rssi_sta {
long undecorated_smoothed_pwdb;
};
struct rtl_sta_info { struct rtl_sta_info {
struct list_head list;
u8 ratr_index; u8 ratr_index;
u8 wireless_mode; u8 wireless_mode;
u8 mimo_ps; u8 mimo_ps;
struct rtl_tid_data tids[MAX_TID_COUNT]; struct rtl_tid_data tids[MAX_TID_COUNT];
/* just used for ap adhoc or mesh*/
struct rssi_sta rssi_stat;
} __packed; } __packed;
struct rtl_priv; struct rtl_priv;
...@@ -1034,6 +1047,11 @@ struct rtl_mac { ...@@ -1034,6 +1047,11 @@ struct rtl_mac {
struct rtl_hal { struct rtl_hal {
struct ieee80211_hw *hw; struct ieee80211_hw *hw;
bool up_first_time;
bool first_init;
bool being_init_adapter;
bool bbrf_ready;
enum intf_type interface; enum intf_type interface;
u16 hw_type; /*92c or 92d or 92s and so on */ u16 hw_type; /*92c or 92d or 92s and so on */
u8 ic_class; u8 ic_class;
...@@ -1048,6 +1066,7 @@ struct rtl_hal { ...@@ -1048,6 +1066,7 @@ struct rtl_hal {
u16 fw_subversion; u16 fw_subversion;
bool h2c_setinprogress; bool h2c_setinprogress;
u8 last_hmeboxnum; u8 last_hmeboxnum;
bool fw_ready;
/*Reserve page start offset except beacon in TxQ. */ /*Reserve page start offset except beacon in TxQ. */
u8 fw_rsvdpage_startoffset; u8 fw_rsvdpage_startoffset;
u8 h2c_txcmd_seq; u8 h2c_txcmd_seq;
...@@ -1083,6 +1102,8 @@ struct rtl_hal { ...@@ -1083,6 +1102,8 @@ struct rtl_hal {
bool load_imrandiqk_setting_for2g; bool load_imrandiqk_setting_for2g;
bool disable_amsdu_8k; bool disable_amsdu_8k;
bool master_of_dmsp;
bool slave_of_dmsp;
}; };
struct rtl_security { struct rtl_security {
...@@ -1144,6 +1165,9 @@ struct rtl_dm { ...@@ -1144,6 +1165,9 @@ struct rtl_dm {
bool disable_tx_int; bool disable_tx_int;
char ofdm_index[2]; char ofdm_index[2];
char cck_index; char cck_index;
/* DMSP */
bool supp_phymode_switch;
}; };
#define EFUSE_MAX_LOGICAL_SIZE 256 #define EFUSE_MAX_LOGICAL_SIZE 256
...@@ -1337,6 +1361,10 @@ struct rtl_stats { ...@@ -1337,6 +1361,10 @@ struct rtl_stats {
}; };
struct rt_link_detect { struct rt_link_detect {
/* count for roaming */
u32 bcn_rx_inperiod;
u32 roam_times;
u32 num_tx_in4period[4]; u32 num_tx_in4period[4];
u32 num_rx_in4period[4]; u32 num_rx_in4period[4];
...@@ -1344,6 +1372,8 @@ struct rt_link_detect { ...@@ -1344,6 +1372,8 @@ struct rt_link_detect {
u32 num_rx_inperiod; u32 num_rx_inperiod;
bool busytraffic; bool busytraffic;
bool tx_busy_traffic;
bool rx_busy_traffic;
bool higher_busytraffic; bool higher_busytraffic;
bool higher_busyrxtraffic; bool higher_busyrxtraffic;
...@@ -1455,7 +1485,12 @@ struct rtl_hal_ops { ...@@ -1455,7 +1485,12 @@ struct rtl_hal_ops {
u32 regaddr, u32 bitmask); u32 regaddr, u32 bitmask);
void (*set_rfreg) (struct ieee80211_hw *hw, enum radio_path rfpath, void (*set_rfreg) (struct ieee80211_hw *hw, enum radio_path rfpath,
u32 regaddr, u32 bitmask, u32 data); u32 regaddr, u32 bitmask, u32 data);
void (*allow_all_destaddr)(struct ieee80211_hw *hw,
bool allow_all_da, bool write_into_reg);
void (*linked_set_reg) (struct ieee80211_hw *hw); void (*linked_set_reg) (struct ieee80211_hw *hw);
void (*check_switch_to_dmdp) (struct ieee80211_hw *hw);
void (*dualmac_easy_concurrent) (struct ieee80211_hw *hw);
void (*dualmac_switch_to_dmdp) (struct ieee80211_hw *hw);
bool (*phy_rf6052_config) (struct ieee80211_hw *hw); bool (*phy_rf6052_config) (struct ieee80211_hw *hw);
void (*phy_rf6052_set_cck_txpower) (struct ieee80211_hw *hw, void (*phy_rf6052_set_cck_txpower) (struct ieee80211_hw *hw,
u8 *powerlevel); u8 *powerlevel);
...@@ -1475,6 +1510,8 @@ struct rtl_intf_ops { ...@@ -1475,6 +1510,8 @@ struct rtl_intf_ops {
void (*read_efuse_byte)(struct ieee80211_hw *hw, u16 _offset, u8 *pbuf); void (*read_efuse_byte)(struct ieee80211_hw *hw, u16 _offset, u8 *pbuf);
int (*adapter_start) (struct ieee80211_hw *hw); int (*adapter_start) (struct ieee80211_hw *hw);
void (*adapter_stop) (struct ieee80211_hw *hw); void (*adapter_stop) (struct ieee80211_hw *hw);
bool (*check_buddy_priv)(struct ieee80211_hw *hw,
struct rtl_priv **buddy_priv);
int (*adapter_tx) (struct ieee80211_hw *hw, int (*adapter_tx) (struct ieee80211_hw *hw,
struct ieee80211_sta *sta, struct ieee80211_sta *sta,
...@@ -1559,11 +1596,16 @@ struct rtl_locks { ...@@ -1559,11 +1596,16 @@ struct rtl_locks {
spinlock_t h2c_lock; spinlock_t h2c_lock;
spinlock_t rf_ps_lock; spinlock_t rf_ps_lock;
spinlock_t rf_lock; spinlock_t rf_lock;
spinlock_t lps_lock;
spinlock_t waitq_lock; spinlock_t waitq_lock;
spinlock_t entry_list_lock;
spinlock_t usb_lock; spinlock_t usb_lock;
/*Dual mac*/ /*Dual mac*/
spinlock_t cck_and_rw_pagea_lock; spinlock_t cck_and_rw_pagea_lock;
/*Easy concurrent*/
spinlock_t check_sendpkt_lock;
}; };
struct rtl_works { struct rtl_works {
...@@ -1571,6 +1613,7 @@ struct rtl_works { ...@@ -1571,6 +1613,7 @@ struct rtl_works {
/*timer */ /*timer */
struct timer_list watchdog_timer; struct timer_list watchdog_timer;
struct timer_list dualmac_easyconcurrent_retrytimer;
/*task */ /*task */
struct tasklet_struct irq_tasklet; struct tasklet_struct irq_tasklet;
...@@ -1598,6 +1641,31 @@ struct rtl_debug { ...@@ -1598,6 +1641,31 @@ struct rtl_debug {
char proc_name[20]; char proc_name[20];
}; };
#define MIMO_PS_STATIC 0
#define MIMO_PS_DYNAMIC 1
#define MIMO_PS_NOLIMIT 3
struct rtl_dualmac_easy_concurrent_ctl {
enum band_type currentbandtype_backfordmdp;
bool close_bbandrf_for_dmsp;
bool change_to_dmdp;
bool change_to_dmsp;
bool switch_in_process;
};
struct rtl_dmsp_ctl {
bool activescan_for_slaveofdmsp;
bool scan_for_anothermac_fordmsp;
bool scan_for_itself_fordmsp;
bool writedig_for_anothermacofdmsp;
u32 curdigvalue_for_anothermacofdmsp;
bool changecckpdstate_for_anothermacofdmsp;
u8 curcckpdstate_for_anothermacofdmsp;
bool changetxhighpowerlvl_for_anothermacofdmsp;
u8 curtxhighlvl_for_anothermacofdmsp;
long rssivalmin_for_anothermacofdmsp;
};
struct ps_t { struct ps_t {
u8 pre_ccastate; u8 pre_ccastate;
u8 cur_ccasate; u8 cur_ccasate;
...@@ -1657,8 +1725,20 @@ struct dig_t { ...@@ -1657,8 +1725,20 @@ struct dig_t {
char backoffval_range_min; char backoffval_range_min;
}; };
struct rtl_global_var {
/* from this list we can get
* other adapter's rtl_priv */
struct list_head glb_priv_list;
spinlock_t glb_list_lock;
};
struct rtl_priv { struct rtl_priv {
struct completion firmware_loading_complete; struct completion firmware_loading_complete;
struct list_head list;
struct rtl_priv *buddy_priv;
struct rtl_global_var *glb_var;
struct rtl_dualmac_easy_concurrent_ctl easy_concurrent_ctl;
struct rtl_dmsp_ctl dmsp_ctl;
struct rtl_locks locks; struct rtl_locks locks;
struct rtl_works works; struct rtl_works works;
struct rtl_mac mac80211; struct rtl_mac mac80211;
...@@ -1679,6 +1759,9 @@ struct rtl_priv { ...@@ -1679,6 +1759,9 @@ struct rtl_priv {
struct rtl_rate_priv *rate_priv; struct rtl_rate_priv *rate_priv;
/* sta entry list for ap adhoc or mesh */
struct list_head entry_list;
struct rtl_debug dbg; struct rtl_debug dbg;
int max_fw_size; int max_fw_size;
...@@ -2105,4 +2188,11 @@ static inline struct ieee80211_sta *get_sta(struct ieee80211_hw *hw, ...@@ -2105,4 +2188,11 @@ static inline struct ieee80211_sta *get_sta(struct ieee80211_hw *hw,
return ieee80211_find_sta(vif, bssid); return ieee80211_find_sta(vif, bssid);
} }
static inline struct ieee80211_sta *rtl_find_sta(struct ieee80211_hw *hw,
u8 *mac_addr)
{
struct rtl_mac *mac = rtl_mac(rtl_priv(hw));
return ieee80211_find_sta(mac->vif, mac_addr);
}
#endif #endif
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment