rsi: immediate wakeup bit and priority for TX command packets

For all TX command packets immediate wakeup bit needs to be
set in descriptor. This will make sure device will wakeup if it
is in any sleep state. Priority of the packet is also set.

Signed-off-by: Prameela Rani Garnepudi <prameela.j04cs@gmail.com>
Signed-off-by: Amitkumar Karwar <amit.karwar@redpinesignals.com>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
This commit is contained in:
Prameela Rani Garnepudi 2017-07-10 18:10:33 +05:30 committed by Kalle Valo
parent 6c8ab76d6a
commit 9a629fafe7
2 changed files with 4 additions and 0 deletions

View File

@ -266,11 +266,14 @@ static int rsi_send_internal_mgmt_frame(struct rsi_common *common,
struct sk_buff *skb) struct sk_buff *skb)
{ {
struct skb_info *tx_params; struct skb_info *tx_params;
struct rsi_cmd_desc *desc;
if (skb == NULL) { if (skb == NULL) {
rsi_dbg(ERR_ZONE, "%s: Unable to allocate skb\n", __func__); rsi_dbg(ERR_ZONE, "%s: Unable to allocate skb\n", __func__);
return -ENOMEM; return -ENOMEM;
} }
desc->desc_dword0.len_qno |= cpu_to_le16(DESC_IMMEDIATE_WAKEUP);
skb->priority = MGMT_SOFT_Q;
tx_params = (struct skb_info *)&IEEE80211_SKB_CB(skb)->driver_data; tx_params = (struct skb_info *)&IEEE80211_SKB_CB(skb)->driver_data;
tx_params->flags |= INTERNAL_MGMT_PKT; tx_params->flags |= INTERNAL_MGMT_PKT;
skb_queue_tail(&common->tx_queue[MGMT_SOFT_Q], skb); skb_queue_tail(&common->tx_queue[MGMT_SOFT_Q], skb);

View File

@ -229,6 +229,7 @@ struct rsi_mac_frame {
#define EOSP_INDICATION BIT(5) #define EOSP_INDICATION BIT(5)
#define REQUIRE_TSF_SYNC_CONFIRM BIT(6) #define REQUIRE_TSF_SYNC_CONFIRM BIT(6)
#define ENCAP_MGMT_PKT BIT(7) #define ENCAP_MGMT_PKT BIT(7)
#define DESC_IMMEDIATE_WAKEUP BIT(15)
struct rsi_cmd_desc_dword0 { struct rsi_cmd_desc_dword0 {
__le16 len_qno; __le16 len_qno;