net: wireless: rockchip_wlan: add rtl8188fu support
[firefly-linux-kernel-4.4.55.git] / drivers / net / wireless / rockchip_wlan / rtl8188fu / hal / phydm / phydm_hwconfig.h
diff --git a/drivers/net/wireless/rockchip_wlan/rtl8188fu/hal/phydm/phydm_hwconfig.h b/drivers/net/wireless/rockchip_wlan/rtl8188fu/hal/phydm/phydm_hwconfig.h
new file mode 100644 (file)
index 0000000..e56f1c2
--- /dev/null
@@ -0,0 +1,506 @@
+/******************************************************************************\r
+ *\r
+ * Copyright(c) 2007 - 2011 Realtek Corporation. All rights reserved.\r
+ *                                        \r
+ * This program is free software; you can redistribute it and/or modify it\r
+ * under the terms of version 2 of the GNU General Public License as\r
+ * published by the Free Software Foundation.\r
+ *\r
+ * This program is distributed in the hope that it will be useful, but WITHOUT\r
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or\r
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for\r
+ * more details.\r
+ *\r
+ * You should have received a copy of the GNU General Public License along with\r
+ * this program; if not, write to the Free Software Foundation, Inc.,\r
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA\r
+ *\r
+ *\r
+ ******************************************************************************/\r
+\r
+\r
+#ifndef        __HALHWOUTSRC_H__\r
+#define __HALHWOUTSRC_H__\r
+\r
+\r
+/*--------------------------Define -------------------------------------------*/ \r
+\r
+#define AGC_DIFF_CONFIG_MP(ic, band) (ODM_ReadAndConfig_MP_##ic##_AGC_TAB_DIFF(pDM_Odm, Array_MP_##ic##_AGC_TAB_DIFF_##band, \\r
+                                                                              sizeof(Array_MP_##ic##_AGC_TAB_DIFF_##band)/sizeof(u4Byte)))\r
+#define AGC_DIFF_CONFIG_TC(ic, band) (ODM_ReadAndConfig_TC_##ic##_AGC_TAB_DIFF(pDM_Odm, Array_TC_##ic##_AGC_TAB_DIFF_##band, \\r
+                                                                              sizeof(Array_TC_##ic##_AGC_TAB_DIFF_##band)/sizeof(u4Byte)))\r
+\r
+#define AGC_DIFF_CONFIG(ic, band) do {\\r
+                                            if (pDM_Odm->bIsMPChip)\\r
+                                                   AGC_DIFF_CONFIG_MP(ic,band);\\r
+                                            else\\r
+                                                AGC_DIFF_CONFIG_TC(ic,band);\\r
+                                    } while(0)\r
+\r
+\r
+//============================================================\r
+// structure and define\r
+//============================================================\r
+\r
+__PACK typedef struct _Phy_Rx_AGC_Info\r
+{\r
+       #if (ODM_ENDIAN_TYPE == ODM_ENDIAN_LITTLE)      \r
+               u1Byte  gain:7,trsw:1;                  \r
+       #else                   \r
+               u1Byte  trsw:1,gain:7;\r
+       #endif\r
+} __WLAN_ATTRIB_PACK__ PHY_RX_AGC_INFO_T, *pPHY_RX_AGC_INFO_T;\r
+\r
+__PACK typedef struct _Phy_Status_Rpt_8192cd {\r
+       PHY_RX_AGC_INFO_T path_agc[2];\r
+       u1Byte  ch_corr[2];\r
+       u1Byte  cck_sig_qual_ofdm_pwdb_all;\r
+       u1Byte  cck_agc_rpt_ofdm_cfosho_a;\r
+       u1Byte  cck_rpt_b_ofdm_cfosho_b;\r
+       u1Byte  rsvd_1;/*ch_corr_msb;*/\r
+       u1Byte  noise_power_db_msb;\r
+       s1Byte  path_cfotail[2];\r
+       u1Byte  pcts_mask[2];\r
+       s1Byte  stream_rxevm[2];\r
+       u1Byte  path_rxsnr[2];\r
+       u1Byte  noise_power_db_lsb;\r
+       u1Byte  rsvd_2[3];\r
+       u1Byte  stream_csi[2];\r
+       u1Byte  stream_target_csi[2];\r
+       s1Byte  sig_evm;\r
+       u1Byte  rsvd_3;\r
+\r
+#if (ODM_ENDIAN_TYPE == ODM_ENDIAN_LITTLE)\r
+       u1Byte  antsel_rx_keep_2: 1;    /*ex_intf_flg:1;*/\r
+       u1Byte  sgi_en: 1;\r
+       u1Byte  rxsc: 2;\r
+       u1Byte  idle_long: 1;\r
+       u1Byte  r_ant_train_en: 1;\r
+       u1Byte  ant_sel_b: 1;\r
+       u1Byte  ant_sel: 1;\r
+#else  /*_BIG_ENDIAN_  */\r
+       u1Byte  ant_sel: 1;\r
+       u1Byte  ant_sel_b: 1;\r
+       u1Byte  r_ant_train_en: 1;\r
+       u1Byte  idle_long: 1;\r
+       u1Byte  rxsc: 2;\r
+       u1Byte  sgi_en: 1;\r
+       u1Byte  antsel_rx_keep_2: 1;/*ex_intf_flg:1;*/\r
+#endif\r
+} __WLAN_ATTRIB_PACK__ PHY_STATUS_RPT_8192CD_T, *PPHY_STATUS_RPT_8192CD_T;\r
+\r
+\r
+typedef struct _Phy_Status_Rpt_8812 {\r
+/*     DWORD 0*/\r
+       u1Byte                  gain_trsw[2];                                                   /*path-A and path-B {TRSW, gain[6:0] }*/\r
+       u1Byte                  chl_num_LSB;                                                    /*channel number[7:0]*/\r
+#if (ODM_ENDIAN_TYPE == ODM_ENDIAN_LITTLE)\r
+       u1Byte                  chl_num_MSB: 2;                                                 /*channel number[9:8]*/\r
+       u1Byte                  sub_chnl: 4;                                                            /*sub-channel location[3:0]*/\r
+       u1Byte                  r_RFMOD: 2;                                                             /*RF mode[1:0]*/\r
+#else  /*_BIG_ENDIAN_  */\r
+       u1Byte                  r_RFMOD: 2;\r
+       u1Byte                  sub_chnl: 4;\r
+       u1Byte                  chl_num_MSB: 2;\r
+#endif\r
+\r
+/*     DWORD 1*/\r
+       u1Byte                  pwdb_all;                                                               /*CCK signal quality / OFDM pwdb all*/\r
+       s1Byte                  cfosho[2];              /*DW1 byte 1 DW1 byte2  CCK AGC report and CCK_BB_Power / OFDM Path-A and Path-B short CFO*/\r
+#if (ODM_ENDIAN_TYPE == ODM_ENDIAN_LITTLE)\r
+       /*this should be checked again because the definition of 8812 and 8814 is different*/\r
+/*     u1Byte                  r_cck_rx_enable_pathc:2;                                        cck rx enable pathc[1:0]*/\r
+/*     u1Byte                  cck_rx_path:4;                                                  cck rx path[3:0]*/\r
+       u1Byte                  resvd_0: 6;\r
+       u1Byte                  bt_RF_ch_MSB: 2;                                                /*8812A:2'b0                    8814A: bt rf channel keep[7:6]*/\r
+#else  /*_BIG_ENDIAN_*/\r
+       u1Byte                  bt_RF_ch_MSB: 2;\r
+       u1Byte                  resvd_0: 6;\r
+#endif\r
+\r
+/*     DWORD 2*/\r
+#if (ODM_ENDIAN_TYPE == ODM_ENDIAN_LITTLE)\r
+       u1Byte                  ant_div_sw_a: 1;                                                        /*8812A: ant_div_sw_a    8814A: 1'b0*/\r
+       u1Byte                  ant_div_sw_b: 1;                                                        /*8812A: ant_div_sw_b    8814A: 1'b0*/\r
+       u1Byte                  bt_RF_ch_LSB: 6;                                                /*8812A: 6'b0                   8814A: bt rf channel keep[5:0]*/\r
+#else  /*_BIG_ENDIAN_  */\r
+       u1Byte                  bt_RF_ch_LSB: 6;\r
+       u1Byte                  ant_div_sw_b: 1;\r
+       u1Byte                  ant_div_sw_a: 1;\r
+#endif\r
+       s1Byte                  cfotail[2];                /*DW2 byte 1 DW2 byte 2      path-A and path-B CFO tail*/\r
+       u1Byte                  PCTS_MSK_RPT_0;                                         /*PCTS mask report[7:0]*/\r
+       u1Byte                  PCTS_MSK_RPT_1;                                         /*PCTS mask report[15:8]*/\r
+\r
+/*     DWORD 3*/\r
+       s1Byte                  rxevm[2];                /*DW3 byte 1 DW3 byte 2        stream 1 and stream 2 RX EVM*/\r
+       s1Byte                  rxsnr[2];                /*DW3 byte 3 DW4 byte 0        path-A and path-B RX SNR*/\r
+\r
+/*     DWORD 4*/\r
+       u1Byte                  PCTS_MSK_RPT_2;                                         /*PCTS mask report[23:16]*/\r
+#if (ODM_ENDIAN_TYPE == ODM_ENDIAN_LITTLE)\r
+       u1Byte                  PCTS_MSK_RPT_3: 6;                                              /*PCTS mask report[29:24]*/\r
+       u1Byte                  pcts_rpt_valid: 1;                                                      /*pcts_rpt_valid*/\r
+       u1Byte                  resvd_1: 1;                                                             /*1'b0*/\r
+#else  /*_BIG_ENDIAN_*/\r
+       u1Byte                  resvd_1: 1;\r
+       u1Byte                  pcts_rpt_valid: 1;\r
+       u1Byte                  PCTS_MSK_RPT_3: 6;\r
+#endif\r
+       s1Byte                  rxevm_cd[2];       /*DW 4 byte 3 DW5 byte 0  8812A: 16'b0       8814A: stream 3 and stream 4 RX EVM*/\r
+\r
+/*     DWORD 5*/\r
+       u1Byte                  csi_current[2];    /*DW5 byte 1 DW5 byte 2      8812A: stream 1 and 2 CSI       8814A:  path-C and path-D RX SNR*/\r
+       u1Byte                  gain_trsw_cd[2];           /*DW5 byte 3 DW6 byte 0      path-C and path-D {TRSW, gain[6:0] }*/\r
+\r
+/*     DWORD 6*/\r
+       s1Byte                  sigevm;                                                                 /*signal field EVM*/\r
+#if (ODM_ENDIAN_TYPE == ODM_ENDIAN_LITTLE)\r
+       u1Byte                  antidx_antc: 3;                                                 /*8812A: 3'b0           8814A: antidx_antc[2:0]*/\r
+       u1Byte                  antidx_antd: 3;                                                 /*8812A: 3'b0           8814A: antidx_antd[2:0]*/\r
+       u1Byte                  dpdt_ctrl_keep: 1;                                              /*8812A: 1'b0           8814A: dpdt_ctrl_keep*/\r
+       u1Byte                  GNT_BT_keep: 1;                                                 /*8812A: 1'b0           8814A: GNT_BT_keep*/\r
+#else  /*_BIG_ENDIAN_*/\r
+       u1Byte                  GNT_BT_keep: 1;\r
+       u1Byte                  dpdt_ctrl_keep: 1;\r
+       u1Byte                  antidx_antd: 3;\r
+       u1Byte                  antidx_antc: 3;\r
+#endif\r
+#if (ODM_ENDIAN_TYPE == ODM_ENDIAN_LITTLE)\r
+       u1Byte                  antidx_anta: 3;                                                 /*antidx_anta[2:0]*/\r
+       u1Byte                  antidx_antb: 3;                                                 /*antidx_antb[2:0]*/\r
+       u1Byte                  hw_antsw_occur: 2;                                                              /*1'b0*/\r
+#else  /*_BIG_ENDIAN_*/\r
+       u1Byte                  hw_antsw_occur: 2;\r
+       u1Byte                  antidx_antb: 3;\r
+       u1Byte                  antidx_anta: 3;\r
+#endif\r
+} PHY_STATUS_RPT_8812_T, *PPHY_STATUS_RPT_8812_T;\r
+\r
+VOID\r
+odm_Init_RSSIForDM(\r
+       IN OUT  PDM_ODM_T       pDM_Odm\r
+       );\r
+\r
+VOID\r
+ODM_PhyStatusQuery(\r
+       IN OUT  PDM_ODM_T                                       pDM_Odm,\r
+       OUT             PODM_PHY_INFO_T                 pPhyInfo,\r
+       IN              pu1Byte                                         pPhyStatus,     \r
+       IN              PODM_PACKET_INFO_T                      pPktinfo\r
+       );\r
+\r
+VOID\r
+ODM_MacStatusQuery(\r
+       IN OUT  PDM_ODM_T                                       pDM_Odm,\r
+       IN              pu1Byte                                         pMacStatus,\r
+       IN              u1Byte                                          MacID,  \r
+       IN              BOOLEAN                                         bPacketMatchBSSID,\r
+       IN              BOOLEAN                                         bPacketToSelf,\r
+       IN              BOOLEAN                                         bPacketBeacon\r
+       );\r
+\r
+HAL_STATUS\r
+ODM_ConfigRFWithTxPwrTrackHeaderFile(\r
+       IN      PDM_ODM_T                       pDM_Odm\r
+    );\r
+    \r
+HAL_STATUS\r
+ODM_ConfigRFWithHeaderFile(\r
+       IN      PDM_ODM_T                       pDM_Odm,\r
+       IN      ODM_RF_Config_Type              ConfigType,\r
+       IN      ODM_RF_RADIO_PATH_E     eRFPath\r
+       );\r
+\r
+HAL_STATUS\r
+ODM_ConfigBBWithHeaderFile(\r
+       IN      PDM_ODM_T                       pDM_Odm,\r
+       IN      ODM_BB_Config_Type              ConfigType\r
+    );\r
+\r
+HAL_STATUS\r
+ODM_ConfigMACWithHeaderFile(\r
+       IN      PDM_ODM_T       pDM_Odm\r
+    );\r
+\r
+HAL_STATUS\r
+ODM_ConfigFWWithHeaderFile(\r
+       IN      PDM_ODM_T                       pDM_Odm,\r
+       IN      ODM_FW_Config_Type      ConfigType,\r
+       OUT u1Byte                              *pFirmware,\r
+       OUT u4Byte                              *pSize\r
+       );\r
+\r
+u4Byte \r
+ODM_GetHWImgVersion(\r
+       IN      PDM_ODM_T       pDM_Odm\r
+       );\r
+\r
+s4Byte\r
+odm_SignalScaleMapping(        \r
+       IN OUT PDM_ODM_T pDM_Odm,\r
+       IN      s4Byte CurrSig \r
+       );\r
+\r
+#if (RTL8822B_SUPPORT == 1)\r
+/*For 8822B only!! need to move to FW finally */\r
+/*==============================================*/\r
+VOID\r
+phydm_RxPhyStatusJaguarSeries2(\r
+       IN              PDM_ODM_T                                       pPhydm,\r
+       IN              pu1Byte                                         pPhyStatus,\r
+       IN              PODM_PACKET_INFO_T                      pPktinfo,\r
+       OUT             PODM_PHY_INFO_T                 pPhyInfo\r
+);\r
+\r
+typedef struct _Phy_Status_Rpt_Jaguar2_Type0 {\r
+       /* DW0 */\r
+       u1Byte          page_num;\r
+       u1Byte          pwdb;\r
+#if (ODM_ENDIAN_TYPE == ODM_ENDIAN_LITTLE)\r
+       u1Byte          gain: 6;\r
+       u1Byte          rsvd_0: 1;\r
+       u1Byte          trsw: 1;\r
+#else\r
+       u1Byte          trsw: 1;\r
+       u1Byte          rsvd_0: 1;\r
+       u1Byte          gain: 6;\r
+#endif\r
+       u1Byte          rsvd_1;\r
+\r
+       /* DW1 */\r
+       u1Byte          rsvd_2;\r
+#if (ODM_ENDIAN_TYPE == ODM_ENDIAN_LITTLE)\r
+       u1Byte          rxsc: 4;\r
+       u1Byte          agc_table: 4;\r
+#else\r
+       u1Byte          agc_table: 4;\r
+       u1Byte          rxsc: 4;\r
+#endif\r
+       u1Byte          channel;\r
+       u1Byte          band;\r
+\r
+       /* DW2 */\r
+       u2Byte          length;\r
+#if (ODM_ENDIAN_TYPE == ODM_ENDIAN_LITTLE)\r
+       u1Byte          antidx_a: 3;\r
+       u1Byte          antidx_b: 3;\r
+       u1Byte          rsvd_3: 2;\r
+       u1Byte          antidx_c: 3;\r
+       u1Byte          antidx_d: 3;\r
+       u1Byte          rsvd_4:2;\r
+#else\r
+       u1Byte          rsvd_3: 2;\r
+       u1Byte          antidx_b: 3;\r
+       u1Byte          antidx_a: 3;\r
+       u1Byte          rsvd_4:2;\r
+       u1Byte          antidx_d: 3;\r
+       u1Byte          antidx_c: 3;\r
+#endif\r
+\r
+       /* DW3 */\r
+       u1Byte          signal_quality;\r
+       u1Byte          agc_rpt;\r
+       u1Byte          bb_power;\r
+       u1Byte          rsvd_5;\r
+\r
+       /* DW4 */\r
+       u4Byte          rsvd_6;\r
+\r
+       /* DW5 */\r
+       u4Byte          rsvd_7;\r
+\r
+       /* DW6 */\r
+       u4Byte          rsvd_8;\r
+} PHY_STATUS_RPT_JAGUAR2_TYPE0, *PPHY_STATUS_RPT_JAGUAR2_TYPE0;\r
+\r
+typedef struct _Phy_Status_Rpt_Jaguar2_Type1 {\r
+       /* DW0 and DW1 */\r
+       u1Byte          page_num;\r
+       u1Byte          pwdb[4];\r
+#if (ODM_ENDIAN_TYPE == ODM_ENDIAN_LITTLE)\r
+       u1Byte          l_rxsc: 4;\r
+       u1Byte          ht_rxsc: 4;\r
+#else\r
+       u1Byte          ht_rxsc: 4;\r
+       u1Byte          l_rxsc: 4;\r
+#endif\r
+       u1Byte          channel;\r
+#if (ODM_ENDIAN_TYPE == ODM_ENDIAN_LITTLE)\r
+       u1Byte          band: 2;\r
+       u1Byte          rsvd_0: 1;\r
+       u1Byte          hw_antsw_occu: 1;\r
+       u1Byte          gnt_bt: 1;\r
+       u1Byte          ldpc: 1;\r
+       u1Byte          stbc: 1;\r
+       u1Byte          beamformed: 1;\r
+#else\r
+       u1Byte          beamformed: 1;\r
+       u1Byte          stbc: 1;\r
+       u1Byte          ldpc: 1;\r
+       u1Byte          gnt_bt: 1;\r
+       u1Byte          hw_antsw_occu: 1;\r
+       u1Byte          rsvd_0: 1;\r
+       u1Byte          band: 2;\r
+#endif\r
+\r
+       /* DW2 */\r
+       u2Byte          lsig_length;\r
+#if (ODM_ENDIAN_TYPE == ODM_ENDIAN_LITTLE)\r
+       u1Byte          antidx_a: 3;\r
+       u1Byte          antidx_b: 3;\r
+       u1Byte          rsvd_1: 2;\r
+       u1Byte          antidx_c: 3;\r
+       u1Byte          antidx_d: 3;\r
+       u1Byte          rsvd_2: 2;\r
+#else\r
+       u1Byte          rsvd_1: 2;\r
+       u1Byte          antidx_b: 3;\r
+       u1Byte          antidx_a: 3;\r
+       u1Byte          rsvd_2: 2;\r
+       u1Byte          antidx_d: 3;\r
+       u1Byte          antidx_c: 3;\r
+#endif\r
+\r
+       /* DW3 */\r
+       u1Byte          paid;\r
+#if (ODM_ENDIAN_TYPE == ODM_ENDIAN_LITTLE)\r
+       u1Byte          paid_msb: 1;\r
+       u1Byte          gid: 6;\r
+       u1Byte          rsvd_3: 1;\r
+#else\r
+       u1Byte          rsvd_3: 1;\r
+       u1Byte          gid: 6;\r
+       u1Byte          paid_msb: 1;\r
+#endif\r
+       u1Byte          intf_pos;\r
+#if (ODM_ENDIAN_TYPE == ODM_ENDIAN_LITTLE)\r
+       u1Byte          intf_pos_msb: 1;\r
+       u1Byte          rsvd_4: 2;\r
+       u1Byte          nb_intf_flag: 1;\r
+       u1Byte          rf_mode: 2;\r
+       u1Byte          rsvd_5: 2;\r
+#else\r
+       u1Byte          rsvd_5: 2;\r
+       u1Byte          rf_mode: 2;\r
+       u1Byte          nb_intf_flag: 1;\r
+       u1Byte          rsvd_4: 2;\r
+       u1Byte          intf_pos_msb: 1;\r
+#endif\r
+\r
+       /* DW4 */\r
+       s1Byte          rxevm[4];                       /* s(8,1) */\r
+\r
+       /* DW5 */\r
+       s1Byte          cfo_tail[4];                    /* s(8,7) */\r
+\r
+       /* DW6 */\r
+       s1Byte          rxsnr[4];                       /* s(8,1) */\r
+} PHY_STATUS_RPT_JAGUAR2_TYPE1, *PPHY_STATUS_RPT_JAGUAR2_TYPE1;\r
+\r
+typedef struct _Phy_Status_Rpt_Jaguar2_Type2 {\r
+       /* DW0 ane DW1 */\r
+       u1Byte          page_num;\r
+       u1Byte          pwdb[4];\r
+#if (ODM_ENDIAN_TYPE == ODM_ENDIAN_LITTLE)     \r
+       u1Byte          l_rxsc: 4;\r
+       u1Byte          ht_rxsc: 4;\r
+#else\r
+       u1Byte          ht_rxsc: 4;\r
+       u1Byte          l_rxsc: 4;\r
+#endif\r
+       u1Byte          channel;\r
+#if (ODM_ENDIAN_TYPE == ODM_ENDIAN_LITTLE)\r
+       u1Byte          band: 2;\r
+       u1Byte          rsvd_0: 1;\r
+       u1Byte          hw_antsw_occu: 1;\r
+       u1Byte          gnt_bt: 1;\r
+       u1Byte          ldpc: 1;\r
+       u1Byte          stbc: 1;\r
+       u1Byte          beamformed: 1;\r
+#else\r
+       u1Byte          beamformed: 1;\r
+       u1Byte          stbc: 1;\r
+       u1Byte          ldpc: 1;\r
+       u1Byte          gnt_bt: 1;\r
+       u1Byte          hw_antsw_occu: 1;\r
+       u1Byte          rsvd_0: 1;\r
+       u1Byte          band: 2;\r
+#endif\r
+\r
+       /* DW2 */\r
+#if (ODM_ENDIAN_TYPE == ODM_ENDIAN_LITTLE)\r
+       u1Byte          shift_l_map: 6;\r
+       u1Byte          rsvd_1: 2;\r
+#else\r
+       u1Byte          rsvd_1: 2;\r
+       u1Byte          shift_l_map: 6;\r
+#endif\r
+       u1Byte          cnt_pw2cca;\r
+#if (ODM_ENDIAN_TYPE == ODM_ENDIAN_LITTLE)\r
+       u1Byte          agc_table_a: 4;\r
+       u1Byte          agc_table_b: 4;\r
+       u1Byte          agc_table_c: 4;\r
+       u1Byte          agc_table_d: 4;\r
+#else\r
+       u1Byte          agc_table_b: 4;\r
+       u1Byte          agc_table_a: 4;\r
+       u1Byte          agc_table_d: 4;\r
+       u1Byte          agc_table_c: 4;\r
+#endif\r
+\r
+       /* DW3 ~ DW6*/\r
+       u1Byte          cnt_cca2agc_rdy;\r
+#if (ODM_ENDIAN_TYPE == ODM_ENDIAN_LITTLE)\r
+       u1Byte          gain_a: 6;\r
+       u1Byte          rsvd_2: 1;\r
+       u1Byte          trsw_a: 1;\r
+       u1Byte          gain_b: 6;\r
+       u1Byte          rsvd_3: 1;\r
+       u1Byte          trsw_b: 1;\r
+       u1Byte          gain_c: 6;\r
+       u1Byte          rsvd_4: 1;\r
+       u1Byte          trsw_c: 1;\r
+       u1Byte          gain_d: 6;\r
+       u1Byte          rsvd_5: 1;\r
+       u1Byte          trsw_d: 1;\r
+       u1Byte          aagc_step_a: 2;\r
+       u1Byte          aagc_step_b: 2;\r
+       u1Byte          aagc_step_c: 2;\r
+       u1Byte          aagc_step_d: 2;\r
+#else\r
+       u1Byte          trsw_a: 1;\r
+       u1Byte          rsvd_2: 1;\r
+       u1Byte          gain_a: 6;\r
+       u1Byte          trsw_b: 1;\r
+       u1Byte          rsvd_3: 1;\r
+       u1Byte          gain_b: 6;\r
+       u1Byte          trsw_c: 1;\r
+       u1Byte          rsvd_4: 1;\r
+       u1Byte          gain_c: 6;\r
+       u1Byte          trsw_d: 1;\r
+       u1Byte          rsvd_5: 1;\r
+       u1Byte          gain_d: 6;\r
+       u1Byte          aagc_step_d: 2;\r
+       u1Byte          aagc_step_c: 2;\r
+       u1Byte          aagc_step_b: 2;\r
+       u1Byte          aagc_step_a: 2;\r
+#endif\r
+       u1Byte          ht_aagc_gain[4];\r
+       u1Byte          dagc_gain[4];\r
+#if (ODM_ENDIAN_TYPE == ODM_ENDIAN_LITTLE)\r
+       u1Byte          counter: 6;\r
+       u1Byte          rsvd_6: 2;\r
+       u1Byte          syn_count: 5;\r
+       u1Byte          rsvd_7:3;\r
+#else\r
+       u1Byte          rsvd_6: 2;\r
+       u1Byte          counter: 6;\r
+       u1Byte          rsvd_7:3;\r
+       u1Byte          syn_count: 5;\r
+#endif\r
+} PHY_STATUS_RPT_JAGUAR2_TYPE2, *PPHY_STATUS_RPT_JAGUAR2_TYPE2;\r
+/*==============================================*/\r
+#endif\r
+#endif\r
+\r