Linux Kernel
3.7.1
Main Page
Related Pages
Modules
Namespaces
Data Structures
Files
File List
Globals
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Groups
Pages
drivers
staging
rtl8712
rtl871x_mp_ioctl.h
Go to the documentation of this file.
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 <
[email protected]
>
23
* Larry Finger <
[email protected]
>
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
Generated on Thu Jan 10 2013 14:31:13 for Linux Kernel by
1.8.2