staging: rtl819su: merge changes in softmac_ps_mgmt_xmit()
Signed-off-by: Florian Schilhabel <florian.c.schilhabel@googlemail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This commit is contained in:
Родитель
e2e8649318
Коммит
ab81f74e4a
|
@ -316,16 +316,24 @@ inline void softmac_ps_mgmt_xmit(struct sk_buff *skb, struct ieee80211_device *i
|
||||||
short single = ieee->softmac_features & IEEE_SOFTMAC_SINGLE_QUEUE;
|
short single = ieee->softmac_features & IEEE_SOFTMAC_SINGLE_QUEUE;
|
||||||
struct ieee80211_hdr_3addr *header =
|
struct ieee80211_hdr_3addr *header =
|
||||||
(struct ieee80211_hdr_3addr *) skb->data;
|
(struct ieee80211_hdr_3addr *) skb->data;
|
||||||
|
u16 fc,type,stype;
|
||||||
cb_desc *tcb_desc = (cb_desc *)(skb->cb + 8);
|
cb_desc *tcb_desc = (cb_desc *)(skb->cb + 8);
|
||||||
|
|
||||||
|
fc = header->frame_control;
|
||||||
|
type = WLAN_FC_GET_TYPE(fc);
|
||||||
|
stype = WLAN_FC_GET_STYPE(fc);
|
||||||
|
|
||||||
|
|
||||||
|
if(stype != IEEE80211_STYPE_PSPOLL)
|
||||||
tcb_desc->queue_index = MGNT_QUEUE;
|
tcb_desc->queue_index = MGNT_QUEUE;
|
||||||
|
else
|
||||||
|
tcb_desc->queue_index = HIGH_QUEUE;
|
||||||
tcb_desc->data_rate = MgntQuery_MgntFrameTxRate(ieee);
|
tcb_desc->data_rate = MgntQuery_MgntFrameTxRate(ieee);
|
||||||
tcb_desc->RATRIndex = 7;
|
tcb_desc->RATRIndex = 7;
|
||||||
tcb_desc->bTxDisableRateFallBack = 1;
|
tcb_desc->bTxDisableRateFallBack = 1;
|
||||||
tcb_desc->bTxUseDriverAssingedRate = 1;
|
tcb_desc->bTxUseDriverAssingedRate = 1;
|
||||||
//printk("=============>%s()\n", __FUNCTION__);
|
|
||||||
if(single){
|
if(single){
|
||||||
|
if(!(type == IEEE80211_FTYPE_CTL)) {
|
||||||
header->seq_ctrl = cpu_to_le16(ieee->seq_ctrl[0] << 4);
|
header->seq_ctrl = cpu_to_le16(ieee->seq_ctrl[0] << 4);
|
||||||
|
|
||||||
if (ieee->seq_ctrl[0] == 0xFFF)
|
if (ieee->seq_ctrl[0] == 0xFFF)
|
||||||
|
@ -333,12 +341,13 @@ inline void softmac_ps_mgmt_xmit(struct sk_buff *skb, struct ieee80211_device *i
|
||||||
else
|
else
|
||||||
ieee->seq_ctrl[0]++;
|
ieee->seq_ctrl[0]++;
|
||||||
|
|
||||||
|
}
|
||||||
/* avoid watchdog triggers */
|
/* avoid watchdog triggers */
|
||||||
// ieee->dev->trans_start = jiffies;
|
// ieee->dev->trans_start = jiffies;
|
||||||
ieee->softmac_data_hard_start_xmit(skb,ieee->dev,ieee->basic_rate);
|
ieee->softmac_data_hard_start_xmit(skb,ieee->dev,ieee->basic_rate);
|
||||||
|
|
||||||
}else{
|
}else{
|
||||||
|
if(!(type == IEEE80211_FTYPE_CTL)) {
|
||||||
header->seq_ctrl = cpu_to_le16(ieee->seq_ctrl[0] << 4);
|
header->seq_ctrl = cpu_to_le16(ieee->seq_ctrl[0] << 4);
|
||||||
|
|
||||||
if (ieee->seq_ctrl[0] == 0xFFF)
|
if (ieee->seq_ctrl[0] == 0xFFF)
|
||||||
|
@ -346,6 +355,7 @@ inline void softmac_ps_mgmt_xmit(struct sk_buff *skb, struct ieee80211_device *i
|
||||||
else
|
else
|
||||||
ieee->seq_ctrl[0]++;
|
ieee->seq_ctrl[0]++;
|
||||||
|
|
||||||
|
}
|
||||||
ieee->softmac_hard_start_xmit(skb,ieee->dev);
|
ieee->softmac_hard_start_xmit(skb,ieee->dev);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Загрузка…
Ссылка в новой задаче