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

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
Loading
Loading
Loading
Loading
+91 −1
Original line number Diff line number Diff line
@@ -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