~ubuntu-branches/ubuntu/precise/linux-lowlatency/precise

« back to all changes in this revision

Viewing changes to drivers/staging/rtl8712/rtl871x_mp_ioctl.h

  • Committer: Package Import Robot
  • Author(s): Alessio Igor Bogani
  • Date: 2011-10-26 11:13:05 UTC
  • Revision ID: package-import@ubuntu.com-20111026111305-tz023xykf0i6eosh
Tags: upstream-3.2.0
ImportĀ upstreamĀ versionĀ 3.2.0

Show diffs side-by-side

added added

removed removed

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