Commit d93cdee9 authored by Chaoming_Li's avatar Chaoming_Li Committed by John W. Linville

rtlwifi: Convert usb routines for addition of rtl8192se and rtl8192de

Convert usb routines for addition of RTL8192SE and RTL8192DE code
Signed-off-by: default avatarChaoming_Li <chaoming_li@realsil.com.cn>
Signed-off-by: default avatarLarry Finger <Larry.Finger@lwfinger.net>
Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
parent 81b29045
...@@ -1569,10 +1569,8 @@ int rtl_pci_tx(struct ieee80211_hw *hw, struct sk_buff *skb, ...@@ -1569,10 +1569,8 @@ int rtl_pci_tx(struct ieee80211_hw *hw, struct sk_buff *skb,
if (ieee80211_is_data(fc)) if (ieee80211_is_data(fc))
rtlpriv->cfg->ops->led_control(hw, LED_CTL_TX); rtlpriv->cfg->ops->led_control(hw, LED_CTL_TX);
#if 0 /* temporary */
rtlpriv->cfg->ops->fill_tx_desc(hw, hdr, (u8 *)pdesc, rtlpriv->cfg->ops->fill_tx_desc(hw, hdr, (u8 *)pdesc,
info, skb, hw_queue, ptcb_desc); info, skb, hw_queue, ptcb_desc);
#endif
__skb_queue_tail(&ring->queue, skb); __skb_queue_tail(&ring->queue, skb);
......
...@@ -852,6 +852,7 @@ static void _rtl_usb_tx_preprocess(struct ieee80211_hw *hw, struct sk_buff *skb, ...@@ -852,6 +852,7 @@ static void _rtl_usb_tx_preprocess(struct ieee80211_hw *hw, struct sk_buff *skb,
struct rtl_mac *mac = rtl_mac(rtl_priv(hw)); struct rtl_mac *mac = rtl_mac(rtl_priv(hw));
struct ieee80211_tx_info *info = IEEE80211_SKB_CB(skb); struct ieee80211_tx_info *info = IEEE80211_SKB_CB(skb);
struct rtl_tx_desc *pdesc = NULL; struct rtl_tx_desc *pdesc = NULL;
struct rtl_tcb_desc tcb_desc;
struct ieee80211_hdr *hdr = (struct ieee80211_hdr *)(skb->data); struct ieee80211_hdr *hdr = (struct ieee80211_hdr *)(skb->data);
__le16 fc = hdr->frame_control; __le16 fc = hdr->frame_control;
u8 *pda_addr = hdr->addr1; u8 *pda_addr = hdr->addr1;
...@@ -860,6 +861,17 @@ static void _rtl_usb_tx_preprocess(struct ieee80211_hw *hw, struct sk_buff *skb, ...@@ -860,6 +861,17 @@ static void _rtl_usb_tx_preprocess(struct ieee80211_hw *hw, struct sk_buff *skb,
u8 tid = 0; u8 tid = 0;
u16 seq_number = 0; u16 seq_number = 0;
if (ieee80211_is_auth(fc)) {
RT_TRACE(rtlpriv, COMP_SEND, DBG_DMESG, ("MAC80211_LINKING\n"));
rtl_ips_nic_on(hw);
}
if (rtlpriv->psc.sw_ps_enabled) {
if (ieee80211_is_data(fc) && !ieee80211_is_nullfunc(fc) &&
!ieee80211_has_pm(fc))
hdr->frame_control |= cpu_to_le16(IEEE80211_FCTL_PM);
}
rtl_action_proc(hw, skb, true); rtl_action_proc(hw, skb, true);
if (is_multicast_ether_addr(pda_addr)) if (is_multicast_ether_addr(pda_addr))
rtlpriv->stats.txbytesmulticast += skb->len; rtlpriv->stats.txbytesmulticast += skb->len;
...@@ -876,7 +888,7 @@ static void _rtl_usb_tx_preprocess(struct ieee80211_hw *hw, struct sk_buff *skb, ...@@ -876,7 +888,7 @@ static void _rtl_usb_tx_preprocess(struct ieee80211_hw *hw, struct sk_buff *skb,
seq_number <<= 4; seq_number <<= 4;
} }
rtlpriv->cfg->ops->fill_tx_desc(hw, hdr, (u8 *)pdesc, info, skb, rtlpriv->cfg->ops->fill_tx_desc(hw, hdr, (u8 *)pdesc, info, skb,
hw_queue); hw_queue, &tcb_desc);
if (!ieee80211_has_morefrags(hdr->frame_control)) { if (!ieee80211_has_morefrags(hdr->frame_control)) {
if (qc) if (qc)
mac->tids[tid].seq_number = seq_number; mac->tids[tid].seq_number = seq_number;
......
...@@ -1378,18 +1378,11 @@ struct rtl_hal_ops { ...@@ -1378,18 +1378,11 @@ struct rtl_hal_ops {
void (*update_rate_table) (struct ieee80211_hw *hw); void (*update_rate_table) (struct ieee80211_hw *hw);
#endif #endif
void (*update_rate_mask) (struct ieee80211_hw *hw, u8 rssi_level); void (*update_rate_mask) (struct ieee80211_hw *hw, u8 rssi_level);
#if 0 /* temporary */
void (*fill_tx_desc) (struct ieee80211_hw *hw, void (*fill_tx_desc) (struct ieee80211_hw *hw,
struct ieee80211_hdr *hdr, u8 *pdesc_tx, struct ieee80211_hdr *hdr, u8 *pdesc_tx,
struct ieee80211_tx_info *info, struct ieee80211_tx_info *info,
struct sk_buff *skb, u8 hw_queue, struct sk_buff *skb, u8 hw_queue,
struct rtl_tcb_desc *ptcb_desc); struct rtl_tcb_desc *ptcb_desc);
#else
void (*fill_tx_desc) (struct ieee80211_hw *hw,
struct ieee80211_hdr *hdr, u8 *pdesc_tx,
struct ieee80211_tx_info *info,
struct sk_buff *skb, unsigned int queue_index);
#endif
void (*fill_fake_txdesc) (struct ieee80211_hw *hw, u8 *pDesc, void (*fill_fake_txdesc) (struct ieee80211_hw *hw, u8 *pDesc,
u32 buffer_len, bool bIsPsPoll); u32 buffer_len, bool bIsPsPoll);
void (*fill_tx_cmddesc) (struct ieee80211_hw *hw, u8 *pdesc, void (*fill_tx_cmddesc) (struct ieee80211_hw *hw, u8 *pdesc,
......
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