GNU Linux-libre 4.19.264-gnu1
[releases.git] / drivers / staging / rtl8723bs / include / rtl8723b_recv.h
1 /* SPDX-License-Identifier: GPL-2.0 */
2 /******************************************************************************
3  *
4  * Copyright(c) 2007 - 2011 Realtek Corporation. All rights reserved.
5  *
6  ******************************************************************************/
7 #ifndef __RTL8723B_RECV_H__
8 #define __RTL8723B_RECV_H__
9
10 #include <rtl8192c_recv.h>
11
12 typedef struct rxreport_8723b
13 {
14         /* DWORD 0 */
15         u32 pktlen:14;
16         u32 crc32:1;
17         u32 icverr:1;
18         u32 drvinfosize:4;
19         u32 security:3;
20         u32 qos:1;
21         u32 shift:2;
22         u32 physt:1;
23         u32 swdec:1;
24         u32 rsvd0028:2;
25         u32 eor:1;
26         u32 rsvd0031:1;
27
28         /* DWORD 1 */
29         u32 macid:7;
30         u32 rsvd0407:1;
31         u32 tid:4;
32         u32 macid_vld:1;
33         u32 amsdu:1;
34         u32 rxid_match:1;
35         u32 paggr:1;
36         u32 a1fit:4;
37         u32 chkerr:1;  /* 20 */
38         u32 rx_ipv:1;
39         u32 rx_is_tcp_udp:1;
40         u32 chk_vld:1;   /* 23 */
41         u32 pam:1;
42         u32 pwr:1;
43         u32 md:1;
44         u32 mf:1;
45         u32 type:2;
46         u32 mc:1;
47         u32 bc:1;
48
49         /* DWORD 2 */
50         u32 seq:12;
51         u32 frag:4;
52         u32 rx_is_qos:1;
53         u32 rsvd0817:1;
54         u32 wlanhd_iv_len:6;
55         u32 hwrsvd0824:4;
56         u32 c2h_ind:1;
57         u32 rsvd0829:2;
58         u32 fcs_ok:1;
59
60         /* DWORD 3 */
61         u32 rx_rate:7;
62         u32 rsvd1207:3;
63         u32 htc:1;
64         u32 esop:1;
65         u32 bssid_fit:2;
66         u32 rsvd1214:2;
67         u32 dma_agg_num:8;
68         u32 rsvd1224:5;
69         u32 patternmatch:1;
70         u32 unicastwake:1;
71         u32 magicwake:1;
72
73         /* DWORD 4 */
74         u32 splcp:1;    /* Ofdm sgi or cck_splcp */
75         u32 ldpc:1;
76         u32 stbc:1;
77         u32 not_sounding:1;
78         u32 bw:2;
79         u32 rsvd1606:26;
80
81         /* DWORD 5 */
82         u32 tsfl;
83 } RXREPORT, *PRXREPORT;
84
85 typedef struct phystatus_8723b
86 {
87         u32 rxgain_a:7;
88         u32 trsw_a:1;
89         u32 rxgain_b:7;
90         u32 trsw_b:1;
91         u32 chcorr_l:16;
92
93         u32 sigqualcck:8;
94         u32 cfo_a:8;
95         u32 cfo_b:8;
96         u32 chcorr_h:8;
97
98         u32 noisepwrdb_h:8;
99         u32 cfo_tail_a:8;
100         u32 cfo_tail_b:8;
101         u32 rsvd0824:8;
102
103         u32 rsvd1200:8;
104         u32 rxevm_a:8;
105         u32 rxevm_b:8;
106         u32 rxsnr_a:8;
107
108         u32 rxsnr_b:8;
109         u32 noisepwrdb_l:8;
110         u32 rsvd1616:8;
111         u32 postsnr_a:8;
112
113         u32 postsnr_b:8;
114         u32 csi_a:8;
115         u32 csi_b:8;
116         u32 targetcsi_a:8;
117
118         u32 targetcsi_b:8;
119         u32 sigevm:8;
120         u32 maxexpwr:8;
121         u32 exintflag:1;
122         u32 sgien:1;
123         u32 rxsc:2;
124         u32 idlelong:1;
125         u32 anttrainen:1;
126         u32 antselb:1;
127         u32 antsel:1;
128 } PHYSTATUS, *PPHYSTATUS;
129
130 s32 rtl8723bs_init_recv_priv(struct adapter *padapter);
131 void rtl8723bs_free_recv_priv(struct adapter *padapter);
132
133 void rtl8723b_query_rx_phy_status(union recv_frame *prframe, struct phy_stat *pphy_stat);
134 void rtl8723b_process_phy_info(struct adapter *padapter, void *prframe);
135
136 #endif