rsi: immediate wakeup bit and priority for TX command packets
authorPrameela Rani Garnepudi <prameela.j04cs@gmail.com>
Mon, 10 Jul 2017 12:40:33 +0000 (18:10 +0530)
committerKalle Valo <kvalo@codeaurora.org>
Fri, 28 Jul 2017 14:25:36 +0000 (17:25 +0300)
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>
drivers/net/wireless/rsi/rsi_91x_mgmt.c
drivers/net/wireless/rsi/rsi_mgmt.h

index ebd1e5647f03b4b80b09d23b5a47f7e195277c94..68771b05797edcf97d97c48d6f02a95833cfa7f5 100644 (file)
@@ -266,11 +266,14 @@ static int rsi_send_internal_mgmt_frame(struct rsi_common *common,
                                        struct sk_buff *skb)
 {
        struct skb_info *tx_params;
+       struct rsi_cmd_desc *desc;
 
        if (skb == NULL) {
                rsi_dbg(ERR_ZONE, "%s: Unable to allocate skb\n", __func__);
                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->flags |= INTERNAL_MGMT_PKT;
        skb_queue_tail(&common->tx_queue[MGMT_SOFT_Q], skb);
index 63360c2be7262b96ac521a71cfd7421fa9f12749..6f7f181710f8c8009301c87ab7e3c11478fc2753 100644 (file)
@@ -229,6 +229,7 @@ struct rsi_mac_frame {
 #define EOSP_INDICATION                        BIT(5)
 #define REQUIRE_TSF_SYNC_CONFIRM       BIT(6)
 #define ENCAP_MGMT_PKT                 BIT(7)
+#define DESC_IMMEDIATE_WAKEUP          BIT(15)
 
 struct rsi_cmd_desc_dword0 {
        __le16 len_qno;