1 /****************************************************************************** 2 * 3 * Copyright(c) 2007 - 2017 Realtek Corporation. 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 * The full GNU General Public License is included in this distribution in the 15 * file called LICENSE. 16 * 17 * Contact Information: 18 * wlanfae <wlanfae@realtek.com> 19 * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park, 20 * Hsinchu 300, Taiwan. 21 * 22 * Larry Finger <Larry.Finger@lwfinger.net> 23 * 24 *****************************************************************************/ 25 26 #ifndef __PHYDM_PMAC_TX_SETTING_H__ 27 #define __PHYDM_PMAC_TX_SETTING_H__ 28 29 /*2020.03.16 Fix TxInfo content in B mode*/ 30 #define PMAC_TX_SETTING_VERSION "2.1" 31 32 /* 1 ============================================================ 33 * 1 Definition 34 * 1 ============================================================ 35 */ 36 37 /* 1 ============================================================ 38 * 1 structure 39 * 1 ============================================================ 40 */ 41 struct phydm_pmac_info { 42 u8 en_pmac_tx:1; /*0: disable pmac 1: enable pmac */ 43 u8 mode:3; /*0: Packet TX 3:Continuous TX */ 44 u8 tx_rate; /*should be HW rate*/ 45 u8 tx_sc; 46 u8 is_short_preamble:1; 47 u8 ndp_sound:1; 48 u8 bw:3; /* 0:20 1:40 2:80Mhz */ 49 u8 m_stbc; /* bSTBC + 1 for WIN/CE, bSTBC for others*/ 50 u16 packet_period; 51 u32 packet_count; 52 u32 packet_length; 53 u8 packet_pattern; 54 u16 sfd; 55 u8 signal_field; 56 u8 service_field; 57 u8 service_field_bit2:1; 58 u16 length; 59 u8 crc16[2]; 60 u8 lsig[3]; 61 u8 ht_sig[6]; 62 u8 vht_sig_a[6]; 63 u8 vht_sig_b[4]; 64 u8 vht_sig_b_crc; 65 u8 vht_delimiter[4]; 66 }; 67 68 struct phydm_pmac_tx { 69 boolean is_cck_rate; 70 boolean is_ofdm_rate; 71 boolean is_ht_rate; 72 boolean is_vht_rate; 73 boolean cck_cont_tx; 74 boolean ofdm_cont_tx; 75 u8 path; 76 }; 77 78 /* 1 ============================================================ 79 * 1 enumeration 80 * 1 ============================================================ 81 */ 82 83 enum phydm_pmac_mode { 84 NONE_TEST, 85 PKTS_TX, 86 PKTS_RX, 87 CONT_TX, 88 OFDM_SINGLE_TONE_TX, 89 CCK_CARRIER_SIPPRESSION_TX 90 }; 91 92 /* 1 ============================================================ 93 * 1 function prototype 94 * 1 ============================================================ 95 */ 96 void phydm_start_cck_cont_tx(void *dm_void, struct phydm_pmac_info *tx_info); 97 98 void phydm_stop_cck_cont_tx(void *dm_void); 99 100 void phydm_start_ofdm_cont_tx(void *dm_void); 101 102 void phydm_stop_ofdm_cont_tx(void *dm_void); 103 104 void phydm_set_pmac_tx(void *dm_void, struct phydm_pmac_info *tx_info, 105 enum rf_path mpt_rf_path); 106 107 void phydm_set_tmac_tx(void *dm_void); 108 109 void phydm_pmac_tx_dbg(void *dm_void, char input[][16], u32 *_used, 110 char *output, u32 *_out_len); 111 #endif 112