diff options
| author | Larry Finger <Larry.Finger@lwfinger.net> | 2012-08-31 15:39:01 -0500 | 
|---|---|---|
| committer | John W. Linville <linville@tuxdriver.com> | 2012-09-07 15:05:57 -0400 | 
| commit | 2461c7d60f9f3821274e4acf9019cba8b82c94b5 (patch) | |
| tree | 684aea7e2949d5e9e9a5e9bc1791a7088b9c6b48 | |
| parent | 8e2c406a5bd3923995f298f32eef25d5c2bcd4a8 (diff) | |
| download | olio-linux-3.10-2461c7d60f9f3821274e4acf9019cba8b82c94b5.tar.xz olio-linux-3.10-2461c7d60f9f3821274e4acf9019cba8b82c94b5.zip  | |
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: Larry Finger <Larry.Finger@lwfinger.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
| -rw-r--r-- | drivers/net/wireless/rtlwifi/wifi.h | 92 | 
1 files changed, 91 insertions, 1 deletions
diff --git a/drivers/net/wireless/rtlwifi/wifi.h b/drivers/net/wireless/rtlwifi/wifi.h index d4bc7859cde..f1b6bc693b0 100644 --- a/drivers/net/wireless/rtlwifi/wifi.h +++ b/drivers/net/wireless/rtlwifi/wifi.h @@ -135,7 +135,7 @@ enum hardware_type {  	HARDWARE_TYPE_RTL8192CU,  	HARDWARE_TYPE_RTL8192DE,  	HARDWARE_TYPE_RTL8192DU, -	HARDWARE_TYPE_RTL8723E, +	HARDWARE_TYPE_RTL8723AE,  	HARDWARE_TYPE_RTL8723U,  	/* keep it last */ @@ -389,6 +389,7 @@ enum rt_enc_alg {  	RSERVED_ENCRYPTION = 3,  	AESCCMP_ENCRYPTION = 4,  	WEP104_ENCRYPTION = 5, +	AESCMAC_ENCRYPTION = 6,	/*IEEE802.11w */  };  enum rtl_hal_state { @@ -873,6 +874,7 @@ struct rtl_phy {  	u32 adda_backup[16];  	u32 iqk_mac_backup[IQK_MAC_REG_NUM];  	u32 iqk_bb_backup[10]; +	bool iqk_initialized;  	/* Dual mac */  	bool need_iqk; @@ -910,6 +912,8 @@ struct rtl_phy {  #define RTL_AGG_OPERATIONAL			3  #define RTL_AGG_OFF				0  #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_DELBA		3 @@ -920,6 +924,7 @@ struct rtl_ht_agg {  	u64 bitmap;  	u32 rate_n_flags;  	u8 agg_state; +	u8 rx_agg_state;  };  struct rtl_tid_data { @@ -927,11 +932,19 @@ struct rtl_tid_data {  	struct rtl_ht_agg agg;  }; +struct rssi_sta { +	long undecorated_smoothed_pwdb; +}; +  struct rtl_sta_info { +	struct list_head list;  	u8 ratr_index;  	u8 wireless_mode;  	u8 mimo_ps;  	struct rtl_tid_data tids[MAX_TID_COUNT]; + +	/* just used for ap adhoc or mesh*/ +	struct rssi_sta rssi_stat;  } __packed;  struct rtl_priv; @@ -1034,6 +1047,11 @@ struct rtl_mac {  struct rtl_hal {  	struct ieee80211_hw *hw; +	bool up_first_time; +	bool first_init; +	bool being_init_adapter; +	bool bbrf_ready; +  	enum intf_type interface;  	u16 hw_type;		/*92c or 92d or 92s and so on */  	u8 ic_class; @@ -1048,6 +1066,7 @@ struct rtl_hal {  	u16 fw_subversion;  	bool h2c_setinprogress;  	u8 last_hmeboxnum; +	bool fw_ready;  	/*Reserve page start offset except beacon in TxQ. */  	u8 fw_rsvdpage_startoffset;  	u8 h2c_txcmd_seq; @@ -1083,6 +1102,8 @@ struct rtl_hal {  	bool load_imrandiqk_setting_for2g;  	bool disable_amsdu_8k; +	bool master_of_dmsp; +	bool slave_of_dmsp;  };  struct rtl_security { @@ -1144,6 +1165,9 @@ struct rtl_dm {  	bool disable_tx_int;  	char ofdm_index[2];  	char cck_index; + +	/* DMSP */ +	bool supp_phymode_switch;  };  #define	EFUSE_MAX_LOGICAL_SIZE			256 @@ -1337,6 +1361,10 @@ struct rtl_stats {  };  struct rt_link_detect { +	/* count for roaming */ +	u32 bcn_rx_inperiod; +	u32 roam_times; +  	u32 num_tx_in4period[4];  	u32 num_rx_in4period[4]; @@ -1344,6 +1372,8 @@ struct rt_link_detect {  	u32 num_rx_inperiod;  	bool busytraffic; +	bool tx_busy_traffic; +	bool rx_busy_traffic;  	bool higher_busytraffic;  	bool higher_busyrxtraffic; @@ -1455,7 +1485,12 @@ struct rtl_hal_ops {  			  u32 regaddr, u32 bitmask);  	void (*set_rfreg) (struct ieee80211_hw *hw, enum radio_path rfpath,  			   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 (*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);  	void (*phy_rf6052_set_cck_txpower) (struct ieee80211_hw *hw,  					    u8 *powerlevel); @@ -1475,6 +1510,8 @@ struct rtl_intf_ops {  	void (*read_efuse_byte)(struct ieee80211_hw *hw, u16 _offset, u8 *pbuf);  	int (*adapter_start) (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,  			   struct ieee80211_sta *sta, @@ -1559,11 +1596,16 @@ struct rtl_locks {  	spinlock_t h2c_lock;  	spinlock_t rf_ps_lock;  	spinlock_t rf_lock; +	spinlock_t lps_lock;  	spinlock_t waitq_lock; +	spinlock_t entry_list_lock;  	spinlock_t usb_lock;  	/*Dual mac*/  	spinlock_t cck_and_rw_pagea_lock; + +	/*Easy concurrent*/ +	spinlock_t check_sendpkt_lock;  };  struct rtl_works { @@ -1571,6 +1613,7 @@ struct rtl_works {  	/*timer */  	struct timer_list watchdog_timer; +	struct timer_list dualmac_easyconcurrent_retrytimer;  	/*task */  	struct tasklet_struct irq_tasklet; @@ -1598,6 +1641,31 @@ struct rtl_debug {  	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 {  	u8 pre_ccastate;  	u8 cur_ccasate; @@ -1657,8 +1725,20 @@ struct dig_t {  	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 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_works works;  	struct rtl_mac mac80211; @@ -1679,6 +1759,9 @@ struct rtl_priv {  	struct rtl_rate_priv *rate_priv; +	/* sta entry list for ap adhoc or mesh */ +	struct list_head entry_list; +  	struct rtl_debug dbg;  	int max_fw_size; @@ -2105,4 +2188,11 @@ static inline struct ieee80211_sta *get_sta(struct ieee80211_hw *hw,  	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  |