rtl8xxxu: Add rtl8723bu (nextgen) rx descriptor definition
authorJes Sorensen <Jes.Sorensen@redhat.com>
Mon, 29 Feb 2016 22:04:46 +0000 (17:04 -0500)
committerKalle Valo <kvalo@codeaurora.org>
Thu, 10 Mar 2016 13:29:04 +0000 (15:29 +0200)
The nextgen chips use a slightly different RX descriptor format. This
adds support for the new format.

Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.h

index 5a6b223..a8a4f2b 100644 (file)
@@ -197,6 +197,131 @@ struct rtl8xxxu_rx_desc {
 #endif
 };
 
+struct rtl8723bu_rx_desc {
+#ifdef __LITTLE_ENDIAN
+       u32 pktlen:14;
+       u32 crc32:1;
+       u32 icverr:1;
+       u32 drvinfo_sz:4;
+       u32 security:3;
+       u32 qos:1;
+       u32 shift:2;
+       u32 phy_stats:1;
+       u32 swdec:1;
+       u32 ls:1;
+       u32 fs:1;
+       u32 eor:1;
+       u32 own:1;
+
+       u32 macid:7;
+       u32 dummy1_0:1;
+       u32 tid:4;
+       u32 dummy1_1:1;
+       u32 amsdu:1;
+       u32 rxid_match:1;
+       u32 paggr:1;
+       u32 a1fit:4;    /* 16 */
+       u32 chkerr:1;
+       u32 ipver:1;
+       u32 tcpudp:1;
+       u32 chkvld:1;
+       u32 pam:1;
+       u32 pwr:1;
+       u32 more_data:1;
+       u32 more_frag:1;
+       u32 type:2;
+       u32 mc:1;
+       u32 bc:1;
+
+       u32 seq:12;
+       u32 frag:4;
+       u32 rx_is_qos:1;        /* 16 */
+       u32 dummy2_0:1;
+       u32 wlanhd_iv_len:6;
+       u32 dummy2_1:4;
+       u32 rpt_sel:1;
+       u32 dummy2_2:3;
+
+       u32 rxmcs:7;
+       u32 dummy3_0:3;
+       u32 htc:1;
+       u32 eosp:1;
+       u32 bssidfit:2;
+       u32 dummy3_1:2;
+       u32 usb_agg_pktnum:8;   /* 16 */
+       u32 dummy3_2:5;
+       u32 pattern_match:1;
+       u32 unicast_match:1;
+       u32 magic_match:1;
+
+       u32 splcp:1;
+       u32 ldcp:1;
+       u32 stbc:1;
+       u32 dummy4_0:1;
+       u32 bw:2;
+       u32 dummy4_1:26;
+#else
+       u32 own:1;
+       u32 eor:1;
+       u32 fs:1;
+       u32 ls:1;
+       u32 swdec:1;
+       u32 phy_stats:1;
+       u32 shift:2;
+       u32 qos:1;
+       u32 security:3;
+       u32 drvinfo_sz:4;
+       u32 icverr:1;
+       u32 crc32:1;
+       u32 pktlen:14;
+
+       u32 bc:1;
+       u32 mc:1;
+       u32 type:2;
+       u32 mf:1;
+       u32 md:1;
+       u32 pwr:1;
+       u32 pam:1;
+       u32 a2fit:4;
+       u32 a1fit:4;
+       u32 faggr:1;
+       u32 paggr:1;
+       u32 amsdu:1;
+       u32 hwrsvd:4;
+       u32 tid:4;
+       u32 macid:5;
+
+       u32 dummy2_2:3;
+       u32 rpt_sel:1;
+       u32 dummy2_1:4;
+       u32 wlanhd_iv_len:6;
+       u32 dummy2_0:1;
+       u32 rx_is_qos:1;
+       u32 frag:4;             /* 16 */
+       u32 seq:12;
+
+       u32 magic_match:1;
+       u32 unicast_match:1;
+       u32 pattern_match:1;
+       u32 dummy3_2:5;
+       u32 usb_agg_pktnum:8;
+       u32 dummy3_1:2;         /* 16 */
+       u32 bssidfit:2;
+       u32 eosp:1;
+       u32 htc:1;
+       u32 dummy3_0:3;
+       u32 rxmcs:7;
+
+       u32 dumm4_1:26;
+       u32 bw:2;
+       u32 dummy4_0:1;
+       u32 stbc:1;
+       u32 ldcp:1;
+       u32 splcp:1;
+#endif
+       __le32 tsfl;
+};
+
 struct rtl8xxxu_tx_desc {
        __le16 pkt_size;
        u8 pkt_offset;