1 /****************************************************************************** 2 * 3 * Copyright(c) 2007 - 2011 Realtek Corporation. All rights reserved. 4 * 5 * This program is free software; you can redistribute it and/or modify it 6 * under the terms of version 2 of the GNU General Public License as 7 * published by the Free Software Foundation. 8 * 9 * This program is distributed in the hope that it will be useful, but WITHOUT 10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for 12 * more details. 13 * 14 ******************************************************************************/ 15 #ifndef __RTL8723B_RECV_H__ 16 #define __RTL8723B_RECV_H__ 17 18 #include <rtl8192c_recv.h> 19 20 typedef struct rxreport_8723b 21 { 22 /* DWORD 0 */ 23 u32 pktlen:14; 24 u32 crc32:1; 25 u32 icverr:1; 26 u32 drvinfosize:4; 27 u32 security:3; 28 u32 qos:1; 29 u32 shift:2; 30 u32 physt:1; 31 u32 swdec:1; 32 u32 rsvd0028:2; 33 u32 eor:1; 34 u32 rsvd0031:1; 35 36 /* DWORD 1 */ 37 u32 macid:7; 38 u32 rsvd0407:1; 39 u32 tid:4; 40 u32 macid_vld:1; 41 u32 amsdu:1; 42 u32 rxid_match:1; 43 u32 paggr:1; 44 u32 a1fit:4; 45 u32 chkerr:1; /* 20 */ 46 u32 rx_ipv:1; 47 u32 rx_is_tcp_udp:1; 48 u32 chk_vld:1; /* 23 */ 49 u32 pam:1; 50 u32 pwr:1; 51 u32 md:1; 52 u32 mf:1; 53 u32 type:2; 54 u32 mc:1; 55 u32 bc:1; 56 57 /* DWORD 2 */ 58 u32 seq:12; 59 u32 frag:4; 60 u32 rx_is_qos:1; 61 u32 rsvd0817:1; 62 u32 wlanhd_iv_len:6; 63 u32 hwrsvd0824:4; 64 u32 c2h_ind:1; 65 u32 rsvd0829:2; 66 u32 fcs_ok:1; 67 68 /* DWORD 3 */ 69 u32 rx_rate:7; 70 u32 rsvd1207:3; 71 u32 htc:1; 72 u32 esop:1; 73 u32 bssid_fit:2; 74 u32 rsvd1214:2; 75 u32 dma_agg_num:8; 76 u32 rsvd1224:5; 77 u32 patternmatch:1; 78 u32 unicastwake:1; 79 u32 magicwake:1; 80 81 /* DWORD 4 */ 82 u32 splcp:1; /* Ofdm sgi or cck_splcp */ 83 u32 ldpc:1; 84 u32 stbc:1; 85 u32 not_sounding:1; 86 u32 bw:2; 87 u32 rsvd1606:26; 88 89 /* DWORD 5 */ 90 u32 tsfl; 91 } RXREPORT, *PRXREPORT; 92 93 typedef struct phystatus_8723b 94 { 95 u32 rxgain_a:7; 96 u32 trsw_a:1; 97 u32 rxgain_b:7; 98 u32 trsw_b:1; 99 u32 chcorr_l:16; 100 101 u32 sigqualcck:8; 102 u32 cfo_a:8; 103 u32 cfo_b:8; 104 u32 chcorr_h:8; 105 106 u32 noisepwrdb_h:8; 107 u32 cfo_tail_a:8; 108 u32 cfo_tail_b:8; 109 u32 rsvd0824:8; 110 111 u32 rsvd1200:8; 112 u32 rxevm_a:8; 113 u32 rxevm_b:8; 114 u32 rxsnr_a:8; 115 116 u32 rxsnr_b:8; 117 u32 noisepwrdb_l:8; 118 u32 rsvd1616:8; 119 u32 postsnr_a:8; 120 121 u32 postsnr_b:8; 122 u32 csi_a:8; 123 u32 csi_b:8; 124 u32 targetcsi_a:8; 125 126 u32 targetcsi_b:8; 127 u32 sigevm:8; 128 u32 maxexpwr:8; 129 u32 exintflag:1; 130 u32 sgien:1; 131 u32 rxsc:2; 132 u32 idlelong:1; 133 u32 anttrainen:1; 134 u32 antselb:1; 135 u32 antsel:1; 136 } PHYSTATUS, *PPHYSTATUS; 137 138 s32 rtl8723bs_init_recv_priv(struct adapter *padapter); 139 void rtl8723bs_free_recv_priv(struct adapter *padapter); 140 141 void rtl8723b_query_rx_phy_status(union recv_frame *prframe, struct phy_stat *pphy_stat); 142 void rtl8723b_process_phy_info(struct adapter *padapter, void *prframe); 143 144 #endif 145