1e24c1f86SMichael Straube /* SPDX-License-Identifier: GPL-2.0 */ 2cf3e6881SAli Bahar /****************************************************************************** 3cf3e6881SAli Bahar * 4cf3e6881SAli Bahar * Copyright(c) 2007 - 2010 Realtek Corporation. All rights reserved. 5cf3e6881SAli Bahar * 6cf3e6881SAli Bahar * Modifications for inclusion into the Linux staging tree are 7cf3e6881SAli Bahar * Copyright(c) 2010 Larry Finger. All rights reserved. 8cf3e6881SAli Bahar * 9cf3e6881SAli Bahar * Contact information: 10cf3e6881SAli Bahar * WLAN FAE <wlanfae@realtek.com> 11cf3e6881SAli Bahar * Larry Finger <Larry.Finger@lwfinger.net> 12cf3e6881SAli Bahar * 13cf3e6881SAli Bahar ******************************************************************************/ 142865d42cSLarry Finger #ifndef _RTL871X_MP_IOCTL_H 152865d42cSLarry Finger #define _RTL871X_MP_IOCTL_H 162865d42cSLarry Finger 172865d42cSLarry Finger #include "osdep_service.h" 182865d42cSLarry Finger #include "drv_types.h" 192865d42cSLarry Finger #include "mp_custom_oid.h" 202865d42cSLarry Finger #include "rtl871x_ioctl.h" 212865d42cSLarry Finger #include "rtl871x_ioctl_rtl.h" 222865d42cSLarry Finger #include "rtl8712_efuse.h" 232865d42cSLarry Finger 242865d42cSLarry Finger #define TESTFWCMDNUMBER 1000000 252865d42cSLarry Finger #define TEST_H2CINT_WAIT_TIME 500 262865d42cSLarry Finger #define TEST_C2HINT_WAIT_TIME 500 272865d42cSLarry Finger #define HCI_TEST_SYSCFG_HWMASK 1 282865d42cSLarry Finger #define _BUSCLK_40M (4 << 2) 292865d42cSLarry Finger 302865d42cSLarry Finger struct CFG_DBG_MSG_STRUCT { 312865d42cSLarry Finger u32 DebugLevel; 322865d42cSLarry Finger u32 DebugComponent_H32; 332865d42cSLarry Finger u32 DebugComponent_L32; 342865d42cSLarry Finger }; 352865d42cSLarry Finger 362865d42cSLarry Finger struct mp_rw_reg { 372865d42cSLarry Finger uint offset; 382865d42cSLarry Finger uint width; 392865d42cSLarry Finger u32 value; 402865d42cSLarry Finger }; 412865d42cSLarry Finger 422865d42cSLarry Finger /* for OID_RT_PRO_READ16_EEPROM & OID_RT_PRO_WRITE16_EEPROM */ 432865d42cSLarry Finger struct eeprom_rw_param { 442865d42cSLarry Finger uint offset; 452865d42cSLarry Finger u16 value; 462865d42cSLarry Finger }; 472865d42cSLarry Finger 482865d42cSLarry Finger struct EFUSE_ACCESS_STRUCT { 492865d42cSLarry Finger u16 start_addr; 502865d42cSLarry Finger u16 cnts; 515979afa2SGustavo A. R. Silva u8 data[]; 522865d42cSLarry Finger }; 532865d42cSLarry Finger 542865d42cSLarry Finger struct burst_rw_reg { 552865d42cSLarry Finger uint offset; 562865d42cSLarry Finger uint len; 572865d42cSLarry Finger u8 Data[256]; 582865d42cSLarry Finger }; 592865d42cSLarry Finger 602865d42cSLarry Finger struct usb_vendor_req { 612865d42cSLarry Finger u8 bRequest; 622865d42cSLarry Finger u16 wValue; 632865d42cSLarry Finger u16 wIndex; 642865d42cSLarry Finger u16 wLength; 652865d42cSLarry Finger u8 u8Dir;/*0:OUT, 1:IN */ 662865d42cSLarry Finger u8 u8InData; 672865d42cSLarry Finger }; 682865d42cSLarry Finger 692865d42cSLarry Finger struct DR_VARIABLE_STRUCT { 702865d42cSLarry Finger u8 offset; 712865d42cSLarry Finger u32 variable; 722865d42cSLarry Finger }; 732865d42cSLarry Finger 742865d42cSLarry Finger /* oid_rtl_seg_87_11_00 */ 752865d42cSLarry Finger uint oid_rt_pro_read_register_hdl(struct oid_par_priv *poid_par_priv); 762865d42cSLarry Finger uint oid_rt_pro_write_register_hdl(struct oid_par_priv *poid_par_priv); 772865d42cSLarry Finger /* oid_rtl_seg_81_80_00 */ 782865d42cSLarry Finger uint oid_rt_pro_set_data_rate_hdl( 792865d42cSLarry Finger struct oid_par_priv *poid_par_priv); 802865d42cSLarry Finger uint oid_rt_pro_start_test_hdl(struct oid_par_priv *poid_par_priv); 812865d42cSLarry Finger uint oid_rt_pro_stop_test_hdl(struct oid_par_priv *poid_par_priv); 822865d42cSLarry Finger uint oid_rt_pro_set_channel_direct_call_hdl( 832865d42cSLarry Finger struct oid_par_priv *poid_par_priv); 842865d42cSLarry Finger uint oid_rt_pro_set_antenna_bb_hdl( 852865d42cSLarry Finger struct oid_par_priv *poid_par_priv); 862865d42cSLarry Finger uint oid_rt_pro_set_tx_power_control_hdl( 872865d42cSLarry Finger struct oid_par_priv *poid_par_priv); 882865d42cSLarry Finger /* oid_rtl_seg_81_80_20 */ 892865d42cSLarry Finger uint oid_rt_pro_query_tx_packet_sent_hdl( 902865d42cSLarry Finger struct oid_par_priv *poid_par_priv); 912865d42cSLarry Finger uint oid_rt_pro_query_rx_packet_received_hdl( 922865d42cSLarry Finger struct oid_par_priv *poid_par_priv); 932865d42cSLarry Finger uint oid_rt_pro_query_rx_packet_crc32_error_hdl( 942865d42cSLarry Finger struct oid_par_priv *poid_par_priv); 952865d42cSLarry Finger uint oid_rt_pro_reset_tx_packet_sent_hdl( 962865d42cSLarry Finger struct oid_par_priv *poid_par_priv); 972865d42cSLarry Finger uint oid_rt_pro_reset_rx_packet_received_hdl( 982865d42cSLarry Finger struct oid_par_priv *poid_par_priv); 992865d42cSLarry Finger uint oid_rt_pro_set_modulation_hdl(struct oid_par_priv *poid_par_priv); 1002865d42cSLarry Finger uint oid_rt_pro_set_continuous_tx_hdl( 1012865d42cSLarry Finger struct oid_par_priv *poid_par_priv); 1022865d42cSLarry Finger uint oid_rt_pro_set_single_carrier_tx_hdl( 1032865d42cSLarry Finger struct oid_par_priv *poid_par_priv); 1042865d42cSLarry Finger uint oid_rt_pro_set_carrier_suppression_tx_hdl( 1052865d42cSLarry Finger struct oid_par_priv *poid_par_priv); 1062865d42cSLarry Finger uint oid_rt_pro_set_single_tone_tx_hdl( 1072865d42cSLarry Finger struct oid_par_priv *poid_par_priv); 1082865d42cSLarry Finger /* oid_rtl_seg_81_87 */ 1092865d42cSLarry Finger uint oid_rt_pro_write_bb_reg_hdl(struct oid_par_priv *poid_par_priv); 1102865d42cSLarry Finger uint oid_rt_pro_read_bb_reg_hdl(struct oid_par_priv *poid_par_priv); 1112865d42cSLarry Finger uint oid_rt_pro_write_rf_reg_hdl(struct oid_par_priv *poid_par_priv); 1122865d42cSLarry Finger uint oid_rt_pro_read_rf_reg_hdl(struct oid_par_priv *poid_par_priv); 1132865d42cSLarry Finger /* oid_rtl_seg_81_85 */ 1142865d42cSLarry Finger uint oid_rt_wireless_mode_hdl(struct oid_par_priv *poid_par_priv); 1152865d42cSLarry Finger uint oid_rt_pro_read_efuse_hdl(struct oid_par_priv *poid_par_priv); 1162865d42cSLarry Finger uint oid_rt_pro_write_efuse_hdl(struct oid_par_priv *poid_par_priv); 1172865d42cSLarry Finger uint oid_rt_get_efuse_current_size_hdl( 1182865d42cSLarry Finger struct oid_par_priv *poid_par_priv); 1192865d42cSLarry Finger uint oid_rt_pro_efuse_hdl(struct oid_par_priv *poid_par_priv); 1202865d42cSLarry Finger uint oid_rt_pro_efuse_map_hdl(struct oid_par_priv *poid_par_priv); 1212865d42cSLarry Finger uint oid_rt_set_bandwidth_hdl(struct oid_par_priv *poid_par_priv); 1222865d42cSLarry Finger uint oid_rt_set_rx_packet_type_hdl(struct oid_par_priv *poid_par_priv); 1232865d42cSLarry Finger uint oid_rt_get_efuse_max_size_hdl(struct oid_par_priv *poid_par_priv); 1242865d42cSLarry Finger uint oid_rt_get_thermal_meter_hdl( 1252865d42cSLarry Finger struct oid_par_priv *poid_par_priv); 1262865d42cSLarry Finger uint oid_rt_reset_phy_rx_packet_count_hdl( 1272865d42cSLarry Finger struct oid_par_priv *poid_par_priv); 1282865d42cSLarry Finger uint oid_rt_get_phy_rx_packet_received_hdl( 1292865d42cSLarry Finger struct oid_par_priv *poid_par_priv); 1302865d42cSLarry Finger uint oid_rt_get_phy_rx_packet_crc32_error_hdl( 1312865d42cSLarry Finger struct oid_par_priv *poid_par_priv); 1322865d42cSLarry Finger uint oid_rt_set_power_down_hdl( 1332865d42cSLarry Finger struct oid_par_priv *poid_par_priv); 1342865d42cSLarry Finger uint oid_rt_get_power_mode_hdl( 1352865d42cSLarry Finger struct oid_par_priv *poid_par_priv); 1362865d42cSLarry Finger #ifdef _RTL871X_MP_IOCTL_C_ /* CAUTION!!! */ 1372865d42cSLarry Finger /* This ifdef _MUST_ be left in!! */ 1382865d42cSLarry Finger 1392865d42cSLarry Finger #else /* _RTL871X_MP_IOCTL_C_ */ 1402865d42cSLarry Finger extern struct oid_obj_priv oid_rtl_seg_81_87[5]; 1412865d42cSLarry Finger extern struct oid_obj_priv oid_rtl_seg_87_11_00[32]; 1422865d42cSLarry Finger extern struct oid_obj_priv oid_rtl_seg_87_11_20[5]; 1432865d42cSLarry Finger extern struct oid_obj_priv oid_rtl_seg_87_11_50[2]; 1442865d42cSLarry Finger extern struct oid_obj_priv oid_rtl_seg_87_11_80[1]; 1452865d42cSLarry Finger extern struct oid_obj_priv oid_rtl_seg_87_11_B0[1]; 1462865d42cSLarry Finger extern struct oid_obj_priv oid_rtl_seg_87_11_F0[16]; 1472865d42cSLarry Finger extern struct oid_obj_priv oid_rtl_seg_87_12_00[32]; 1482865d42cSLarry Finger 1492865d42cSLarry Finger #endif /* _RTL871X_MP_IOCTL_C_ */ 1502865d42cSLarry Finger 1512865d42cSLarry Finger enum MP_MODE { 1522865d42cSLarry Finger MP_START_MODE, 1532865d42cSLarry Finger MP_STOP_MODE, 1542865d42cSLarry Finger MP_ERR_MODE 1552865d42cSLarry Finger }; 1562865d42cSLarry Finger 1572865d42cSLarry Finger struct rwreg_param { 1582865d42cSLarry Finger unsigned int offset; 1592865d42cSLarry Finger unsigned int width; 1602865d42cSLarry Finger unsigned int value; 1612865d42cSLarry Finger }; 1622865d42cSLarry Finger 1632865d42cSLarry Finger struct bbreg_param { 1642865d42cSLarry Finger unsigned int offset; 1652865d42cSLarry Finger unsigned int phymask; 1662865d42cSLarry Finger unsigned int value; 1672865d42cSLarry Finger }; 1682865d42cSLarry Finger 1692865d42cSLarry Finger struct txpower_param { 1702865d42cSLarry Finger unsigned int pwr_index; 1712865d42cSLarry Finger }; 1722865d42cSLarry Finger 1732865d42cSLarry Finger struct datarate_param { 1742865d42cSLarry Finger unsigned int rate_index; 1752865d42cSLarry Finger }; 1762865d42cSLarry Finger 1772865d42cSLarry Finger struct rfintfs_parm { 1782865d42cSLarry Finger unsigned int rfintfs; 1792865d42cSLarry Finger }; 1802865d42cSLarry Finger 1812865d42cSLarry Finger struct mp_xmit_packet { 1822865d42cSLarry Finger unsigned int len; 1832865d42cSLarry Finger }; 1842865d42cSLarry Finger 1852865d42cSLarry Finger struct psmode_param { 1862865d42cSLarry Finger unsigned int ps_mode; 1872865d42cSLarry Finger unsigned int smart_ps; 1882865d42cSLarry Finger }; 1892865d42cSLarry Finger 1902865d42cSLarry Finger struct mp_ioctl_handler { 1912865d42cSLarry Finger unsigned int paramsize; 1922865d42cSLarry Finger unsigned int (*handler)(struct oid_par_priv *poid_par_priv); 1932865d42cSLarry Finger unsigned int oid; 1942865d42cSLarry Finger }; 1952865d42cSLarry Finger 1962865d42cSLarry Finger struct mp_ioctl_param { 1972865d42cSLarry Finger unsigned int subcode; 1982865d42cSLarry Finger unsigned int len; 1995979afa2SGustavo A. R. Silva unsigned char data[]; 2002865d42cSLarry Finger }; 2012865d42cSLarry Finger 2022865d42cSLarry Finger #define GEN_MP_IOCTL_SUBCODE(code) _MP_IOCTL_ ## code ## _CMD_ 2032865d42cSLarry Finger 2042865d42cSLarry Finger enum RTL871X_MP_IOCTL_SUBCODE { 2052865d42cSLarry Finger GEN_MP_IOCTL_SUBCODE(MP_START), /*0*/ 2062865d42cSLarry Finger GEN_MP_IOCTL_SUBCODE(MP_STOP), /*1*/ 2072865d42cSLarry Finger GEN_MP_IOCTL_SUBCODE(READ_REG), /*2*/ 2082865d42cSLarry Finger GEN_MP_IOCTL_SUBCODE(WRITE_REG), 2092865d42cSLarry Finger GEN_MP_IOCTL_SUBCODE(SET_CHANNEL), /*4*/ 2102865d42cSLarry Finger GEN_MP_IOCTL_SUBCODE(SET_TXPOWER), /*5*/ 2112865d42cSLarry Finger GEN_MP_IOCTL_SUBCODE(SET_DATARATE), /*6*/ 2122865d42cSLarry Finger GEN_MP_IOCTL_SUBCODE(READ_BB_REG), /*7*/ 2132865d42cSLarry Finger GEN_MP_IOCTL_SUBCODE(WRITE_BB_REG), 2142865d42cSLarry Finger GEN_MP_IOCTL_SUBCODE(READ_RF_REG), /*9*/ 2152865d42cSLarry Finger GEN_MP_IOCTL_SUBCODE(WRITE_RF_REG), 2162865d42cSLarry Finger GEN_MP_IOCTL_SUBCODE(SET_RF_INTFS), 2172865d42cSLarry Finger GEN_MP_IOCTL_SUBCODE(IOCTL_XMIT_PACKET), /*12*/ 2182865d42cSLarry Finger GEN_MP_IOCTL_SUBCODE(PS_STATE), /*13*/ 2192865d42cSLarry Finger GEN_MP_IOCTL_SUBCODE(READ16_EEPROM), /*14*/ 2202865d42cSLarry Finger GEN_MP_IOCTL_SUBCODE(WRITE16_EEPROM), /*15*/ 2212865d42cSLarry Finger GEN_MP_IOCTL_SUBCODE(SET_PTM), /*16*/ 2222865d42cSLarry Finger GEN_MP_IOCTL_SUBCODE(READ_TSSI), /*17*/ 2232865d42cSLarry Finger GEN_MP_IOCTL_SUBCODE(CNTU_TX), /*18*/ 2242865d42cSLarry Finger GEN_MP_IOCTL_SUBCODE(SET_BANDWIDTH), /*19*/ 2252865d42cSLarry Finger GEN_MP_IOCTL_SUBCODE(SET_RX_PKT_TYPE), /*20*/ 2262865d42cSLarry Finger GEN_MP_IOCTL_SUBCODE(RESET_PHY_RX_PKT_CNT), /*21*/ 2272865d42cSLarry Finger GEN_MP_IOCTL_SUBCODE(GET_PHY_RX_PKT_RECV), /*22*/ 2282865d42cSLarry Finger GEN_MP_IOCTL_SUBCODE(GET_PHY_RX_PKT_ERROR), /*23*/ 2292865d42cSLarry Finger GEN_MP_IOCTL_SUBCODE(SET_POWER_DOWN), /*24*/ 2302865d42cSLarry Finger GEN_MP_IOCTL_SUBCODE(GET_THERMAL_METER), /*25*/ 2312865d42cSLarry Finger GEN_MP_IOCTL_SUBCODE(GET_POWER_MODE), /*26*/ 2322865d42cSLarry Finger GEN_MP_IOCTL_SUBCODE(EFUSE), /*27*/ 2332865d42cSLarry Finger GEN_MP_IOCTL_SUBCODE(EFUSE_MAP), /*28*/ 2342865d42cSLarry Finger GEN_MP_IOCTL_SUBCODE(GET_EFUSE_MAX_SIZE), /*29*/ 2352865d42cSLarry Finger GEN_MP_IOCTL_SUBCODE(GET_EFUSE_CURRENT_SIZE), /*30*/ 2362865d42cSLarry Finger GEN_MP_IOCTL_SUBCODE(SC_TX), /*31*/ 2372865d42cSLarry Finger GEN_MP_IOCTL_SUBCODE(CS_TX), /*32*/ 2382865d42cSLarry Finger GEN_MP_IOCTL_SUBCODE(ST_TX), /*33*/ 2392865d42cSLarry Finger GEN_MP_IOCTL_SUBCODE(SET_ANTENNA), /*34*/ 2402865d42cSLarry Finger MAX_MP_IOCTL_SUBCODE, 2412865d42cSLarry Finger }; 2422865d42cSLarry Finger 2432865d42cSLarry Finger unsigned int mp_ioctl_xmit_packet_hdl(struct oid_par_priv *poid_par_priv); 2442865d42cSLarry Finger 2452865d42cSLarry Finger #ifdef _RTL871X_MP_IOCTL_C_ /* CAUTION!!! */ 2462865d42cSLarry Finger /* This ifdef _MUST_ be left in!! */ 2472865d42cSLarry Finger 248e3dc896bSLarry Finger static struct mp_ioctl_handler mp_ioctl_hdl[] = { 2492865d42cSLarry Finger {sizeof(u32), oid_rt_pro_start_test_hdl, 2502865d42cSLarry Finger OID_RT_PRO_START_TEST},/*0*/ 2512865d42cSLarry Finger {sizeof(u32), oid_rt_pro_stop_test_hdl, 2522865d42cSLarry Finger OID_RT_PRO_STOP_TEST},/*1*/ 2532865d42cSLarry Finger {sizeof(struct rwreg_param), 2542865d42cSLarry Finger oid_rt_pro_read_register_hdl, 2552865d42cSLarry Finger OID_RT_PRO_READ_REGISTER},/*2*/ 2562865d42cSLarry Finger {sizeof(struct rwreg_param), 2572865d42cSLarry Finger oid_rt_pro_write_register_hdl, 2582865d42cSLarry Finger OID_RT_PRO_WRITE_REGISTER}, 2592865d42cSLarry Finger {sizeof(u32), 2602865d42cSLarry Finger oid_rt_pro_set_channel_direct_call_hdl, 2612865d42cSLarry Finger OID_RT_PRO_SET_CHANNEL_DIRECT_CALL}, 2622865d42cSLarry Finger {sizeof(struct txpower_param), 2632865d42cSLarry Finger oid_rt_pro_set_tx_power_control_hdl, 2642865d42cSLarry Finger OID_RT_PRO_SET_TX_POWER_CONTROL}, 2652865d42cSLarry Finger {sizeof(u32), 2662865d42cSLarry Finger oid_rt_pro_set_data_rate_hdl, 2672865d42cSLarry Finger OID_RT_PRO_SET_DATA_RATE}, 2682865d42cSLarry Finger {sizeof(struct bb_reg_param), 2692865d42cSLarry Finger oid_rt_pro_read_bb_reg_hdl, 2702865d42cSLarry Finger OID_RT_PRO_READ_BB_REG},/*7*/ 2712865d42cSLarry Finger {sizeof(struct bb_reg_param), 2722865d42cSLarry Finger oid_rt_pro_write_bb_reg_hdl, 2732865d42cSLarry Finger OID_RT_PRO_WRITE_BB_REG}, 2742865d42cSLarry Finger {sizeof(struct rwreg_param), 2752865d42cSLarry Finger oid_rt_pro_read_rf_reg_hdl, 2762865d42cSLarry Finger OID_RT_PRO_RF_READ_REGISTRY},/*9*/ 2772865d42cSLarry Finger {sizeof(struct rwreg_param), 2782865d42cSLarry Finger oid_rt_pro_write_rf_reg_hdl, 2792865d42cSLarry Finger OID_RT_PRO_RF_WRITE_REGISTRY}, 2802865d42cSLarry Finger {sizeof(struct rfintfs_parm), NULL, 0}, 281bce2fc58SAmitoj Kaur Chawla {0, mp_ioctl_xmit_packet_hdl, 0},/*12*/ 2822865d42cSLarry Finger {sizeof(struct psmode_param), NULL, 0},/*13*/ 2832865d42cSLarry Finger {sizeof(struct eeprom_rw_param), NULL, 0},/*14*/ 2842865d42cSLarry Finger {sizeof(struct eeprom_rw_param), NULL, 0},/*15*/ 285ac9bfc14SAli Bahar {sizeof(unsigned char), NULL, 0},/*16*/ 2862865d42cSLarry Finger {sizeof(u32), NULL, 0},/*17*/ 2872865d42cSLarry Finger {sizeof(u32), oid_rt_pro_set_continuous_tx_hdl, 2882865d42cSLarry Finger OID_RT_PRO_SET_CONTINUOUS_TX},/*18*/ 2892865d42cSLarry Finger {sizeof(u32), oid_rt_set_bandwidth_hdl, 2902865d42cSLarry Finger OID_RT_SET_BANDWIDTH},/*19*/ 2912865d42cSLarry Finger {sizeof(u32), oid_rt_set_rx_packet_type_hdl, 2922865d42cSLarry Finger OID_RT_SET_RX_PACKET_TYPE},/*20*/ 2932865d42cSLarry Finger {0, oid_rt_reset_phy_rx_packet_count_hdl, 2942865d42cSLarry Finger OID_RT_RESET_PHY_RX_PACKET_COUNT},/*21*/ 2952865d42cSLarry Finger {sizeof(u32), oid_rt_get_phy_rx_packet_received_hdl, 2962865d42cSLarry Finger OID_RT_GET_PHY_RX_PACKET_RECEIVED},/*22*/ 2972865d42cSLarry Finger {sizeof(u32), oid_rt_get_phy_rx_packet_crc32_error_hdl, 2982865d42cSLarry Finger OID_RT_GET_PHY_RX_PACKET_CRC32_ERROR},/*23*/ 2992865d42cSLarry Finger {sizeof(unsigned char), oid_rt_set_power_down_hdl, 3002865d42cSLarry Finger OID_RT_SET_POWER_DOWN},/*24*/ 3012865d42cSLarry Finger {sizeof(u32), oid_rt_get_thermal_meter_hdl, 3022865d42cSLarry Finger OID_RT_PRO_GET_THERMAL_METER},/*25*/ 3032865d42cSLarry Finger {sizeof(u32), oid_rt_get_power_mode_hdl, 3042865d42cSLarry Finger OID_RT_GET_POWER_MODE},/*26*/ 3052865d42cSLarry Finger {sizeof(struct EFUSE_ACCESS_STRUCT), 3062865d42cSLarry Finger oid_rt_pro_efuse_hdl, OID_RT_PRO_EFUSE},/*27*/ 3072865d42cSLarry Finger {EFUSE_MAP_MAX_SIZE, oid_rt_pro_efuse_map_hdl, 3082865d42cSLarry Finger OID_RT_PRO_EFUSE_MAP},/*28*/ 3092865d42cSLarry Finger {sizeof(u32), oid_rt_get_efuse_max_size_hdl, 3102865d42cSLarry Finger OID_RT_GET_EFUSE_MAX_SIZE},/*29*/ 3112865d42cSLarry Finger {sizeof(u32), oid_rt_get_efuse_current_size_hdl, 3122865d42cSLarry Finger OID_RT_GET_EFUSE_CURRENT_SIZE},/*30*/ 3132865d42cSLarry Finger {sizeof(u32), oid_rt_pro_set_single_carrier_tx_hdl, 3142865d42cSLarry Finger OID_RT_PRO_SET_SINGLE_CARRIER_TX},/*31*/ 3152865d42cSLarry Finger {sizeof(u32), oid_rt_pro_set_carrier_suppression_tx_hdl, 3162865d42cSLarry Finger OID_RT_PRO_SET_CARRIER_SUPPRESSION_TX},/*32*/ 3172865d42cSLarry Finger {sizeof(u32), oid_rt_pro_set_single_tone_tx_hdl, 3182865d42cSLarry Finger OID_RT_PRO_SET_SINGLE_TONE_TX},/*33*/ 3192865d42cSLarry Finger {sizeof(u32), oid_rt_pro_set_antenna_bb_hdl, 3202865d42cSLarry Finger OID_RT_PRO_SET_ANTENNA_BB},/*34*/ 3212865d42cSLarry Finger }; 3222865d42cSLarry Finger 3232865d42cSLarry Finger #else /* _RTL871X_MP_IOCTL_C_ */ 3242865d42cSLarry Finger extern struct mp_ioctl_handler mp_ioctl_hdl[]; 3252865d42cSLarry Finger #endif /* _RTL871X_MP_IOCTL_C_ */ 3262865d42cSLarry Finger 3272865d42cSLarry Finger #endif 3282865d42cSLarry Finger 329