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