1 #ifndef _RTL871X_MP_IOCTL_H 2 #define _RTL871X_MP_IOCTL_H 3 4 #include "osdep_service.h" 5 #include "drv_types.h" 6 #include "mp_custom_oid.h" 7 #include "rtl871x_ioctl.h" 8 #include "rtl871x_ioctl_rtl.h" 9 #include "rtl8712_efuse.h" 10 11 #define TESTFWCMDNUMBER 1000000 12 #define TEST_H2CINT_WAIT_TIME 500 13 #define TEST_C2HINT_WAIT_TIME 500 14 #define HCI_TEST_SYSCFG_HWMASK 1 15 #define _BUSCLK_40M (4 << 2) 16 17 struct CFG_DBG_MSG_STRUCT { 18 u32 DebugLevel; 19 u32 DebugComponent_H32; 20 u32 DebugComponent_L32; 21 }; 22 23 struct mp_rw_reg { 24 uint offset; 25 uint width; 26 u32 value; 27 }; 28 29 /* for OID_RT_PRO_READ16_EEPROM & OID_RT_PRO_WRITE16_EEPROM */ 30 struct eeprom_rw_param { 31 uint offset; 32 u16 value; 33 }; 34 35 struct EFUSE_ACCESS_STRUCT { 36 u16 start_addr; 37 u16 cnts; 38 u8 data[0]; 39 }; 40 41 struct burst_rw_reg { 42 uint offset; 43 uint len; 44 u8 Data[256]; 45 }; 46 47 struct usb_vendor_req { 48 u8 bRequest; 49 u16 wValue; 50 u16 wIndex; 51 u16 wLength; 52 u8 u8Dir;/*0:OUT, 1:IN */ 53 u8 u8InData; 54 }; 55 56 struct DR_VARIABLE_STRUCT { 57 u8 offset; 58 u32 variable; 59 }; 60 61 int mp_start_joinbss(struct _adapter *padapter, struct ndis_802_11_ssid *pssid); 62 63 /* oid_rtl_seg_87_11_00 */ 64 uint oid_rt_pro8711_join_bss_hdl(struct oid_par_priv *poid_par_priv); 65 uint oid_rt_pro_read_register_hdl(struct oid_par_priv *poid_par_priv); 66 uint oid_rt_pro_write_register_hdl(struct oid_par_priv *poid_par_priv); 67 uint oid_rt_pro_burst_read_register_hdl(struct oid_par_priv* 68 poid_par_priv); 69 uint oid_rt_pro_burst_write_register_hdl(struct oid_par_priv* 70 poid_par_priv); 71 uint oid_rt_pro_write_txcmd_hdl(struct oid_par_priv *poid_par_priv); 72 uint oid_rt_pro_read16_eeprom_hdl(struct oid_par_priv *poid_par_priv); 73 uint oid_rt_pro_write16_eeprom_hdl(struct oid_par_priv *poid_par_priv); 74 uint oid_rt_pro8711_wi_poll_hdl(struct oid_par_priv *poid_par_priv); 75 uint oid_rt_pro8711_pkt_loss_hdl(struct oid_par_priv *poid_par_priv); 76 uint oid_rt_rd_attrib_mem_hdl(struct oid_par_priv *poid_par_priv); 77 uint oid_rt_wr_attrib_mem_hdl(struct oid_par_priv *poid_par_priv); 78 uint oid_rt_pro_set_rf_intfs_hdl(struct oid_par_priv *poid_par_priv); 79 uint oid_rt_poll_rx_status_hdl(struct oid_par_priv *poid_par_priv); 80 /* oid_rtl_seg_87_11_20 */ 81 uint oid_rt_pro_cfg_debug_message_hdl( 82 struct oid_par_priv *poid_par_priv); 83 uint oid_rt_pro_set_data_rate_ex_hdl( 84 struct oid_par_priv *poid_par_priv); 85 uint oid_rt_pro_set_basic_rate_hdl( 86 struct oid_par_priv *poid_par_priv); 87 uint oid_rt_pro_set_power_tracking_hdl( 88 struct oid_par_priv *poid_par_priv); 89 /* oid_rtl_seg_87_11_50 */ 90 uint oid_rt_pro_qry_pwrstate_hdl( 91 struct oid_par_priv *poid_par_priv); 92 uint oid_rt_pro_set_pwrstate_hdl( 93 struct oid_par_priv *poid_par_priv); 94 /* oid_rtl_seg_87_11_F0 */ 95 uint oid_rt_pro_h2c_set_rate_table_hdl( 96 struct oid_par_priv *poid_par_priv); 97 uint oid_rt_pro_h2c_get_rate_table_hdl( 98 struct oid_par_priv *poid_par_priv); 99 /* oid_rtl_seg_81_80_00 */ 100 uint oid_rt_pro_set_data_rate_hdl( 101 struct oid_par_priv *poid_par_priv); 102 uint oid_rt_pro_start_test_hdl(struct oid_par_priv *poid_par_priv); 103 uint oid_rt_pro_stop_test_hdl(struct oid_par_priv *poid_par_priv); 104 uint oid_rt_pro_set_channel_direct_call_hdl( 105 struct oid_par_priv *poid_par_priv); 106 uint oid_rt_pro_set_antenna_bb_hdl( 107 struct oid_par_priv *poid_par_priv); 108 uint oid_rt_pro_set_tx_power_control_hdl( 109 struct oid_par_priv *poid_par_priv); 110 /* oid_rtl_seg_81_80_20 */ 111 uint oid_rt_pro_query_tx_packet_sent_hdl( 112 struct oid_par_priv *poid_par_priv); 113 uint oid_rt_pro_query_rx_packet_received_hdl( 114 struct oid_par_priv *poid_par_priv); 115 uint oid_rt_pro_query_rx_packet_crc32_error_hdl( 116 struct oid_par_priv *poid_par_priv); 117 uint oid_rt_pro_reset_tx_packet_sent_hdl( 118 struct oid_par_priv *poid_par_priv); 119 uint oid_rt_pro_reset_rx_packet_received_hdl( 120 struct oid_par_priv *poid_par_priv); 121 uint oid_rt_pro_set_modulation_hdl(struct oid_par_priv *poid_par_priv); 122 uint oid_rt_pro_set_continuous_tx_hdl( 123 struct oid_par_priv *poid_par_priv); 124 uint oid_rt_pro_set_single_carrier_tx_hdl( 125 struct oid_par_priv *poid_par_priv); 126 uint oid_rt_pro_set_carrier_suppression_tx_hdl( 127 struct oid_par_priv *poid_par_priv); 128 uint oid_rt_pro_set_single_tone_tx_hdl( 129 struct oid_par_priv *poid_par_priv); 130 /* oid_rtl_seg_81_87 */ 131 uint oid_rt_pro_write_bb_reg_hdl(struct oid_par_priv *poid_par_priv); 132 uint oid_rt_pro_read_bb_reg_hdl(struct oid_par_priv *poid_par_priv); 133 uint oid_rt_pro_write_rf_reg_hdl(struct oid_par_priv *poid_par_priv); 134 uint oid_rt_pro_read_rf_reg_hdl(struct oid_par_priv *poid_par_priv); 135 /* oid_rtl_seg_81_85 */ 136 uint oid_rt_wireless_mode_hdl(struct oid_par_priv *poid_par_priv); 137 /* oid_rtl_seg_87_12_00 */ 138 uint oid_rt_pro_encryption_ctrl_hdl(struct oid_par_priv *poid_par_priv); 139 uint oid_rt_pro_add_sta_info_hdl(struct oid_par_priv *poid_par_priv); 140 uint oid_rt_pro_dele_sta_info_hdl(struct oid_par_priv *poid_par_priv); 141 uint oid_rt_pro_query_dr_variable_hdl( 142 struct oid_par_priv *poid_par_priv); 143 uint oid_rt_pro_rx_packet_type_hdl(struct oid_par_priv *poid_par_priv); 144 uint oid_rt_pro_read_efuse_hdl(struct oid_par_priv *poid_par_priv); 145 uint oid_rt_pro_write_efuse_hdl(struct oid_par_priv *poid_par_priv); 146 uint oid_rt_pro_rw_efuse_pgpkt_hdl(struct oid_par_priv *poid_par_priv); 147 uint oid_rt_get_efuse_current_size_hdl( 148 struct oid_par_priv *poid_par_priv); 149 uint oid_rt_pro_efuse_hdl(struct oid_par_priv *poid_par_priv); 150 uint oid_rt_pro_efuse_map_hdl(struct oid_par_priv *poid_par_priv); 151 uint oid_rt_set_bandwidth_hdl(struct oid_par_priv *poid_par_priv); 152 uint oid_rt_set_crystal_cap_hdl(struct oid_par_priv *poid_par_priv); 153 uint oid_rt_set_rx_packet_type_hdl(struct oid_par_priv *poid_par_priv); 154 uint oid_rt_get_efuse_max_size_hdl(struct oid_par_priv *poid_par_priv); 155 uint oid_rt_pro_set_tx_agc_offset_hdl( 156 struct oid_par_priv *poid_par_priv); 157 uint oid_rt_pro_set_pkt_test_mode_hdl( 158 struct oid_par_priv *poid_par_priv); 159 uint oid_rt_get_thermal_meter_hdl( 160 struct oid_par_priv *poid_par_priv); 161 uint oid_rt_reset_phy_rx_packet_count_hdl( 162 struct oid_par_priv *poid_par_priv); 163 uint oid_rt_get_phy_rx_packet_received_hdl( 164 struct oid_par_priv *poid_par_priv); 165 uint oid_rt_get_phy_rx_packet_crc32_error_hdl( 166 struct oid_par_priv *poid_par_priv); 167 uint oid_rt_set_power_down_hdl( 168 struct oid_par_priv *poid_par_priv); 169 uint oid_rt_get_power_mode_hdl( 170 struct oid_par_priv *poid_par_priv); 171 #ifdef _RTL871X_MP_IOCTL_C_ /* CAUTION!!! */ 172 /* This ifdef _MUST_ be left in!! */ 173 static const struct oid_obj_priv oid_rtl_seg_81_80_00[] = { 174 {1, &oid_null_function}, /*0x00 OID_RT_PRO_RESET_DUT */ 175 {1, &oid_rt_pro_set_data_rate_hdl}, /*0x01*/ 176 {1, &oid_rt_pro_start_test_hdl},/*0x02*/ 177 {1, &oid_rt_pro_stop_test_hdl}, /*0x03*/ 178 {1, &oid_null_function}, /*0x04 OID_RT_PRO_SET_PREAMBLE*/ 179 {1, &oid_null_function}, /*0x05 OID_RT_PRO_SET_SCRAMBLER*/ 180 {1, &oid_null_function}, /*0x06 OID_RT_PRO_SET_FILTER_BB*/ 181 {1, &oid_null_function}, /*0x07 182 * OID_RT_PRO_SET_MANUAL_DIVERS_BB*/ 183 {1, &oid_rt_pro_set_channel_direct_call_hdl}, /*0x08*/ 184 {1, &oid_null_function}, /*0x09 185 * OID_RT_PRO_SET_SLEEP_MODE_DIRECT_CALL*/ 186 {1, &oid_null_function}, /*0x0A 187 * OID_RT_PRO_SET_WAKE_MODE_DIRECT_CALL*/ 188 {1, &oid_rt_pro_set_continuous_tx_hdl}, /*0x0B 189 * OID_RT_PRO_SET_TX_CONTINUOUS_DIRECT_CALL*/ 190 {1, &oid_rt_pro_set_single_carrier_tx_hdl}, /*0x0C 191 * OID_RT_PRO_SET_SINGLE_CARRIER_TX_CONTINUOUS*/ 192 {1, &oid_null_function}, /*0x0D 193 * OID_RT_PRO_SET_TX_ANTENNA_BB*/ 194 {1, &oid_rt_pro_set_antenna_bb_hdl}, /*0x0E*/ 195 {1, &oid_null_function}, /*0x0F OID_RT_PRO_SET_CR_SCRAMBLER*/ 196 {1, &oid_null_function}, /*0x10 OID_RT_PRO_SET_CR_NEW_FILTER*/ 197 {1, &oid_rt_pro_set_tx_power_control_hdl}, /*0x11 198 * OID_RT_PRO_SET_TX_POWER_CONTROL*/ 199 {1, &oid_null_function}, /*0x12 OID_RT_PRO_SET_CR_TX_CONFIG*/ 200 {1, &oid_null_function}, /*0x13 201 * OID_RT_PRO_GET_TX_POWER_CONTROL*/ 202 {1, &oid_null_function}, /*0x14 203 * OID_RT_PRO_GET_CR_SIGNAL_QUALITY*/ 204 {1, &oid_null_function}, /*0x15 OID_RT_PRO_SET_CR_SETPOINT*/ 205 {1, &oid_null_function}, /*0x16 OID_RT_PRO_SET_INTEGRATOR*/ 206 {1, &oid_null_function}, /*0x17 OID_RT_PRO_SET_SIGNAL_QUALITY*/ 207 {1, &oid_null_function}, /*0x18 OID_RT_PRO_GET_INTEGRATOR*/ 208 {1, &oid_null_function}, /*0x19 OID_RT_PRO_GET_SIGNAL_QUALITY*/ 209 {1, &oid_null_function}, /*0x1A OID_RT_PRO_QUERY_EEPROM_TYPE*/ 210 {1, &oid_null_function}, /*0x1B OID_RT_PRO_WRITE_MAC_ADDRESS*/ 211 {1, &oid_null_function}, /*0x1C OID_RT_PRO_READ_MAC_ADDRESS*/ 212 {1, &oid_null_function}, /*0x1D OID_RT_PRO_WRITE_CIS_DATA*/ 213 {1, &oid_null_function}, /*0x1E OID_RT_PRO_READ_CIS_DATA*/ 214 {1, &oid_null_function} /*0x1F OID_RT_PRO_WRITE_POWER_CONTROL*/ 215 }; 216 217 static const struct oid_obj_priv oid_rtl_seg_81_80_20[] = { 218 {1, &oid_null_function}, /*0x20 OID_RT_PRO_READ_POWER_CONTROL*/ 219 {1, &oid_null_function}, /*0x21 OID_RT_PRO_WRITE_EEPROM*/ 220 {1, &oid_null_function}, /*0x22 OID_RT_PRO_READ_EEPROM*/ 221 {1, &oid_rt_pro_reset_tx_packet_sent_hdl}, /*0x23*/ 222 {1, &oid_rt_pro_query_tx_packet_sent_hdl}, /*0x24*/ 223 {1, &oid_rt_pro_reset_rx_packet_received_hdl}, /*0x25*/ 224 {1, &oid_rt_pro_query_rx_packet_received_hdl}, /*0x26*/ 225 {1, &oid_rt_pro_query_rx_packet_crc32_error_hdl},/*0x27*/ 226 {1, &oid_null_function}, /*0x28 227 *OID_RT_PRO_QUERY_CURRENT_ADDRESS*/ 228 {1, &oid_null_function}, /*0x29 229 *OID_RT_PRO_QUERY_PERMANENT_ADDRESS*/ 230 {1, &oid_null_function}, /*0x2A 231 *OID_RT_PRO_SET_PHILIPS_RF_PARAMETERS*/ 232 {1, &oid_rt_pro_set_carrier_suppression_tx_hdl},/*0x2B 233 *OID_RT_PRO_SET_CARRIER_SUPPRESSION_TX*/ 234 {1, &oid_null_function}, /*0x2C OID_RT_PRO_RECEIVE_PACKET*/ 235 {1, &oid_null_function}, /*0x2D OID_RT_PRO_WRITE_EEPROM_BYTE*/ 236 {1, &oid_null_function}, /*0x2E OID_RT_PRO_READ_EEPROM_BYTE*/ 237 {1, &oid_rt_pro_set_modulation_hdl} /*0x2F*/ 238 }; 239 240 static const struct oid_obj_priv oid_rtl_seg_81_80_40[] = { 241 {1, &oid_null_function}, /*0x40*/ 242 {1, &oid_null_function}, /*0x41*/ 243 {1, &oid_null_function}, /*0x42*/ 244 {1, &oid_rt_pro_set_single_tone_tx_hdl}, /*0x43*/ 245 {1, &oid_null_function}, /*0x44*/ 246 {1, &oid_null_function} /*0x45*/ 247 }; 248 249 static const struct oid_obj_priv oid_rtl_seg_81_80_80[] = { 250 {1, &oid_null_function}, /*0x80 OID_RT_DRIVER_OPTION*/ 251 {1, &oid_null_function}, /*0x81 OID_RT_RF_OFF*/ 252 {1, &oid_null_function} /*0x82 OID_RT_AUTH_STATUS*/ 253 254 }; 255 256 static const struct oid_obj_priv oid_rtl_seg_81_85[] = { 257 {1, &oid_rt_wireless_mode_hdl} /*0x00 OID_RT_WIRELESS_MODE*/ 258 }; 259 260 #else /* _RTL871X_MP_IOCTL_C_ */ 261 extern struct oid_obj_priv oid_rtl_seg_81_80_00[32]; 262 extern struct oid_obj_priv oid_rtl_seg_81_80_20[16]; 263 extern struct oid_obj_priv oid_rtl_seg_81_80_40[6]; 264 extern struct oid_obj_priv oid_rtl_seg_81_80_80[3]; 265 extern struct oid_obj_priv oid_rtl_seg_81_85[1]; 266 extern struct oid_obj_priv oid_rtl_seg_81_87[5]; 267 extern struct oid_obj_priv oid_rtl_seg_87_11_00[32]; 268 extern struct oid_obj_priv oid_rtl_seg_87_11_20[5]; 269 extern struct oid_obj_priv oid_rtl_seg_87_11_50[2]; 270 extern struct oid_obj_priv oid_rtl_seg_87_11_80[1]; 271 extern struct oid_obj_priv oid_rtl_seg_87_11_B0[1]; 272 extern struct oid_obj_priv oid_rtl_seg_87_11_F0[16]; 273 extern struct oid_obj_priv oid_rtl_seg_87_12_00[32]; 274 275 #endif /* _RTL871X_MP_IOCTL_C_ */ 276 277 278 enum MP_MODE { 279 MP_START_MODE, 280 MP_STOP_MODE, 281 MP_ERR_MODE 282 }; 283 284 struct rwreg_param{ 285 unsigned int offset; 286 unsigned int width; 287 unsigned int value; 288 }; 289 290 struct bbreg_param{ 291 unsigned int offset; 292 unsigned int phymask; 293 unsigned int value; 294 }; 295 296 struct txpower_param{ 297 unsigned int pwr_index; 298 }; 299 300 struct datarate_param{ 301 unsigned int rate_index; 302 }; 303 304 struct rfintfs_parm { 305 unsigned int rfintfs; 306 }; 307 308 struct mp_xmit_packet { 309 unsigned int len; 310 unsigned int mem[MAX_MP_XMITBUF_SZ >> 2]; 311 }; 312 313 struct psmode_param { 314 unsigned int ps_mode; 315 unsigned int smart_ps; 316 }; 317 318 struct mp_ioctl_handler { 319 unsigned int paramsize; 320 unsigned int (*handler)(struct oid_par_priv *poid_par_priv); 321 unsigned int oid; 322 }; 323 324 struct mp_ioctl_param{ 325 unsigned int subcode; 326 unsigned int len; 327 unsigned char data[0]; 328 }; 329 330 #define GEN_MP_IOCTL_SUBCODE(code) _MP_IOCTL_ ## code ## _CMD_ 331 332 enum RTL871X_MP_IOCTL_SUBCODE { 333 GEN_MP_IOCTL_SUBCODE(MP_START), /*0*/ 334 GEN_MP_IOCTL_SUBCODE(MP_STOP), /*1*/ 335 GEN_MP_IOCTL_SUBCODE(READ_REG), /*2*/ 336 GEN_MP_IOCTL_SUBCODE(WRITE_REG), 337 GEN_MP_IOCTL_SUBCODE(SET_CHANNEL), /*4*/ 338 GEN_MP_IOCTL_SUBCODE(SET_TXPOWER), /*5*/ 339 GEN_MP_IOCTL_SUBCODE(SET_DATARATE), /*6*/ 340 GEN_MP_IOCTL_SUBCODE(READ_BB_REG), /*7*/ 341 GEN_MP_IOCTL_SUBCODE(WRITE_BB_REG), 342 GEN_MP_IOCTL_SUBCODE(READ_RF_REG), /*9*/ 343 GEN_MP_IOCTL_SUBCODE(WRITE_RF_REG), 344 GEN_MP_IOCTL_SUBCODE(SET_RF_INTFS), 345 GEN_MP_IOCTL_SUBCODE(IOCTL_XMIT_PACKET), /*12*/ 346 GEN_MP_IOCTL_SUBCODE(PS_STATE), /*13*/ 347 GEN_MP_IOCTL_SUBCODE(READ16_EEPROM), /*14*/ 348 GEN_MP_IOCTL_SUBCODE(WRITE16_EEPROM), /*15*/ 349 GEN_MP_IOCTL_SUBCODE(SET_PTM), /*16*/ 350 GEN_MP_IOCTL_SUBCODE(READ_TSSI), /*17*/ 351 GEN_MP_IOCTL_SUBCODE(CNTU_TX), /*18*/ 352 GEN_MP_IOCTL_SUBCODE(SET_BANDWIDTH), /*19*/ 353 GEN_MP_IOCTL_SUBCODE(SET_RX_PKT_TYPE), /*20*/ 354 GEN_MP_IOCTL_SUBCODE(RESET_PHY_RX_PKT_CNT), /*21*/ 355 GEN_MP_IOCTL_SUBCODE(GET_PHY_RX_PKT_RECV), /*22*/ 356 GEN_MP_IOCTL_SUBCODE(GET_PHY_RX_PKT_ERROR), /*23*/ 357 GEN_MP_IOCTL_SUBCODE(SET_POWER_DOWN), /*24*/ 358 GEN_MP_IOCTL_SUBCODE(GET_THERMAL_METER), /*25*/ 359 GEN_MP_IOCTL_SUBCODE(GET_POWER_MODE), /*26*/ 360 GEN_MP_IOCTL_SUBCODE(EFUSE), /*27*/ 361 GEN_MP_IOCTL_SUBCODE(EFUSE_MAP), /*28*/ 362 GEN_MP_IOCTL_SUBCODE(GET_EFUSE_MAX_SIZE), /*29*/ 363 GEN_MP_IOCTL_SUBCODE(GET_EFUSE_CURRENT_SIZE), /*30*/ 364 GEN_MP_IOCTL_SUBCODE(SC_TX), /*31*/ 365 GEN_MP_IOCTL_SUBCODE(CS_TX), /*32*/ 366 GEN_MP_IOCTL_SUBCODE(ST_TX), /*33*/ 367 GEN_MP_IOCTL_SUBCODE(SET_ANTENNA), /*34*/ 368 MAX_MP_IOCTL_SUBCODE, 369 }; 370 371 unsigned int mp_ioctl_xmit_packet_hdl(struct oid_par_priv *poid_par_priv); 372 373 #ifdef _RTL871X_MP_IOCTL_C_ /* CAUTION!!! */ 374 /* This ifdef _MUST_ be left in!! */ 375 376 static struct mp_ioctl_handler mp_ioctl_hdl[] = { 377 {sizeof(u32), oid_rt_pro_start_test_hdl, 378 OID_RT_PRO_START_TEST},/*0*/ 379 {sizeof(u32), oid_rt_pro_stop_test_hdl, 380 OID_RT_PRO_STOP_TEST},/*1*/ 381 {sizeof(struct rwreg_param), 382 oid_rt_pro_read_register_hdl, 383 OID_RT_PRO_READ_REGISTER},/*2*/ 384 {sizeof(struct rwreg_param), 385 oid_rt_pro_write_register_hdl, 386 OID_RT_PRO_WRITE_REGISTER}, 387 {sizeof(u32), 388 oid_rt_pro_set_channel_direct_call_hdl, 389 OID_RT_PRO_SET_CHANNEL_DIRECT_CALL}, 390 {sizeof(struct txpower_param), 391 oid_rt_pro_set_tx_power_control_hdl, 392 OID_RT_PRO_SET_TX_POWER_CONTROL}, 393 {sizeof(u32), 394 oid_rt_pro_set_data_rate_hdl, 395 OID_RT_PRO_SET_DATA_RATE}, 396 {sizeof(struct bb_reg_param), 397 oid_rt_pro_read_bb_reg_hdl, 398 OID_RT_PRO_READ_BB_REG},/*7*/ 399 {sizeof(struct bb_reg_param), 400 oid_rt_pro_write_bb_reg_hdl, 401 OID_RT_PRO_WRITE_BB_REG}, 402 {sizeof(struct rwreg_param), 403 oid_rt_pro_read_rf_reg_hdl, 404 OID_RT_PRO_RF_READ_REGISTRY},/*9*/ 405 {sizeof(struct rwreg_param), 406 oid_rt_pro_write_rf_reg_hdl, 407 OID_RT_PRO_RF_WRITE_REGISTRY}, 408 {sizeof(struct rfintfs_parm), NULL, 0}, 409 {0, &mp_ioctl_xmit_packet_hdl, 0},/*12*/ 410 {sizeof(struct psmode_param), NULL, 0},/*13*/ 411 {sizeof(struct eeprom_rw_param), NULL, 0},/*14*/ 412 {sizeof(struct eeprom_rw_param), NULL, 0},/*15*/ 413 {sizeof(u8), oid_rt_pro_set_power_tracking_hdl, 414 OID_RT_PRO_SET_POWER_TRACKING},/*16*/ 415 {sizeof(u32), NULL, 0},/*17*/ 416 {sizeof(u32), oid_rt_pro_set_continuous_tx_hdl, 417 OID_RT_PRO_SET_CONTINUOUS_TX},/*18*/ 418 {sizeof(u32), oid_rt_set_bandwidth_hdl, 419 OID_RT_SET_BANDWIDTH},/*19*/ 420 {sizeof(u32), oid_rt_set_rx_packet_type_hdl, 421 OID_RT_SET_RX_PACKET_TYPE},/*20*/ 422 {0, oid_rt_reset_phy_rx_packet_count_hdl, 423 OID_RT_RESET_PHY_RX_PACKET_COUNT},/*21*/ 424 {sizeof(u32), oid_rt_get_phy_rx_packet_received_hdl, 425 OID_RT_GET_PHY_RX_PACKET_RECEIVED},/*22*/ 426 {sizeof(u32), oid_rt_get_phy_rx_packet_crc32_error_hdl, 427 OID_RT_GET_PHY_RX_PACKET_CRC32_ERROR},/*23*/ 428 {sizeof(unsigned char), oid_rt_set_power_down_hdl, 429 OID_RT_SET_POWER_DOWN},/*24*/ 430 {sizeof(u32), oid_rt_get_thermal_meter_hdl, 431 OID_RT_PRO_GET_THERMAL_METER},/*25*/ 432 {sizeof(u32), oid_rt_get_power_mode_hdl, 433 OID_RT_GET_POWER_MODE},/*26*/ 434 {sizeof(struct EFUSE_ACCESS_STRUCT), 435 oid_rt_pro_efuse_hdl, OID_RT_PRO_EFUSE},/*27*/ 436 {EFUSE_MAP_MAX_SIZE, oid_rt_pro_efuse_map_hdl, 437 OID_RT_PRO_EFUSE_MAP},/*28*/ 438 {sizeof(u32), oid_rt_get_efuse_max_size_hdl, 439 OID_RT_GET_EFUSE_MAX_SIZE},/*29*/ 440 {sizeof(u32), oid_rt_get_efuse_current_size_hdl, 441 OID_RT_GET_EFUSE_CURRENT_SIZE},/*30*/ 442 {sizeof(u32), oid_rt_pro_set_single_carrier_tx_hdl, 443 OID_RT_PRO_SET_SINGLE_CARRIER_TX},/*31*/ 444 {sizeof(u32), oid_rt_pro_set_carrier_suppression_tx_hdl, 445 OID_RT_PRO_SET_CARRIER_SUPPRESSION_TX},/*32*/ 446 {sizeof(u32), oid_rt_pro_set_single_tone_tx_hdl, 447 OID_RT_PRO_SET_SINGLE_TONE_TX},/*33*/ 448 {sizeof(u32), oid_rt_pro_set_antenna_bb_hdl, 449 OID_RT_PRO_SET_ANTENNA_BB},/*34*/ 450 }; 451 452 #else /* _RTL871X_MP_IOCTL_C_ */ 453 extern struct mp_ioctl_handler mp_ioctl_hdl[]; 454 #endif /* _RTL871X_MP_IOCTL_C_ */ 455 456 #endif 457 458