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
scsi
qla2xxx
qla_gbl.h
Go to the documentation of this file.
1
/*
2
* QLogic Fibre Channel HBA Driver
3
* Copyright (c) 2003-2012 QLogic Corporation
4
*
5
* See LICENSE.qla2xxx for copyright and licensing details.
6
*/
7
#ifndef __QLA_GBL_H
8
#define __QLA_GBL_H
9
10
#include <
linux/interrupt.h
>
11
12
/*
13
* Global Function Prototypes in qla_init.c source file.
14
*/
15
extern
int
qla2x00_initialize_adapter
(
scsi_qla_host_t
*);
16
17
extern
int
qla2100_pci_config
(
struct
scsi_qla_host
*);
18
extern
int
qla2300_pci_config
(
struct
scsi_qla_host
*);
19
extern
int
qla24xx_pci_config
(
scsi_qla_host_t
*);
20
extern
int
qla25xx_pci_config
(
scsi_qla_host_t
*);
21
extern
void
qla2x00_reset_chip
(
struct
scsi_qla_host
*);
22
extern
void
qla24xx_reset_chip
(
struct
scsi_qla_host
*);
23
extern
int
qla2x00_chip_diag
(
struct
scsi_qla_host
*);
24
extern
int
qla24xx_chip_diag
(
struct
scsi_qla_host
*);
25
extern
void
qla2x00_config_rings
(
struct
scsi_qla_host
*);
26
extern
void
qla24xx_config_rings
(
struct
scsi_qla_host
*);
27
extern
void
qla2x00_reset_adapter
(
struct
scsi_qla_host
*);
28
extern
void
qla24xx_reset_adapter
(
struct
scsi_qla_host
*);
29
extern
int
qla2x00_nvram_config
(
struct
scsi_qla_host
*);
30
extern
int
qla24xx_nvram_config
(
struct
scsi_qla_host
*);
31
extern
int
qla81xx_nvram_config
(
struct
scsi_qla_host
*);
32
extern
void
qla2x00_update_fw_options
(
struct
scsi_qla_host
*);
33
extern
void
qla24xx_update_fw_options
(
scsi_qla_host_t
*);
34
extern
void
qla81xx_update_fw_options
(
scsi_qla_host_t
*);
35
extern
int
qla2x00_load_risc
(
struct
scsi_qla_host
*,
uint32_t
*);
36
extern
int
qla24xx_load_risc
(
scsi_qla_host_t
*,
uint32_t
*);
37
extern
int
qla81xx_load_risc
(
scsi_qla_host_t
*,
uint32_t
*);
38
39
extern
int
qla2x00_perform_loop_resync
(
scsi_qla_host_t
*);
40
extern
int
qla2x00_loop_resync
(
scsi_qla_host_t
*);
41
42
extern
int
qla2x00_find_new_loop_id
(
scsi_qla_host_t
*,
fc_port_t
*);
43
44
extern
int
qla2x00_fabric_login
(
scsi_qla_host_t
*,
fc_port_t
*,
uint16_t
*);
45
extern
int
qla2x00_local_device_login
(
scsi_qla_host_t
*,
fc_port_t
*);
46
47
extern
void
qla2x00_update_fcports
(
scsi_qla_host_t
*);
48
49
extern
int
qla2x00_abort_isp
(
scsi_qla_host_t
*);
50
extern
void
qla2x00_abort_isp_cleanup
(
scsi_qla_host_t
*);
51
extern
void
qla2x00_quiesce_io
(
scsi_qla_host_t
*);
52
53
extern
void
qla2x00_update_fcport
(
scsi_qla_host_t
*,
fc_port_t
*);
54
55
extern
void
qla2x00_alloc_fw_dump
(
scsi_qla_host_t
*);
56
extern
void
qla2x00_try_to_stop_firmware
(
scsi_qla_host_t
*);
57
58
extern
int
qla2x00_get_thermal_temp
(
scsi_qla_host_t
*,
uint16_t
*,
uint16_t
*);
59
60
extern
void
qla84xx_put_chip
(
struct
scsi_qla_host
*);
61
62
extern
int
qla2x00_async_login
(
struct
scsi_qla_host
*,
fc_port_t
*,
63
uint16_t
*);
64
extern
int
qla2x00_async_logout
(
struct
scsi_qla_host
*,
fc_port_t
*);
65
extern
int
qla2x00_async_adisc
(
struct
scsi_qla_host
*,
fc_port_t
*,
66
uint16_t
*);
67
extern
int
qla2x00_async_tm_cmd
(
fc_port_t
*,
uint32_t
,
uint32_t
,
uint32_t
);
68
extern
void
qla2x00_async_login_done
(
struct
scsi_qla_host
*,
fc_port_t
*,
69
uint16_t
*);
70
extern
void
qla2x00_async_logout_done
(
struct
scsi_qla_host
*,
fc_port_t
*,
71
uint16_t
*);
72
extern
void
qla2x00_async_adisc_done
(
struct
scsi_qla_host
*,
fc_port_t
*,
73
uint16_t
*);
74
extern
void
*
qla2x00_alloc_iocbs
(
struct
scsi_qla_host
*,
srb_t
*);
75
extern
int
qla24xx_update_fcport_fcp_prio
(
scsi_qla_host_t
*,
fc_port_t
*);
76
77
extern
fc_port_t
*
78
qla2x00_alloc_fcport
(
scsi_qla_host_t
*,
gfp_t
);
79
80
extern
int
__qla83xx_set_idc_control
(
scsi_qla_host_t
*,
uint32_t
);
81
extern
int
__qla83xx_get_idc_control
(
scsi_qla_host_t
*,
uint32_t
*);
82
extern
void
qla83xx_idc_audit
(
scsi_qla_host_t
*,
int
);
83
extern
int
qla83xx_nic_core_reset
(
scsi_qla_host_t
*);
84
extern
void
qla83xx_reset_ownership
(
scsi_qla_host_t
*);
85
extern
int
qla2xxx_mctp_dump
(
scsi_qla_host_t
*);
86
87
/*
88
* Global Data in qla_os.c source file.
89
*/
90
extern
char
qla2x00_version_str
[];
91
92
extern
int
ql2xlogintimeout
;
93
extern
int
qlport_down_retry
;
94
extern
int
ql2xplogiabsentdevice
;
95
extern
int
ql2xloginretrycount
;
96
extern
int
ql2xfdmienable
;
97
extern
int
ql2xallocfwdump
;
98
extern
int
ql2xextended_error_logging
;
99
extern
int
ql2xiidmaenable
;
100
extern
int
ql2xmaxqueues
;
101
extern
int
ql2xmultique_tag
;
102
extern
int
ql2xfwloadbin
;
103
extern
int
ql2xetsenable
;
104
extern
int
ql2xshiftctondsd
;
105
extern
int
ql2xdbwr
;
106
extern
int
ql2xasynctmfenable
;
107
extern
int
ql2xgffidenable
;
108
extern
int
ql2xenabledif
;
109
extern
int
ql2xenablehba_err_chk
;
110
extern
int
ql2xtargetreset
;
111
extern
int
ql2xdontresethba
;
112
extern
unsigned
int
ql2xmaxlun
;
113
extern
int
ql2xmdcapmask
;
114
extern
int
ql2xmdenable
;
115
116
extern
int
qla2x00_loop_reset
(
scsi_qla_host_t
*);
117
extern
void
qla2x00_abort_all_cmds
(
scsi_qla_host_t
*,
int
);
118
extern
int
qla2x00_post_aen_work
(
struct
scsi_qla_host
*,
enum
119
fc_host_event_code
,
u32
);
120
extern
int
qla2x00_post_idc_ack_work
(
struct
scsi_qla_host
*,
uint16_t
*);
121
extern
int
qla2x00_post_async_login_work
(
struct
scsi_qla_host
*,
fc_port_t
*,
122
uint16_t
*);
123
extern
int
qla2x00_post_async_login_done_work
(
struct
scsi_qla_host
*,
124
fc_port_t
*,
uint16_t
*);
125
extern
int
qla2x00_post_async_logout_work
(
struct
scsi_qla_host
*,
fc_port_t
*,
126
uint16_t
*);
127
extern
int
qla2x00_post_async_logout_done_work
(
struct
scsi_qla_host
*,
128
fc_port_t
*,
uint16_t
*);
129
extern
int
qla2x00_post_async_adisc_work
(
struct
scsi_qla_host
*,
fc_port_t
*,
130
uint16_t
*);
131
extern
int
qla2x00_post_async_adisc_done_work
(
struct
scsi_qla_host
*,
132
fc_port_t
*,
uint16_t
*);
133
extern
int
qla2x00_post_uevent_work
(
struct
scsi_qla_host
*,
u32
);
134
135
extern
int
qla81xx_restart_mpi_firmware
(
scsi_qla_host_t
*);
136
137
extern
struct
scsi_qla_host
*
qla2x00_create_host
(
struct
scsi_host_template
*,
138
struct
qla_hw_data
*);
139
extern
void
qla2x00_free_host
(
struct
scsi_qla_host
*);
140
extern
void
qla2x00_relogin
(
struct
scsi_qla_host
*);
141
extern
void
qla2x00_do_work
(
struct
scsi_qla_host
*);
142
extern
void
qla2x00_free_fcports
(
struct
scsi_qla_host
*);
143
144
extern
void
qla83xx_schedule_work
(
scsi_qla_host_t
*,
int
);
145
extern
void
qla83xx_service_idc_aen
(
struct
work_struct
*);
146
extern
void
qla83xx_nic_core_unrecoverable_work
(
struct
work_struct
*);
147
extern
void
qla83xx_idc_state_handler_work
(
struct
work_struct
*);
148
extern
void
qla83xx_nic_core_reset_work
(
struct
work_struct
*);
149
150
extern
void
qla83xx_idc_lock
(
scsi_qla_host_t
*,
uint16_t
);
151
extern
void
qla83xx_idc_unlock
(
scsi_qla_host_t
*,
uint16_t
);
152
extern
int
qla83xx_idc_state_handler
(
scsi_qla_host_t
*);
153
extern
int
qla83xx_set_drv_presence
(
scsi_qla_host_t
*
vha
);
154
extern
int
__qla83xx_set_drv_presence
(
scsi_qla_host_t
*
vha
);
155
extern
int
qla83xx_clear_drv_presence
(
scsi_qla_host_t
*
vha
);
156
extern
int
__qla83xx_clear_drv_presence
(
scsi_qla_host_t
*
vha
);
157
158
/*
159
* Global Functions in qla_mid.c source file.
160
*/
161
extern
struct
scsi_host_template
qla2xxx_driver_template
;
162
extern
struct
scsi_transport_template
*
qla2xxx_transport_vport_template
;
163
extern
void
qla2x00_timer
(
scsi_qla_host_t
*);
164
extern
void
qla2x00_start_timer
(
scsi_qla_host_t
*,
void
*,
unsigned
long
);
165
extern
void
qla24xx_deallocate_vp_id
(
scsi_qla_host_t
*);
166
extern
int
qla24xx_disable_vp
(
scsi_qla_host_t
*);
167
extern
int
qla24xx_enable_vp
(
scsi_qla_host_t
*);
168
extern
int
qla24xx_control_vp
(
scsi_qla_host_t
*,
int
);
169
extern
int
qla24xx_modify_vp_config
(
scsi_qla_host_t
*);
170
extern
int
qla2x00_send_change_request
(
scsi_qla_host_t
*,
uint16_t
,
uint16_t
);
171
extern
void
qla2x00_vp_stop_timer
(
scsi_qla_host_t
*);
172
extern
int
qla24xx_configure_vhba
(
scsi_qla_host_t
*);
173
extern
void
qla24xx_report_id_acquisition
(
scsi_qla_host_t
*,
174
struct
vp_rpt_id_entry_24xx
*);
175
extern
void
qla2x00_do_dpc_all_vps
(
scsi_qla_host_t
*);
176
extern
int
qla24xx_vport_create_req_sanity_check
(
struct
fc_vport
*);
177
extern
scsi_qla_host_t
*
qla24xx_create_vhost
(
struct
fc_vport
*);
178
179
extern
void
qla2x00_sp_free_dma
(
void
*,
void
*);
180
extern
char
*
qla2x00_get_fw_version_str
(
struct
scsi_qla_host
*,
char
*);
181
182
extern
void
qla2x00_mark_device_lost
(
scsi_qla_host_t
*,
fc_port_t
*,
int
,
int
);
183
extern
void
qla2x00_mark_all_devices_lost
(
scsi_qla_host_t
*,
int
);
184
185
extern
struct
fw_blob
*
qla2x00_request_firmware
(
scsi_qla_host_t
*);
186
187
extern
int
qla2x00_wait_for_hba_online
(
scsi_qla_host_t
*);
188
extern
int
qla2x00_wait_for_chip_reset
(
scsi_qla_host_t
*);
189
extern
int
qla2x00_wait_for_fcoe_ctx_reset
(
scsi_qla_host_t
*);
190
191
extern
void
qla2xxx_wake_dpc
(
struct
scsi_qla_host
*);
192
extern
void
qla2x00_alert_all_vps
(
struct
rsp_que
*,
uint16_t
*);
193
extern
void
qla2x00_async_event
(
scsi_qla_host_t
*,
struct
rsp_que
*,
194
uint16_t
*);
195
extern
int
qla2x00_vp_abort_isp
(
scsi_qla_host_t
*);
196
197
/*
198
* Global Function Prototypes in qla_iocb.c source file.
199
*/
200
201
extern
uint16_t
qla2x00_calc_iocbs_32
(
uint16_t
);
202
extern
uint16_t
qla2x00_calc_iocbs_64
(
uint16_t
);
203
extern
void
qla2x00_build_scsi_iocbs_32
(
srb_t
*,
cmd_entry_t
*,
uint16_t
);
204
extern
void
qla2x00_build_scsi_iocbs_64
(
srb_t
*,
cmd_entry_t
*,
uint16_t
);
205
extern
int
qla2x00_start_scsi
(
srb_t
*
sp
);
206
extern
int
qla24xx_start_scsi
(
srb_t
*
sp
);
207
int
qla2x00_marker
(
struct
scsi_qla_host
*,
struct
req_que
*,
struct
rsp_que
*,
208
uint16_t
,
uint16_t
,
uint8_t
);
209
extern
int
qla2x00_start_sp
(
srb_t
*);
210
extern
uint16_t
qla24xx_calc_iocbs
(
scsi_qla_host_t
*,
uint16_t
);
211
extern
void
qla24xx_build_scsi_iocbs
(
srb_t
*,
struct
cmd_type_7
*,
uint16_t
);
212
extern
int
qla24xx_dif_start_scsi
(
srb_t
*);
213
extern
int
qla2x00_start_bidir
(
srb_t
*,
struct
scsi_qla_host
*,
uint32_t
);
214
extern
unsigned
long
qla2x00_get_async_timeout
(
struct
scsi_qla_host
*);
215
216
extern
void
*
qla2x00_alloc_iocbs
(
scsi_qla_host_t
*,
srb_t
*);
217
extern
int
qla2x00_issue_marker
(
scsi_qla_host_t
*,
int
);
218
219
/*
220
* Global Function Prototypes in qla_mbx.c source file.
221
*/
222
extern
int
223
qla2x00_load_ram
(
scsi_qla_host_t
*,
dma_addr_t
,
uint32_t
,
uint32_t
);
224
225
extern
int
226
qla2x00_dump_ram
(
scsi_qla_host_t
*,
dma_addr_t
,
uint32_t
,
uint32_t
);
227
228
extern
int
229
qla2x00_execute_fw
(
scsi_qla_host_t
*,
uint32_t
);
230
231
extern
int
232
qla2x00_get_fw_version
(
scsi_qla_host_t
*);
233
234
extern
int
235
qla2x00_get_fw_options
(
scsi_qla_host_t
*,
uint16_t
*);
236
237
extern
int
238
qla2x00_set_fw_options
(
scsi_qla_host_t
*,
uint16_t
*);
239
240
extern
int
241
qla2x00_mbx_reg_test
(
scsi_qla_host_t
*);
242
243
extern
int
244
qla2x00_verify_checksum
(
scsi_qla_host_t
*,
uint32_t
);
245
246
extern
int
247
qla2x00_issue_iocb
(
scsi_qla_host_t
*,
void
*,
dma_addr_t
,
size_t
);
248
249
extern
int
250
qla2x00_abort_command
(
srb_t
*);
251
252
extern
int
253
qla2x00_abort_target
(
struct
fc_port
*,
unsigned
int
,
int
);
254
255
extern
int
256
qla2x00_lun_reset
(
struct
fc_port
*,
unsigned
int
,
int
);
257
258
extern
int
259
qla2x00_get_adapter_id
(
scsi_qla_host_t
*,
uint16_t
*,
uint8_t
*,
uint8_t
*,
260
uint8_t
*,
uint16_t
*,
uint16_t
*);
261
262
extern
int
263
qla2x00_get_retry_cnt
(
scsi_qla_host_t
*,
uint8_t
*,
uint8_t
*,
uint16_t
*);
264
265
extern
int
266
qla2x00_init_firmware
(
scsi_qla_host_t
*,
uint16_t
);
267
268
extern
int
269
qla2x00_get_node_name_list
(
scsi_qla_host_t
*,
void
**,
int
*);
270
271
extern
int
272
qla2x00_get_port_database
(
scsi_qla_host_t
*,
fc_port_t
*,
uint8_t
);
273
274
extern
int
275
qla2x00_get_firmware_state
(
scsi_qla_host_t
*,
uint16_t
*);
276
277
extern
int
278
qla2x00_get_port_name
(
scsi_qla_host_t
*,
uint16_t
,
uint8_t
*,
uint8_t
);
279
280
extern
int
281
qla2x00_lip_reset
(
scsi_qla_host_t
*);
282
283
extern
int
284
qla2x00_send_sns
(
scsi_qla_host_t
*,
dma_addr_t
,
uint16_t
,
size_t
);
285
286
extern
int
287
qla2x00_login_fabric
(
scsi_qla_host_t
*,
uint16_t
,
uint8_t
,
uint8_t
,
uint8_t
,
288
uint16_t
*,
uint8_t
);
289
extern
int
290
qla24xx_login_fabric
(
scsi_qla_host_t
*,
uint16_t
,
uint8_t
,
uint8_t
,
uint8_t
,
291
uint16_t
*,
uint8_t
);
292
293
extern
int
294
qla2x00_login_local_device
(
scsi_qla_host_t
*,
fc_port_t
*,
uint16_t
*,
295
uint8_t
);
296
297
extern
int
298
qla2x00_fabric_logout
(
scsi_qla_host_t
*,
uint16_t
,
uint8_t
,
uint8_t
,
uint8_t
);
299
300
extern
int
301
qla24xx_fabric_logout
(
scsi_qla_host_t
*,
uint16_t
,
uint8_t
,
uint8_t
,
uint8_t
);
302
303
extern
int
304
qla2x00_full_login_lip
(
scsi_qla_host_t
*ha);
305
306
extern
int
307
qla2x00_get_id_list
(
scsi_qla_host_t
*,
void
*,
dma_addr_t
,
uint16_t
*);
308
309
extern
int
310
qla2x00_get_resource_cnts
(
scsi_qla_host_t
*,
uint16_t
*,
uint16_t
*,
311
uint16_t
*,
uint16_t
*,
uint16_t
*,
uint16_t
*);
312
313
extern
int
314
qla2x00_get_fcal_position_map
(
scsi_qla_host_t
*ha,
char
*pos_map);
315
316
extern
int
317
qla2x00_get_link_status
(
scsi_qla_host_t
*,
uint16_t
,
struct
link_statistics
*,
318
dma_addr_t
);
319
320
extern
int
321
qla24xx_get_isp_stats
(
scsi_qla_host_t
*,
struct
link_statistics
*,
322
dma_addr_t
);
323
324
extern
int
qla24xx_abort_command
(
srb_t
*);
325
extern
int
326
qla24xx_abort_target
(
struct
fc_port
*,
unsigned
int
,
int
);
327
extern
int
328
qla24xx_lun_reset
(
struct
fc_port
*,
unsigned
int
,
int
);
329
extern
int
330
qla2x00_eh_wait_for_pending_commands
(
scsi_qla_host_t
*,
unsigned
int
,
331
unsigned
int
,
enum
nexus_wait_type
);
332
extern
int
333
qla2x00_system_error
(
scsi_qla_host_t
*);
334
335
extern
int
336
qla2x00_set_serdes_params
(
scsi_qla_host_t
*,
uint16_t
,
uint16_t
,
uint16_t
);
337
338
extern
int
339
qla2x00_stop_firmware
(
scsi_qla_host_t
*);
340
341
extern
int
342
qla2x00_enable_eft_trace
(
scsi_qla_host_t
*,
dma_addr_t
,
uint16_t
);
343
extern
int
344
qla2x00_disable_eft_trace
(
scsi_qla_host_t
*);
345
346
extern
int
347
qla2x00_enable_fce_trace
(
scsi_qla_host_t
*,
dma_addr_t
,
uint16_t
,
uint16_t
*,
348
uint32_t
*);
349
350
extern
int
351
qla2x00_disable_fce_trace
(
scsi_qla_host_t
*,
uint64_t
*,
uint64_t
*);
352
353
extern
int
354
qla2x00_read_sfp
(
scsi_qla_host_t
*,
dma_addr_t
,
uint8_t
*,
355
uint16_t
,
uint16_t
,
uint16_t
,
uint16_t
);
356
357
extern
int
358
qla2x00_write_sfp
(
scsi_qla_host_t
*,
dma_addr_t
,
uint8_t
*,
359
uint16_t
,
uint16_t
,
uint16_t
,
uint16_t
);
360
361
extern
int
362
qla2x00_set_idma_speed
(
scsi_qla_host_t
*,
uint16_t
,
uint16_t
,
uint16_t
*);
363
364
extern
int
qla84xx_verify_chip
(
struct
scsi_qla_host
*,
uint16_t
*);
365
366
extern
int
qla81xx_idc_ack
(
scsi_qla_host_t
*,
uint16_t
*);
367
368
extern
int
369
qla81xx_fac_get_sector_size
(
scsi_qla_host_t
*,
uint32_t
*);
370
371
extern
int
372
qla81xx_fac_do_write_enable
(
scsi_qla_host_t
*,
int
);
373
374
extern
int
375
qla81xx_fac_erase_sector
(
scsi_qla_host_t
*,
uint32_t
,
uint32_t
);
376
377
extern
int
378
qla2x00_get_xgmac_stats
(
scsi_qla_host_t
*,
dma_addr_t
,
uint16_t
,
uint16_t
*);
379
380
extern
int
381
qla2x00_get_dcbx_params
(
scsi_qla_host_t
*,
dma_addr_t
,
uint16_t
);
382
383
extern
int
384
qla2x00_read_ram_word
(
scsi_qla_host_t
*,
uint32_t
,
uint32_t
*);
385
386
extern
int
387
qla2x00_write_ram_word
(
scsi_qla_host_t
*,
uint32_t
,
uint32_t
);
388
389
extern
int
390
qla81xx_write_mpi_register
(
scsi_qla_host_t
*,
uint16_t
*);
391
extern
int
qla2x00_get_data_rate
(
scsi_qla_host_t
*);
392
extern
int
qla24xx_set_fcp_prio
(
scsi_qla_host_t
*,
uint16_t
,
uint16_t
,
393
uint16_t
*);
394
extern
int
395
qla81xx_get_port_config
(
scsi_qla_host_t
*,
uint16_t
*);
396
397
extern
int
398
qla81xx_set_port_config
(
scsi_qla_host_t
*,
uint16_t
*);
399
400
extern
int
401
qla2x00_port_logout
(
scsi_qla_host_t
*,
struct
fc_port
*);
402
403
extern
int
404
qla2x00_dump_mctp_data
(
scsi_qla_host_t
*,
dma_addr_t
,
uint32_t
,
uint32_t
);
405
406
/*
407
* Global Function Prototypes in qla_isr.c source file.
408
*/
409
extern
irqreturn_t
qla2100_intr_handler
(
int
,
void
*);
410
extern
irqreturn_t
qla2300_intr_handler
(
int
,
void
*);
411
extern
irqreturn_t
qla24xx_intr_handler
(
int
,
void
*);
412
extern
void
qla2x00_process_response_queue
(
struct
rsp_que
*);
413
extern
void
414
qla24xx_process_response_queue
(
struct
scsi_qla_host
*,
struct
rsp_que
*);
415
extern
int
qla2x00_request_irqs
(
struct
qla_hw_data
*,
struct
rsp_que
*);
416
extern
void
qla2x00_free_irqs
(
scsi_qla_host_t
*);
417
418
extern
int
qla2x00_get_data_rate
(
scsi_qla_host_t
*);
419
extern
char
*
qla2x00_get_link_speed_str
(
struct
qla_hw_data
*);
420
421
/*
422
* Global Function Prototypes in qla_sup.c source file.
423
*/
424
extern
void
qla2x00_release_nvram_protection
(
scsi_qla_host_t
*);
425
extern
uint32_t
*
qla24xx_read_flash_data
(
scsi_qla_host_t
*,
uint32_t
*,
426
uint32_t
,
uint32_t
);
427
extern
uint8_t
*
qla2x00_read_nvram_data
(
scsi_qla_host_t
*,
uint8_t
*,
uint32_t
,
428
uint32_t
);
429
extern
uint8_t
*
qla24xx_read_nvram_data
(
scsi_qla_host_t
*,
uint8_t
*,
uint32_t
,
430
uint32_t
);
431
extern
int
qla2x00_write_nvram_data
(
scsi_qla_host_t
*,
uint8_t
*,
uint32_t
,
432
uint32_t
);
433
extern
int
qla24xx_write_nvram_data
(
scsi_qla_host_t
*,
uint8_t
*,
uint32_t
,
434
uint32_t
);
435
extern
uint8_t
*
qla25xx_read_nvram_data
(
scsi_qla_host_t
*,
uint8_t
*,
uint32_t
,
436
uint32_t
);
437
extern
int
qla25xx_write_nvram_data
(
scsi_qla_host_t
*,
uint8_t
*,
uint32_t
,
438
uint32_t
);
439
440
extern
int
qla2x00_beacon_on
(
struct
scsi_qla_host
*);
441
extern
int
qla2x00_beacon_off
(
struct
scsi_qla_host
*);
442
extern
void
qla2x00_beacon_blink
(
struct
scsi_qla_host
*);
443
extern
int
qla24xx_beacon_on
(
struct
scsi_qla_host
*);
444
extern
int
qla24xx_beacon_off
(
struct
scsi_qla_host
*);
445
extern
void
qla24xx_beacon_blink
(
struct
scsi_qla_host
*);
446
extern
void
qla83xx_beacon_blink
(
struct
scsi_qla_host
*);
447
extern
int
qla82xx_beacon_on
(
struct
scsi_qla_host
*);
448
extern
int
qla82xx_beacon_off
(
struct
scsi_qla_host
*);
449
extern
int
qla83xx_wr_reg
(
scsi_qla_host_t
*,
uint32_t
,
uint32_t
);
450
extern
int
qla83xx_rd_reg
(
scsi_qla_host_t
*,
uint32_t
,
uint32_t
*);
451
extern
int
qla83xx_restart_nic_firmware
(
scsi_qla_host_t
*);
452
extern
int
qla83xx_access_control
(
scsi_qla_host_t
*,
uint16_t
,
uint32_t
,
453
uint32_t
,
uint16_t
*);
454
455
extern
uint8_t
*
qla2x00_read_optrom_data
(
struct
scsi_qla_host
*,
uint8_t
*,
456
uint32_t
,
uint32_t
);
457
extern
int
qla2x00_write_optrom_data
(
struct
scsi_qla_host
*,
uint8_t
*,
458
uint32_t
,
uint32_t
);
459
extern
uint8_t
*
qla24xx_read_optrom_data
(
struct
scsi_qla_host
*,
uint8_t
*,
460
uint32_t
,
uint32_t
);
461
extern
int
qla24xx_write_optrom_data
(
struct
scsi_qla_host
*,
uint8_t
*,
462
uint32_t
,
uint32_t
);
463
extern
uint8_t
*
qla25xx_read_optrom_data
(
struct
scsi_qla_host
*,
uint8_t
*,
464
uint32_t
,
uint32_t
);
465
466
extern
int
qla2x00_get_flash_version
(
scsi_qla_host_t
*,
void
*);
467
extern
int
qla24xx_get_flash_version
(
scsi_qla_host_t
*,
void
*);
468
469
extern
int
qla2xxx_get_flash_info
(
scsi_qla_host_t
*);
470
extern
int
qla2xxx_get_vpd_field
(
scsi_qla_host_t
*,
char
*,
char
*,
size_t
);
471
472
extern
void
qla2xxx_flash_npiv_conf
(
scsi_qla_host_t
*);
473
extern
int
qla24xx_read_fcp_prio_cfg
(
scsi_qla_host_t
*);
474
475
/*
476
* Global Function Prototypes in qla_dbg.c source file.
477
*/
478
extern
void
qla2100_fw_dump
(
scsi_qla_host_t
*,
int
);
479
extern
void
qla2300_fw_dump
(
scsi_qla_host_t
*,
int
);
480
extern
void
qla24xx_fw_dump
(
scsi_qla_host_t
*,
int
);
481
extern
void
qla25xx_fw_dump
(
scsi_qla_host_t
*,
int
);
482
extern
void
qla81xx_fw_dump
(
scsi_qla_host_t
*,
int
);
483
extern
void
qla2x00_dump_regs
(
scsi_qla_host_t
*);
484
extern
void
qla2x00_dump_buffer
(
uint8_t
*,
uint32_t
);
485
extern
void
qla2x00_dump_buffer_zipped
(
uint8_t
*,
uint32_t
);
486
extern
void
ql_dump_regs
(
uint32_t
,
scsi_qla_host_t
*,
int32_t
);
487
extern
void
ql_dump_buffer
(
uint32_t
,
scsi_qla_host_t
*,
int32_t
,
488
uint8_t
*,
uint32_t
);
489
extern
void
qla2xxx_dump_post_process
(
scsi_qla_host_t
*,
int
);
490
491
/*
492
* Global Function Prototypes in qla_gs.c source file.
493
*/
494
extern
void
*
qla2x00_prep_ms_iocb
(
scsi_qla_host_t
*,
uint32_t
,
uint32_t
);
495
extern
void
*
qla24xx_prep_ms_iocb
(
scsi_qla_host_t
*,
uint32_t
,
uint32_t
);
496
extern
int
qla2x00_ga_nxt
(
scsi_qla_host_t
*,
fc_port_t
*);
497
extern
int
qla2x00_gid_pt
(
scsi_qla_host_t
*,
sw_info_t
*);
498
extern
int
qla2x00_gpn_id
(
scsi_qla_host_t
*,
sw_info_t
*);
499
extern
int
qla2x00_gnn_id
(
scsi_qla_host_t
*,
sw_info_t
*);
500
extern
void
qla2x00_gff_id
(
scsi_qla_host_t
*,
sw_info_t
*);
501
extern
int
qla2x00_rft_id
(
scsi_qla_host_t
*);
502
extern
int
qla2x00_rff_id
(
scsi_qla_host_t
*);
503
extern
int
qla2x00_rnn_id
(
scsi_qla_host_t
*);
504
extern
int
qla2x00_rsnn_nn
(
scsi_qla_host_t
*);
505
extern
void
*
qla2x00_prep_ms_fdmi_iocb
(
scsi_qla_host_t
*,
uint32_t
,
uint32_t
);
506
extern
void
*
qla24xx_prep_ms_fdmi_iocb
(
scsi_qla_host_t
*,
uint32_t
,
uint32_t
);
507
extern
int
qla2x00_fdmi_register
(
scsi_qla_host_t
*);
508
extern
int
qla2x00_gfpn_id
(
scsi_qla_host_t
*,
sw_info_t
*);
509
extern
int
qla2x00_gpsc
(
scsi_qla_host_t
*,
sw_info_t
*);
510
extern
void
qla2x00_get_sym_node_name
(
scsi_qla_host_t
*,
uint8_t
*);
511
512
/*
513
* Global Function Prototypes in qla_attr.c source file.
514
*/
515
struct
device_attribute
;
516
extern
struct
device_attribute
*
qla2x00_host_attrs
[];
517
struct
fc_function_template
;
518
extern
struct
fc_function_template
qla2xxx_transport_functions
;
519
extern
struct
fc_function_template
qla2xxx_transport_vport_functions
;
520
extern
void
qla2x00_alloc_sysfs_attr
(
scsi_qla_host_t
*);
521
extern
void
qla2x00_free_sysfs_attr
(
scsi_qla_host_t
*);
522
extern
void
qla2x00_init_host_attr
(
scsi_qla_host_t
*);
523
extern
void
qla2x00_alloc_sysfs_attr
(
scsi_qla_host_t
*);
524
extern
void
qla2x00_free_sysfs_attr
(
scsi_qla_host_t
*);
525
extern
int
qla2x00_loopback_test
(
scsi_qla_host_t
*,
struct
msg_echo_lb
*,
uint16_t
*);
526
extern
int
qla2x00_echo_test
(
scsi_qla_host_t
*,
527
struct
msg_echo_lb
*,
uint16_t
*);
528
extern
int
qla24xx_update_all_fcp_prio
(
scsi_qla_host_t
*);
529
extern
int
qla24xx_fcp_prio_cfg_valid
(
scsi_qla_host_t
*,
530
struct
qla_fcp_prio_cfg
*,
uint8_t
);
531
532
/*
533
* Global Function Prototypes in qla_dfs.c source file.
534
*/
535
extern
int
qla2x00_dfs_setup
(
scsi_qla_host_t
*);
536
extern
int
qla2x00_dfs_remove
(
scsi_qla_host_t
*);
537
538
/* Globa function prototypes for multi-q */
539
extern
int
qla25xx_request_irq
(
struct
rsp_que
*);
540
extern
int
qla25xx_init_req_que
(
struct
scsi_qla_host
*,
struct
req_que
*);
541
extern
int
qla25xx_init_rsp_que
(
struct
scsi_qla_host
*,
struct
rsp_que
*);
542
extern
int
qla25xx_create_req_que
(
struct
qla_hw_data
*,
uint16_t
,
uint8_t
,
543
uint16_t
,
int
,
uint8_t
);
544
extern
int
qla25xx_create_rsp_que
(
struct
qla_hw_data
*,
uint16_t
,
uint8_t
,
545
uint16_t
,
int
);
546
extern
void
qla2x00_init_response_q_entries
(
struct
rsp_que
*);
547
extern
int
qla25xx_delete_req_que
(
struct
scsi_qla_host
*,
struct
req_que
*);
548
extern
int
qla25xx_delete_queues
(
struct
scsi_qla_host
*);
549
extern
uint16_t
qla24xx_rd_req_reg
(
struct
qla_hw_data
*,
uint16_t
);
550
extern
uint16_t
qla25xx_rd_req_reg
(
struct
qla_hw_data
*,
uint16_t
);
551
extern
void
qla24xx_wrt_req_reg
(
struct
qla_hw_data
*,
uint16_t
,
uint16_t
);
552
extern
void
qla25xx_wrt_req_reg
(
struct
qla_hw_data
*,
uint16_t
,
uint16_t
);
553
extern
void
qla25xx_wrt_rsp_reg
(
struct
qla_hw_data
*,
uint16_t
,
uint16_t
);
554
extern
void
qla24xx_wrt_rsp_reg
(
struct
qla_hw_data
*,
uint16_t
,
uint16_t
);
555
556
/* qla82xx related functions */
557
558
/* PCI related functions */
559
extern
int
qla82xx_pci_config
(
struct
scsi_qla_host
*);
560
extern
int
qla82xx_pci_mem_read_2M
(
struct
qla_hw_data
*,
u64
,
void
*,
int
);
561
extern
int
qla82xx_pci_region_offset
(
struct
pci_dev
*,
int
);
562
extern
int
qla82xx_iospace_config
(
struct
qla_hw_data
*);
563
564
/* Initialization related functions */
565
extern
void
qla82xx_reset_chip
(
struct
scsi_qla_host
*);
566
extern
void
qla82xx_config_rings
(
struct
scsi_qla_host
*);
567
extern
void
qla82xx_watchdog
(
scsi_qla_host_t
*);
568
extern
int
qla82xx_start_firmware
(
scsi_qla_host_t
*);
569
570
/* Firmware and flash related functions */
571
extern
int
qla82xx_load_risc
(
scsi_qla_host_t
*,
uint32_t
*);
572
extern
uint8_t
*
qla82xx_read_optrom_data
(
struct
scsi_qla_host
*,
uint8_t
*,
573
uint32_t
,
uint32_t
);
574
extern
int
qla82xx_write_optrom_data
(
struct
scsi_qla_host
*,
uint8_t
*,
575
uint32_t
,
uint32_t
);
576
577
/* Mailbox related functions */
578
extern
int
qla82xx_abort_isp
(
scsi_qla_host_t
*);
579
extern
int
qla82xx_restart_isp
(
scsi_qla_host_t
*);
580
581
/* IOCB related functions */
582
extern
int
qla82xx_start_scsi
(
srb_t
*);
583
extern
void
qla2x00_sp_free
(
void
*,
void
*);
584
extern
void
qla2x00_sp_timeout
(
unsigned
long
);
585
extern
void
qla2x00_bsg_job_done
(
void
*,
void
*,
int
);
586
extern
void
qla2x00_bsg_sp_free
(
void
*,
void
*);
587
extern
void
qla2x00_start_iocbs
(
struct
scsi_qla_host
*,
struct
req_que
*);
588
589
/* Interrupt related */
590
extern
irqreturn_t
qla82xx_intr_handler
(
int
,
void
*);
591
extern
irqreturn_t
qla82xx_msi_handler
(
int
,
void
*);
592
extern
irqreturn_t
qla82xx_msix_default
(
int
,
void
*);
593
extern
irqreturn_t
qla82xx_msix_rsp_q
(
int
,
void
*);
594
extern
void
qla82xx_enable_intrs
(
struct
qla_hw_data
*);
595
extern
void
qla82xx_disable_intrs
(
struct
qla_hw_data
*);
596
extern
void
qla82xx_poll
(
int
,
void
*);
597
extern
void
qla82xx_init_flags
(
struct
qla_hw_data
*);
598
599
/* ISP 8021 hardware related */
600
extern
void
qla82xx_set_drv_active
(
scsi_qla_host_t
*);
601
extern
void
qla82xx_crb_win_unlock
(
struct
qla_hw_data
*);
602
extern
int
qla82xx_wr_32
(
struct
qla_hw_data
*,
ulong
,
u32
);
603
extern
int
qla82xx_rd_32
(
struct
qla_hw_data
*,
ulong
);
604
extern
int
qla82xx_rdmem
(
struct
qla_hw_data
*,
u64
,
void
*,
int
);
605
extern
int
qla82xx_wrmem
(
struct
qla_hw_data
*,
u64
,
void
*,
int
);
606
607
/* ISP 8021 IDC */
608
extern
void
qla82xx_clear_drv_active
(
struct
qla_hw_data
*);
609
extern
uint32_t
qla82xx_wait_for_state_change
(
scsi_qla_host_t
*,
uint32_t
);
610
extern
int
qla82xx_idc_lock
(
struct
qla_hw_data
*);
611
extern
void
qla82xx_idc_unlock
(
struct
qla_hw_data
*);
612
extern
int
qla82xx_device_state_handler
(
scsi_qla_host_t
*);
613
extern
void
qla8xxx_dev_failed_handler
(
scsi_qla_host_t
*);
614
extern
void
qla82xx_clear_qsnt_ready
(
scsi_qla_host_t
*);
615
616
extern
void
qla2x00_set_model_info
(
scsi_qla_host_t
*,
uint8_t
*,
617
size_t
,
char
*);
618
extern
int
qla82xx_mbx_intr_enable
(
scsi_qla_host_t
*);
619
extern
int
qla82xx_mbx_intr_disable
(
scsi_qla_host_t
*);
620
extern
void
qla82xx_start_iocbs
(
scsi_qla_host_t
*);
621
extern
int
qla82xx_fcoe_ctx_reset
(
scsi_qla_host_t
*);
622
extern
int
qla82xx_check_md_needed
(
scsi_qla_host_t
*);
623
extern
void
qla82xx_chip_reset_cleanup
(
scsi_qla_host_t
*);
624
extern
int
qla81xx_set_led_config
(
scsi_qla_host_t
*,
uint16_t
*);
625
extern
int
qla81xx_get_led_config
(
scsi_qla_host_t
*,
uint16_t
*);
626
extern
int
qla82xx_mbx_beacon_ctl
(
scsi_qla_host_t
*,
int
);
627
extern
char
*
qdev_state
(
uint32_t
);
628
extern
void
qla82xx_clear_pending_mbx
(
scsi_qla_host_t
*);
629
630
/* BSG related functions */
631
extern
int
qla24xx_bsg_request
(
struct
fc_bsg_job
*);
632
extern
int
qla24xx_bsg_timeout
(
struct
fc_bsg_job
*);
633
extern
int
qla84xx_reset_chip
(
scsi_qla_host_t
*,
uint16_t
);
634
extern
int
qla2x00_issue_iocb_timeout
(
scsi_qla_host_t
*,
void
*,
635
dma_addr_t
,
size_t
,
uint32_t
);
636
extern
int
qla2x00_get_idma_speed
(
scsi_qla_host_t
*,
uint16_t
,
637
uint16_t
*,
uint16_t
*);
638
639
/* 83xx related functions */
640
extern
void
qla83xx_fw_dump
(
scsi_qla_host_t
*,
int
);
641
642
/* Minidump related functions */
643
extern
int
qla82xx_md_get_template_size
(
scsi_qla_host_t
*);
644
extern
int
qla82xx_md_get_template
(
scsi_qla_host_t
*);
645
extern
int
qla82xx_md_alloc
(
scsi_qla_host_t
*);
646
extern
void
qla82xx_md_free
(
scsi_qla_host_t
*);
647
extern
int
qla82xx_md_collect
(
scsi_qla_host_t
*);
648
extern
void
qla82xx_md_prep
(
scsi_qla_host_t
*);
649
extern
void
qla82xx_set_reset_owner
(
scsi_qla_host_t
*);
650
651
#endif
/* _QLA_GBL_H */
Generated on Thu Jan 10 2013 14:23:36 for Linux Kernel by
1.8.2