Commit 9afa2e44 authored by Larry Finger's avatar Larry Finger Committed by John W. Linville

rtlwifi: Modify base.{c,h} for new drivers

Signed-off-by: default avatarLarry Finger <Larry.Finger@lwfinger.net>
Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
parent f7953b2a
This diff is collapsed.
...@@ -11,10 +11,6 @@ ...@@ -11,10 +11,6 @@
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
* more details. * more details.
* *
* You should have received a copy of the GNU General Public License along with
* this program; if not, write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
*
* The full GNU General Public License is included in this distribution in the * The full GNU General Public License is included in this distribution in the
* file called LICENSE. * file called LICENSE.
* *
...@@ -41,7 +37,7 @@ enum ap_peer { ...@@ -41,7 +37,7 @@ enum ap_peer {
PEER_MARV = 7, PEER_MARV = 7,
PEER_AIRGO = 9, PEER_AIRGO = 9,
PEER_MAX = 10, PEER_MAX = 10,
} ; };
#define RTL_DUMMY_OFFSET 0 #define RTL_DUMMY_OFFSET 0
#define RTL_DUMMY_UNIT 8 #define RTL_DUMMY_UNIT 8
...@@ -55,6 +51,16 @@ enum ap_peer { ...@@ -55,6 +51,16 @@ enum ap_peer {
#define MAX_BIT_RATE_40MHZ_MCS15 300 /* Mbps */ #define MAX_BIT_RATE_40MHZ_MCS15 300 /* Mbps */
#define MAX_BIT_RATE_40MHZ_MCS7 150 /* Mbps */ #define MAX_BIT_RATE_40MHZ_MCS7 150 /* Mbps */
#define MAX_BIT_RATE_SHORT_GI_2NSS_80MHZ_MCS9 867 /* Mbps */
#define MAX_BIT_RATE_SHORT_GI_2NSS_80MHZ_MCS7 650 /* Mbps */
#define MAX_BIT_RATE_LONG_GI_2NSS_80MHZ_MCS9 780 /* Mbps */
#define MAX_BIT_RATE_LONG_GI_2NSS_80MHZ_MCS7 585 /* Mbps */
#define MAX_BIT_RATE_SHORT_GI_1NSS_80MHZ_MCS9 434 /* Mbps */
#define MAX_BIT_RATE_SHORT_GI_1NSS_80MHZ_MCS7 325 /* Mbps */
#define MAX_BIT_RATE_LONG_GI_1NSS_80MHZ_MCS9 390 /* Mbps */
#define MAX_BIT_RATE_LONG_GI_1NSS_80MHZ_MCS7 293 /* Mbps */
#define RTL_RATE_COUNT_LEGACY 12 #define RTL_RATE_COUNT_LEGACY 12
#define RTL_CHANNEL_COUNT 14 #define RTL_CHANNEL_COUNT 14
...@@ -78,9 +84,9 @@ enum ap_peer { ...@@ -78,9 +84,9 @@ enum ap_peer {
#define SET_80211_PS_POLL_AID(_hdr, _val) \ #define SET_80211_PS_POLL_AID(_hdr, _val) \
(*(u16 *)((u8 *)(_hdr) + 2) = _val) (*(u16 *)((u8 *)(_hdr) + 2) = _val)
#define SET_80211_PS_POLL_BSSID(_hdr, _val) \ #define SET_80211_PS_POLL_BSSID(_hdr, _val) \
memcpy(((u8 *)(_hdr)) + 4, (u8 *)(_val), ETH_ALEN) ether_addr_copy(((u8 *)(_hdr)) + 4, (u8 *)(_val))
#define SET_80211_PS_POLL_TA(_hdr, _val) \ #define SET_80211_PS_POLL_TA(_hdr, _val) \
memcpy(((u8 *)(_hdr)) + 10, (u8 *)(_val), ETH_ALEN) ether_addr_copy(((u8 *)(_hdr))+10, (u8 *)(_val))
#define SET_80211_HDR_DURATION(_hdr, _val) \ #define SET_80211_HDR_DURATION(_hdr, _val) \
(*(u16 *)((u8 *)(_hdr) + FRAME_OFFSET_DURATION) = le16_to_cpu(_val)) (*(u16 *)((u8 *)(_hdr) + FRAME_OFFSET_DURATION) = le16_to_cpu(_val))
...@@ -113,23 +119,27 @@ void rtl_init_rx_config(struct ieee80211_hw *hw); ...@@ -113,23 +119,27 @@ void rtl_init_rx_config(struct ieee80211_hw *hw);
void rtl_init_rfkill(struct ieee80211_hw *hw); void rtl_init_rfkill(struct ieee80211_hw *hw);
void rtl_deinit_rfkill(struct ieee80211_hw *hw); void rtl_deinit_rfkill(struct ieee80211_hw *hw);
void rtl_beacon_statistic(struct ieee80211_hw *hw, struct sk_buff *skb); void rtl_watch_dog_timer_callback(unsigned long data);
void rtl_deinit_deferred_work(struct ieee80211_hw *hw); void rtl_deinit_deferred_work(struct ieee80211_hw *hw);
bool rtl_action_proc(struct ieee80211_hw *hw, struct sk_buff *skb, u8 is_tx); bool rtl_action_proc(struct ieee80211_hw *hw, struct sk_buff *skb, u8 is_tx);
int rtlwifi_rate_mapping(struct ieee80211_hw *hw,
bool isht, u8 desc_rate, bool first_ampdu);
bool rtl_tx_mgmt_proc(struct ieee80211_hw *hw, struct sk_buff *skb);
u8 rtl_is_special_data(struct ieee80211_hw *hw, struct sk_buff *skb, u8 is_tx); u8 rtl_is_special_data(struct ieee80211_hw *hw, struct sk_buff *skb, u8 is_tx);
void rtl_beacon_statistic(struct ieee80211_hw *hw, struct sk_buff *skb);
void rtl_watch_dog_timer_callback(unsigned long data); void rtl_watch_dog_timer_callback(unsigned long data);
int rtl_tx_agg_start(struct ieee80211_hw *hw, struct ieee80211_vif *vif, int rtl_tx_agg_start(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
struct ieee80211_sta *sta, u16 tid, u16 *ssn); struct ieee80211_sta *sta, u16 tid, u16 *ssn);
int rtl_tx_agg_stop(struct ieee80211_hw *hw, struct ieee80211_vif *vif, int rtl_tx_agg_stop(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
struct ieee80211_sta *sta, u16 tid);
int rtl_tx_agg_oper(struct ieee80211_hw *hw,
struct ieee80211_sta *sta, u16 tid);
int rtl_rx_agg_start(struct ieee80211_hw *hw,
struct ieee80211_sta *sta, u16 tid);
int rtl_rx_agg_stop(struct ieee80211_hw *hw,
struct ieee80211_sta *sta, u16 tid); struct ieee80211_sta *sta, u16 tid);
int rtl_tx_agg_oper(struct ieee80211_hw *hw, struct ieee80211_sta *sta,
u16 tid);
int rtl_rx_agg_start(struct ieee80211_hw *hw, struct ieee80211_sta *sta,
u16 tid);
int rtl_rx_agg_stop(struct ieee80211_hw *hw, struct ieee80211_sta *sta,
u16 tid);
void rtl_watchdog_wq_callback(void *data); void rtl_watchdog_wq_callback(void *data);
void rtl_fwevt_wq_callback(void *data); void rtl_fwevt_wq_callback(void *data);
...@@ -139,19 +149,14 @@ void rtl_get_tcb_desc(struct ieee80211_hw *hw, ...@@ -139,19 +149,14 @@ void rtl_get_tcb_desc(struct ieee80211_hw *hw,
struct sk_buff *skb, struct rtl_tcb_desc *tcb_desc); struct sk_buff *skb, struct rtl_tcb_desc *tcb_desc);
int rtl_send_smps_action(struct ieee80211_hw *hw, int rtl_send_smps_action(struct ieee80211_hw *hw,
struct ieee80211_sta *sta, struct ieee80211_sta *sta,
enum ieee80211_smps_mode smps); enum ieee80211_smps_mode smps);
u8 *rtl_find_ie(u8 *data, unsigned int len, u8 ie); u8 *rtl_find_ie(u8 *data, unsigned int len, u8 ie);
void rtl_recognize_peer(struct ieee80211_hw *hw, u8 *data, unsigned int len); void rtl_recognize_peer(struct ieee80211_hw *hw, u8 *data, unsigned int len);
u8 rtl_tid_to_ac(u8 tid); u8 rtl_tid_to_ac(u8 tid);
extern struct attribute_group rtl_attribute_group; extern struct attribute_group rtl_attribute_group;
void rtl_easy_concurrent_retrytimer_callback(unsigned long data); void rtl_easy_concurrent_retrytimer_callback(unsigned long data);
extern struct rtl_global_var rtl_global_var; extern struct rtl_global_var rtl_global_var;
int rtlwifi_rate_mapping(struct ieee80211_hw *hw,
bool isht, u8 desc_rate, bool first_ampdu);
bool rtl_tx_mgmt_proc(struct ieee80211_hw *hw, struct sk_buff *skb);
struct sk_buff *rtl_make_del_ba(struct ieee80211_hw *hw,
u8 *sa, u8 *bssid, u16 tid);
void rtl_phy_scan_operation_backup(struct ieee80211_hw *hw, u8 operation); void rtl_phy_scan_operation_backup(struct ieee80211_hw *hw, u8 operation);
#endif #endif
...@@ -691,6 +691,13 @@ enum rtl_var_map { ...@@ -691,6 +691,13 @@ enum rtl_var_map {
RTL_RC_HT_RATEMCS7, RTL_RC_HT_RATEMCS7,
RTL_RC_HT_RATEMCS15, RTL_RC_HT_RATEMCS15,
RTL_RC_VHT_RATE_1SS_MCS7,
RTL_RC_VHT_RATE_1SS_MCS8,
RTL_RC_VHT_RATE_1SS_MCS9,
RTL_RC_VHT_RATE_2SS_MCS7,
RTL_RC_VHT_RATE_2SS_MCS8,
RTL_RC_VHT_RATE_2SS_MCS9,
/*keep it last */ /*keep it last */
RTL_VAR_MAP_MAX, RTL_VAR_MAP_MAX,
}; };
...@@ -1924,7 +1931,7 @@ struct rt_link_detect { ...@@ -1924,7 +1931,7 @@ struct rt_link_detect {
}; };
struct rtl_tcb_desc { struct rtl_tcb_desc {
u8 packet_bw:1; u8 packet_bw:2;
u8 multicast:1; u8 multicast:1;
u8 broadcast:1; u8 broadcast:1;
...@@ -2118,9 +2125,13 @@ struct rtl_mod_params { ...@@ -2118,9 +2125,13 @@ struct rtl_mod_params {
/* default: 1 = using linked fw power save */ /* default: 1 = using linked fw power save */
bool fwctrl_lps; bool fwctrl_lps;
/* default: 0 = not using MSI interrupts mode */ /* default: 0 = not using MSI interrupts mode
/* submodules should set their own defalut value */ * submodules should set their own default value
*/
bool msi_support; bool msi_support;
/* default 0: 1 means disable */
bool disable_watchdog;
}; };
struct rtl_hal_usbint_cfg { struct rtl_hal_usbint_cfg {
...@@ -2503,6 +2514,9 @@ struct rtl_priv { ...@@ -2503,6 +2514,9 @@ struct rtl_priv {
*/ */
bool use_new_trx_flow; bool use_new_trx_flow;
#ifdef CONFIG_PM
struct wiphy_wowlan_support wowlan;
#endif
/*This must be the last item so /*This must be the last item so
that it points to the data allocated that it points to the data allocated
beyond this structure like: beyond this structure like:
......
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