rsi: receive path enhancement for RS9113
authorPrameela Rani Garnepudi <prameela.j04cs@gmail.com>
Fri, 16 Jun 2017 14:35:39 +0000 (20:05 +0530)
committerKalle Valo <kvalo@codeaurora.org>
Wed, 21 Jun 2017 15:26:26 +0000 (18:26 +0300)
RS9113 chipset supports Coex feature. Initial frame exchanges during
device initialization happens on coex queue. This patch adds the
handling for coex queue.

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_main.c
drivers/net/wireless/rsi/rsi_main.h

index 8810862ae82629eaf1a0bbb1fd5412a60ef1c32d..f1cde0ca81f9a81e38bcbf99f1d16a04cfb18694 100644 (file)
@@ -123,9 +123,16 @@ int rsi_read_pkt(struct rsi_common *common, s32 rcv_pkt_len)
 
                queueno = rsi_get_queueno(frame_desc, offset);
                length = rsi_get_length(frame_desc, offset);
-               extended_desc = rsi_get_extended_desc(frame_desc, offset);
+
+               /* Extended descriptor is valid for WLAN queues only */
+               if (queueno == RSI_WIFI_DATA_Q || queueno == RSI_WIFI_MGMT_Q)
+                       extended_desc = rsi_get_extended_desc(frame_desc,
+                                                             offset);
 
                switch (queueno) {
+               case RSI_COEX_Q:
+                       rsi_mgmt_pkt_recv(common, (frame_desc + offset));
+                       break;
                case RSI_WIFI_DATA_Q:
                        skb = rsi_prepare_skb(common,
                                              (frame_desc + offset),
index 74ae0ac113ee570a5385864593c531d0138a6cbb..f12e5d94bec2fb996760d996e3e621dc6ae8a0af 100644 (file)
@@ -63,6 +63,7 @@ extern __printf(2, 3) void rsi_dbg(u32 zone, const char *fmt, ...);
 #define MAX_CONTINUOUS_VI_PKTS          4
 
 /* Queue information */
+#define RSI_COEX_Q                     0x0
 #define RSI_WIFI_MGMT_Q                 0x4
 #define RSI_WIFI_DATA_Q                 0x5
 #define IEEE80211_MGMT_FRAME            0x00