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 137