Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Macros | Functions | Variables
qla_os.c File Reference
#include "qla_def.h"
#include <linux/moduleparam.h>
#include <linux/vmalloc.h>
#include <linux/delay.h>
#include <linux/kthread.h>
#include <linux/mutex.h>
#include <linux/kobject.h>
#include <linux/slab.h>
#include <scsi/scsi_tcq.h>
#include <scsi/scsicam.h>
#include <scsi/scsi_transport.h>
#include <scsi/scsi_transport_fc.h>
#include "qla_target.h"

Go to the source code of this file.

Macros

#define MAX_Q_DEPTH   32
 
#define ABORT_POLLING_PERIOD   1000
 
#define ABORT_WAIT_ITER   ((10 * 1000) / (ABORT_POLLING_PERIOD))
 
#define qla2x00_post_async_work(name, type)
 
#define FW_BLOBS   10
 
#define FW_ISP21XX   0
 
#define FW_ISP22XX   1
 
#define FW_ISP2300   2
 
#define FW_ISP2322   3
 
#define FW_ISP24XX   4
 
#define FW_ISP25XX   5
 
#define FW_ISP81XX   6
 
#define FW_ISP82XX   7
 
#define FW_ISP2031   8
 
#define FW_ISP8031   9
 
#define FW_FILE_ISP21XX   "ql2100_fw.bin"
 
#define FW_FILE_ISP22XX   "ql2200_fw.bin"
 
#define FW_FILE_ISP2300   "ql2300_fw.bin"
 
#define FW_FILE_ISP2322   "ql2322_fw.bin"
 
#define FW_FILE_ISP24XX   "ql2400_fw.bin"
 
#define FW_FILE_ISP25XX   "ql2500_fw.bin"
 
#define FW_FILE_ISP81XX   "ql8100_fw.bin"
 
#define FW_FILE_ISP82XX   "ql8200_fw.bin"
 
#define FW_FILE_ISP2031   "ql2600_fw.bin"
 
#define FW_FILE_ISP8031   "ql8300_fw.bin"
 

Functions

 module_param (ql2xenableclass2, int, S_IRUGO|S_IRUSR)
 
 MODULE_PARM_DESC (ql2xenableclass2,"Specify if Class 2 operations are supported from the very ""beginning. Default is 0 - class 2 not supported.")
 
 module_param (ql2xlogintimeout, int, S_IRUGO)
 
 MODULE_PARM_DESC (ql2xlogintimeout,"Login timeout value in seconds.")
 
 module_param (qlport_down_retry, int, S_IRUGO)
 
 MODULE_PARM_DESC (qlport_down_retry,"Maximum number of command retries to a port that returns ""a PORT-DOWN status.")
 
 module_param (ql2xplogiabsentdevice, int, S_IRUGO|S_IWUSR)
 
 MODULE_PARM_DESC (ql2xplogiabsentdevice,"Option to enable PLOGI to devices that are not present after ""a Fabric scan. This is needed for several broken switches. ""Default is 0 - no PLOGI. 1 - perfom PLOGI.")
 
 module_param (ql2xloginretrycount, int, S_IRUGO)
 
 MODULE_PARM_DESC (ql2xloginretrycount,"Specify an alternate value for the NVRAM login retry count.")
 
 module_param (ql2xallocfwdump, int, S_IRUGO)
 
 MODULE_PARM_DESC (ql2xallocfwdump,"Option to enable allocation of memory for a firmware dump ""during HBA initialization. Memory allocation requirements ""vary by ISP type. Default is 1 - allocate memory.")
 
 module_param (ql2xextended_error_logging, int, S_IRUGO|S_IWUSR)
 
 MODULE_PARM_DESC (ql2xextended_error_logging,"Option to enable extended error logging,\n""\t\tDefault is 0 - no logging. 0x40000000 - Module Init & Probe.\n""\t\t0x20000000 - Mailbox Cmnds. 0x10000000 - Device Discovery.\n""\t\t0x08000000 - IO tracing. 0x04000000 - DPC Thread.\n""\t\t0x02000000 - Async events. 0x01000000 - Timer routines.\n""\t\t0x00800000 - User space. 0x00400000 - Task Management.\n""\t\t0x00200000 - AER/EEH. 0x00100000 - Multi Q.\n""\t\t0x00080000 - P3P Specific. 0x00040000 - Virtual Port.\n""\t\t0x00020000 - Buffer Dump. 0x00010000 - Misc.\n""\t\t0x7fffffff - For enabling all logs, can be too many logs.\n""\t\t0x1e400000 - Preferred value for capturing essential ""debug information (equivalent to old ""ql2xextended_error_logging=1).\n""\t\tDo LOGICAL OR of the value to enable more than one level")
 
 module_param (ql2xshiftctondsd, int, S_IRUGO)
 
 MODULE_PARM_DESC (ql2xshiftctondsd,"Set to control shifting of command type processing ""based on total number of SG elements.")
 
 module_param (ql2xfdmienable, int, S_IRUGO)
 
 MODULE_PARM_DESC (ql2xfdmienable,"Enables FDMI registrations. ""0 - no FDMI. Default is 1 - perform FDMI.")
 
 module_param (ql2xmaxqdepth, int, S_IRUGO|S_IWUSR)
 
 MODULE_PARM_DESC (ql2xmaxqdepth,"Maximum queue depth to set for each LUN. ""Default is 32.")
 
 module_param (ql2xenabledif, int, S_IRUGO)
 
 MODULE_PARM_DESC (ql2xenabledif," Enable T10-CRC-DIF "" Default is 0 - No DIF Support. 1 - Enable it"", 2 - Enable DIF for all types, except Type 0.")
 
 module_param (ql2xenablehba_err_chk, int, S_IRUGO|S_IWUSR)
 
 MODULE_PARM_DESC (ql2xenablehba_err_chk," Enable T10-CRC-DIF Error isolation by HBA:\n"" Default is 1.\n"" 0 -- Error isolation disabled\n"" 1 -- Error isolation enabled only for DIX Type 0\n"" 2 -- Error isolation enabled for all Types\n")
 
 module_param (ql2xiidmaenable, int, S_IRUGO)
 
 MODULE_PARM_DESC (ql2xiidmaenable,"Enables iIDMA settings ""Default is 1 - perform iIDMA. 0 - no iIDMA.")
 
 module_param (ql2xmaxqueues, int, S_IRUGO)
 
 MODULE_PARM_DESC (ql2xmaxqueues,"Enables MQ settings ""Default is 1 for single queue. Set it to number ""of queues in MQ mode.")
 
 module_param (ql2xmultique_tag, int, S_IRUGO)
 
 MODULE_PARM_DESC (ql2xmultique_tag,"Enables CPU affinity settings for the driver ""Default is 0 for no affinity of request and response IO. ""Set it to 1 to turn on the cpu affinity.")
 
 module_param (ql2xfwloadbin, int, S_IRUGO|S_IWUSR)
 
 MODULE_PARM_DESC (ql2xfwloadbin,"Option to specify location from which to load ISP firmware:.\n"" 2 -- load firmware via the request_firmware() (hotplug).\n"" interface.\n"" 1 -- load firmware from flash.\n"" 0 -- use default semantics.\n")
 
 module_param (ql2xetsenable, int, S_IRUGO)
 
 MODULE_PARM_DESC (ql2xetsenable,"Enables firmware ETS burst.""Default is 0 - skip ETS enablement.")
 
 module_param (ql2xdbwr, int, S_IRUGO|S_IWUSR)
 
 MODULE_PARM_DESC (ql2xdbwr,"Option to specify scheme for request queue posting.\n"" 0 -- Regular doorbell.\n"" 1 -- CAMRAM doorbell (faster).\n")
 
 module_param (ql2xtargetreset, int, S_IRUGO)
 
 MODULE_PARM_DESC (ql2xtargetreset,"Enable target reset.""Default is 1 - use hw defaults.")
 
 module_param (ql2xgffidenable, int, S_IRUGO)
 
 MODULE_PARM_DESC (ql2xgffidenable,"Enables GFF_ID checks of port type. ""Default is 0 - Do not use GFF_ID information.")
 
 module_param (ql2xasynctmfenable, int, S_IRUGO)
 
 MODULE_PARM_DESC (ql2xasynctmfenable,"Enables issue of TM IOCBs asynchronously via IOCB mechanism""Default is 0 - Issue TM IOCBs via mailbox mechanism.")
 
 module_param (ql2xdontresethba, int, S_IRUGO|S_IWUSR)
 
 MODULE_PARM_DESC (ql2xdontresethba,"Option to specify reset behaviour.\n"" 0 (Default) -- Reset on failure.\n"" 1 -- Do not reset on failure.\n")
 
 module_param (ql2xmaxlun, uint, S_IRUGO)
 
 MODULE_PARM_DESC (ql2xmaxlun,"Defines the maximum LU number to register with the SCSI ""midlayer. Default is 65535.")
 
 module_param (ql2xmdcapmask, int, S_IRUGO)
 
 MODULE_PARM_DESC (ql2xmdcapmask,"Set the Minidump driver capture mask level. ""Default is 0x1F - Can be set to 0x3, 0x7, 0xF, 0x1F, 0x7F.")
 
 module_param (ql2xmdenable, int, S_IRUGO)
 
 MODULE_PARM_DESC (ql2xmdenable,"Enable/disable MiniDump. ""0 - MiniDump disabled. ""1 (Default) - MiniDump enabled.")
 
__inline__ void qla2x00_start_timer (scsi_qla_host_t *vha, void *func, unsigned long interval)
 
void qla2x00_sp_free_dma (void *vha, void *ptr)
 
int qla2x00_wait_for_hba_online (scsi_qla_host_t *vha)
 
int qla2x00_wait_for_chip_reset (scsi_qla_host_t *vha)
 
int qla2x00_eh_wait_for_pending_commands (scsi_qla_host_t *vha, unsigned int t, unsigned int l, enum nexus_wait_type type)
 
int qla2x00_loop_reset (scsi_qla_host_t *vha)
 
void qla2x00_abort_all_cmds (scsi_qla_host_t *vha, int res)
 
void qla2x00_free_fcports (struct scsi_qla_host *vha)
 
void qla2x00_mark_device_lost (scsi_qla_host_t *vha, fc_port_t *fcport, int do_login, int defer)
 
void qla2x00_mark_all_devices_lost (scsi_qla_host_t *vha, int defer)
 
struct scsi_qla_hostqla2x00_create_host (struct scsi_host_template *sht, struct qla_hw_data *ha)
 
int qla2x00_post_aen_work (struct scsi_qla_host *vha, enum fc_host_event_code code, u32 data)
 
int qla2x00_post_idc_ack_work (struct scsi_qla_host *vha, uint16_t *mb)
 
 qla2x00_post_async_work (login, QLA_EVT_ASYNC_LOGIN)
 
 qla2x00_post_async_work (login_done, QLA_EVT_ASYNC_LOGIN_DONE)
 
 qla2x00_post_async_work (logout, QLA_EVT_ASYNC_LOGOUT)
 
 qla2x00_post_async_work (logout_done, QLA_EVT_ASYNC_LOGOUT_DONE)
 
 qla2x00_post_async_work (adisc, QLA_EVT_ASYNC_ADISC)
 
 qla2x00_post_async_work (adisc_done, QLA_EVT_ASYNC_ADISC_DONE)
 
int qla2x00_post_uevent_work (struct scsi_qla_host *vha, u32 code)
 
void qla2x00_do_work (struct scsi_qla_host *vha)
 
void qla2x00_relogin (struct scsi_qla_host *vha)
 
void qla83xx_schedule_work (scsi_qla_host_t *base_vha, int work_code)
 
void qla83xx_nic_core_unrecoverable_work (struct work_struct *work)
 
void qla83xx_idc_state_handler_work (struct work_struct *work)
 
int qla83xx_check_nic_core_fw_alive (scsi_qla_host_t *base_vha)
 
void qla83xx_nic_core_reset_work (struct work_struct *work)
 
void qla83xx_service_idc_aen (struct work_struct *work)
 
int qla83xx_force_lock_recovery (scsi_qla_host_t *base_vha)
 
int qla83xx_idc_lock_recovery (scsi_qla_host_t *base_vha)
 
void qla83xx_idc_lock (scsi_qla_host_t *base_vha, uint16_t requester_id)
 
void qla83xx_idc_unlock (scsi_qla_host_t *base_vha, uint16_t requester_id)
 
int __qla83xx_set_drv_presence (scsi_qla_host_t *vha)
 
int qla83xx_set_drv_presence (scsi_qla_host_t *vha)
 
int __qla83xx_clear_drv_presence (scsi_qla_host_t *vha)
 
int qla83xx_clear_drv_presence (scsi_qla_host_t *vha)
 
void qla83xx_need_reset_handler (scsi_qla_host_t *vha)
 
int qla83xx_device_bootstrap (scsi_qla_host_t *vha)
 
int qla83xx_idc_state_handler (scsi_qla_host_t *base_vha)
 
void qla2xxx_wake_dpc (struct scsi_qla_host *vha)
 
void qla2x00_timer (scsi_qla_host_t *vha)
 
struct fw_blobqla2x00_request_firmware (scsi_qla_host_t *vha)
 
uint32_t qla82xx_error_recovery (scsi_qla_host_t *base_vha)
 
 MODULE_DEVICE_TABLE (pci, qla2xxx_pci_tbl)
 
 module_init (qla2x00_module_init)
 
 module_exit (qla2x00_module_exit)
 
 MODULE_AUTHOR ("QLogic Corporation")
 
 MODULE_DESCRIPTION ("QLogic Fibre Channel HBA Driver")
 
 MODULE_LICENSE ("GPL")
 
 MODULE_VERSION (QLA2XXX_VERSION)
 
 MODULE_FIRMWARE (FW_FILE_ISP21XX)
 
 MODULE_FIRMWARE (FW_FILE_ISP22XX)
 
 MODULE_FIRMWARE (FW_FILE_ISP2300)
 
 MODULE_FIRMWARE (FW_FILE_ISP2322)
 
 MODULE_FIRMWARE (FW_FILE_ISP24XX)
 
 MODULE_FIRMWARE (FW_FILE_ISP25XX)
 

Variables

char qla2x00_version_str [40]
 
int ql_errlev = ql_log_all
 
int ql2xenableclass2
 
int ql2xlogintimeout = 20
 
int qlport_down_retry
 
int ql2xplogiabsentdevice
 
int ql2xloginretrycount = 0
 
int ql2xallocfwdump = 1
 
int ql2xextended_error_logging
 
int ql2xshiftctondsd = 6
 
int ql2xfdmienable =1
 
int ql2xenabledif = 2
 
int ql2xenablehba_err_chk = 2
 
int ql2xiidmaenable =1
 
int ql2xmaxqueues = 1
 
int ql2xmultique_tag
 
int ql2xfwloadbin
 
int ql2xetsenable
 
int ql2xdbwr = 1
 
int ql2xtargetreset = 1
 
int ql2xgffidenable
 
int ql2xasynctmfenable
 
int ql2xdontresethba
 
uint ql2xmaxlun = MAX_LUNS
 
int ql2xmdcapmask = 0x1F
 
int ql2xmdenable = 1
 
struct scsi_host_template qla2xxx_driver_template
 
struct scsi_transport_templateqla2xxx_transport_vport_template = NULL
 

Macro Definition Documentation

#define ABORT_POLLING_PERIOD   1000
#define ABORT_WAIT_ITER   ((10 * 1000) / (ABORT_POLLING_PERIOD))
#define FW_BLOBS   10

Definition at line 4820 of file qla_os.c.

#define FW_FILE_ISP2031   "ql2600_fw.bin"

Definition at line 4840 of file qla_os.c.

#define FW_FILE_ISP21XX   "ql2100_fw.bin"

Definition at line 4832 of file qla_os.c.

#define FW_FILE_ISP22XX   "ql2200_fw.bin"

Definition at line 4833 of file qla_os.c.

#define FW_FILE_ISP2300   "ql2300_fw.bin"

Definition at line 4834 of file qla_os.c.

#define FW_FILE_ISP2322   "ql2322_fw.bin"

Definition at line 4835 of file qla_os.c.

#define FW_FILE_ISP24XX   "ql2400_fw.bin"

Definition at line 4836 of file qla_os.c.

#define FW_FILE_ISP25XX   "ql2500_fw.bin"

Definition at line 4837 of file qla_os.c.

#define FW_FILE_ISP8031   "ql8300_fw.bin"

Definition at line 4841 of file qla_os.c.

#define FW_FILE_ISP81XX   "ql8100_fw.bin"

Definition at line 4838 of file qla_os.c.

#define FW_FILE_ISP82XX   "ql8200_fw.bin"

Definition at line 4839 of file qla_os.c.

#define FW_ISP2031   8

Definition at line 4829 of file qla_os.c.

#define FW_ISP21XX   0

Definition at line 4821 of file qla_os.c.

#define FW_ISP22XX   1

Definition at line 4822 of file qla_os.c.

#define FW_ISP2300   2

Definition at line 4823 of file qla_os.c.

#define FW_ISP2322   3

Definition at line 4824 of file qla_os.c.

#define FW_ISP24XX   4

Definition at line 4825 of file qla_os.c.

#define FW_ISP25XX   5

Definition at line 4826 of file qla_os.c.

#define FW_ISP8031   9

Definition at line 4830 of file qla_os.c.

#define FW_ISP81XX   6

Definition at line 4827 of file qla_os.c.

#define FW_ISP82XX   7

Definition at line 4828 of file qla_os.c.

#define MAX_Q_DEPTH   32

Definition at line 112 of file qla_os.c.

#define qla2x00_post_async_work (   name,
  type 
)
Value:
int qla2x00_post_async_##name##_work( \
struct scsi_qla_host *vha, \
fc_port_t *fcport, uint16_t *data) \
{ \
\
e = qla2x00_alloc_work(vha, type); \
if (!e) \
\
e->u.logio.fcport = fcport; \
if (data) { \
e->u.logio.data[0] = data[0]; \
e->u.logio.data[1] = data[1]; \
} \
return qla2x00_post_work(vha, e); \
}

Definition at line 3551 of file qla_os.c.

Function Documentation

int __qla83xx_clear_drv_presence ( scsi_qla_host_t vha)

Definition at line 4187 of file qla_os.c.

int __qla83xx_set_drv_presence ( scsi_qla_host_t vha)

Definition at line 4158 of file qla_os.c.

MODULE_AUTHOR ( "QLogic Corporation"  )
MODULE_DESCRIPTION ( "QLogic Fibre Channel HBA Driver"  )
MODULE_DEVICE_TABLE ( pci  ,
qla2xxx_pci_tbl   
)
module_exit ( qla2x00_module_exit  )
MODULE_FIRMWARE ( FW_FILE_ISP21XX  )
MODULE_FIRMWARE ( FW_FILE_ISP22XX  )
MODULE_FIRMWARE ( FW_FILE_ISP2300  )
MODULE_FIRMWARE ( FW_FILE_ISP2322  )
MODULE_FIRMWARE ( FW_FILE_ISP24XX  )
MODULE_FIRMWARE ( FW_FILE_ISP25XX  )
module_init ( qla2x00_module_init  )
MODULE_LICENSE ( "GPL"  )
module_param ( ql2xenableclass2  ,
int  ,
S_IRUGO S_IRUSR 
)
module_param ( ql2xlogintimeout  ,
int  ,
S_IRUGO   
)
module_param ( qlport_down_retry  ,
int  ,
S_IRUGO   
)
module_param ( ql2xplogiabsentdevice  ,
int  ,
S_IRUGO S_IWUSR 
)
module_param ( ql2xloginretrycount  ,
int  ,
S_IRUGO   
)
module_param ( ql2xallocfwdump  ,
int  ,
S_IRUGO   
)
module_param ( ql2xextended_error_logging  ,
int  ,
S_IRUGO S_IWUSR 
)
module_param ( ql2xshiftctondsd  ,
int  ,
S_IRUGO   
)
module_param ( ql2xfdmienable  ,
int  ,
S_IRUGO   
)
module_param ( ql2xmaxqdepth  ,
int  ,
S_IRUGO S_IWUSR 
)
module_param ( ql2xenabledif  ,
int  ,
S_IRUGO   
)
module_param ( ql2xenablehba_err_chk  ,
int  ,
S_IRUGO S_IWUSR 
)
module_param ( ql2xiidmaenable  ,
int  ,
S_IRUGO   
)
module_param ( ql2xmaxqueues  ,
int  ,
S_IRUGO   
)
module_param ( ql2xmultique_tag  ,
int  ,
S_IRUGO   
)
module_param ( ql2xfwloadbin  ,
int  ,
S_IRUGO S_IWUSR 
)
module_param ( ql2xetsenable  ,
int  ,
S_IRUGO   
)
module_param ( ql2xdbwr  ,
int  ,
S_IRUGO S_IWUSR 
)
module_param ( ql2xtargetreset  ,
int  ,
S_IRUGO   
)
module_param ( ql2xgffidenable  ,
int  ,
S_IRUGO   
)
module_param ( ql2xasynctmfenable  ,
int  ,
S_IRUGO   
)
module_param ( ql2xdontresethba  ,
int  ,
S_IRUGO S_IWUSR 
)
module_param ( ql2xmaxlun  ,
uint  ,
S_IRUGO   
)
module_param ( ql2xmdcapmask  ,
int  ,
S_IRUGO   
)
module_param ( ql2xmdenable  ,
int  ,
S_IRUGO   
)
MODULE_PARM_DESC ( ql2xenableclass2  ,
"Specify if Class 2 operations are supported from the very ""beginning. Default is 0 - class 2 not supported."   
)
MODULE_PARM_DESC ( ql2xlogintimeout  ,
"Login timeout value in seconds."   
)
MODULE_PARM_DESC ( qlport_down_retry  ,
"Maximum number of command retries to a port that returns ""a PORT-DOWN status."   
)
MODULE_PARM_DESC ( ql2xplogiabsentdevice  ,
"Option to enable PLOGI to devices that are not present after ""a Fabric scan. This is needed for several broken switches. ""Default is 0 - no PLOGI. 1 - perfom PLOGI."   
)
MODULE_PARM_DESC ( ql2xloginretrycount  ,
"Specify an alternate value for the NVRAM login retry count."   
)
MODULE_PARM_DESC ( ql2xallocfwdump  ,
"Option to enable allocation of memory for a firmware dump ""during HBA initialization. Memory allocation requirements ""vary by ISP type. Default is 1 - allocate memory."   
)
MODULE_PARM_DESC ( ql2xextended_error_logging  ,
"Option to enable extended error  logging,
\n""\t\tDefault is 0-no logging.0x40000000-Module Init &Probe.\n""\t\t0x20000000-Mailbox Cmnds.0x10000000-Device Discovery.\n""\t\t0x08000000-IO tracing.0x04000000-DPC Thread.\n""\t\t0x02000000-Async events.0x01000000-Timer routines.\n""\t\t0x00800000-User space.0x00400000-Task Management.\n""\t\t0x00200000-AER/EEH.0x00100000-Multi Q.\n""\t\t0x00080000-P3P Specific.0x00040000-Virtual Port.\n""\t\t0x00020000-Buffer Dump.0x00010000-Misc.\n""\t\t0x7fffffff-For enabling all  logs,
can be too many logs.\n""\t\t0x1e400000-Preferred value for capturing essential""debug information(equivalent to old""ql2xextended_error_logging=1).\n""\t\tDo LOGICAL OR of the value to enable more than one level  
)
MODULE_PARM_DESC ( ql2xshiftctondsd  ,
"Set to control shifting of command type processing ""based on total number of SG elements."   
)
MODULE_PARM_DESC ( ql2xfdmienable  ,
"Enables FDMI registrations. ""0 - no FDMI. Default is 1 - perform FDMI."   
)
MODULE_PARM_DESC ( ql2xmaxqdepth  ,
"Maximum queue depth to set for each LUN. ""Default is 32."   
)
MODULE_PARM_DESC ( ql2xenabledif  ,
" Enable T10-CRC-DIF "" Default is 0 - No DIF Support. 1 - Enable it""  ,
2-Enable DIF for all  types,
except Type 0."   
)
MODULE_PARM_DESC ( ql2xenablehba_err_chk  ,
" Enable T10-CRC-DIF Error isolation by HBA:\n"" Default is 1.\n"" 0 -- Error isolation disabled\n"" 1 -- Error isolation enabled only for DIX Type 0\n"" 2 -- Error isolation enabled for all Types\n  
)
MODULE_PARM_DESC ( ql2xiidmaenable  ,
"Enables iIDMA settings ""Default is 1 - perform iIDMA. 0 - no iIDMA."   
)
MODULE_PARM_DESC ( ql2xmaxqueues  ,
"Enables MQ settings ""Default is 1 for single queue. Set it to number ""of queues in MQ mode."   
)
MODULE_PARM_DESC ( ql2xmultique_tag  ,
"Enables CPU affinity settings for the driver ""Default is 0 for no affinity of request and response IO. ""Set it to 1 to turn on the cpu affinity."   
)
MODULE_PARM_DESC ( ql2xfwloadbin  ,
"Option to specify location from which to load ISP firmware:.\n"" 2 -- load firmware via the request_firmware() (hotplug).\n"" interface.\n"" 1 -- load firmware from flash.\n"" 0 -- use default semantics.\n  
)
MODULE_PARM_DESC ( ql2xetsenable  ,
"Enables firmware ETS burst.""Default is 0 - skip ETS enablement."   
)
MODULE_PARM_DESC ( ql2xdbwr  ,
"Option to specify scheme for request queue posting.\n"" 0 -- Regular doorbell.\n"" 1 -- CAMRAM doorbell (faster).\n  
)
MODULE_PARM_DESC ( ql2xtargetreset  ,
"Enable target reset.""Default is 1 - use hw defaults."   
)
MODULE_PARM_DESC ( ql2xgffidenable  ,
"Enables GFF_ID checks of port type. ""Default is 0 - Do not use GFF_ID information."   
)
MODULE_PARM_DESC ( ql2xasynctmfenable  ,
"Enables issue of TM IOCBs asynchronously via IOCB mechanism""Default is 0 - Issue TM IOCBs via mailbox mechanism."   
)
MODULE_PARM_DESC ( ql2xdontresethba  ,
"Option to specify reset behaviour.\n"" 0 (Default) -- Reset on failure.\n"" 1 -- Do not reset on failure.\n  
)
MODULE_PARM_DESC ( ql2xmaxlun  ,
"Defines the maximum LU number to register with the SCSI ""midlayer. Default is 65535."   
)
MODULE_PARM_DESC ( ql2xmdcapmask  ,
"Set the Minidump driver capture mask level. ""Default is 0x1F - Can be set to  0x3,
0x7  ,
0xF  ,
0x1F  ,
0x7F."   
)
MODULE_PARM_DESC ( ql2xmdenable  ,
"Enable/disable MiniDump. ""0 - MiniDump disabled. ""1 (Default) - MiniDump enabled."   
)
MODULE_VERSION ( QLA2XXX_VERSION  )
void qla2x00_abort_all_cmds ( scsi_qla_host_t vha,
int  res 
)

Definition at line 1317 of file qla_os.c.

struct scsi_qla_host* qla2x00_create_host ( struct scsi_host_template sht,
struct qla_hw_data ha 
)
read

Definition at line 3449 of file qla_os.c.

void qla2x00_do_work ( struct scsi_qla_host vha)

Definition at line 3609 of file qla_os.c.

int qla2x00_eh_wait_for_pending_commands ( scsi_qla_host_t vha,
unsigned int  t,
unsigned int  l,
enum nexus_wait_type  type 
)

Definition at line 988 of file qla_os.c.

void qla2x00_free_fcports ( struct scsi_qla_host vha)

Definition at line 2917 of file qla_os.c.

int qla2x00_loop_reset ( scsi_qla_host_t vha)

Definition at line 1272 of file qla_os.c.

void qla2x00_mark_all_devices_lost ( scsi_qla_host_t vha,
int  defer 
)

Definition at line 3011 of file qla_os.c.

void qla2x00_mark_device_lost ( scsi_qla_host_t vha,
fc_port_t fcport,
int  do_login,
int  defer 
)

Definition at line 2963 of file qla_os.c.

int qla2x00_post_aen_work ( struct scsi_qla_host vha,
enum fc_host_event_code  code,
u32  data 
)

Definition at line 3524 of file qla_os.c.

qla2x00_post_async_work ( login  ,
QLA_EVT_ASYNC_LOGIN   
)
qla2x00_post_async_work ( login_done  ,
QLA_EVT_ASYNC_LOGIN_DONE   
)
qla2x00_post_async_work ( logout  ,
QLA_EVT_ASYNC_LOGOUT   
)
qla2x00_post_async_work ( logout_done  ,
QLA_EVT_ASYNC_LOGOUT_DONE   
)
qla2x00_post_async_work ( adisc  ,
QLA_EVT_ASYNC_ADISC   
)
qla2x00_post_async_work ( adisc_done  ,
QLA_EVT_ASYNC_ADISC_DONE   
)
int qla2x00_post_idc_ack_work ( struct scsi_qla_host vha,
uint16_t mb 
)

Definition at line 3539 of file qla_os.c.

int qla2x00_post_uevent_work ( struct scsi_qla_host vha,
u32  code 
)

Definition at line 3578 of file qla_os.c.

void qla2x00_relogin ( struct scsi_qla_host vha)

Definition at line 3668 of file qla_os.c.

struct fw_blob* qla2x00_request_firmware ( scsi_qla_host_t vha)
read

Definition at line 4859 of file qla_os.c.

void qla2x00_sp_free_dma ( void vha,
void ptr 
)

Definition at line 578 of file qla_os.c.

__inline__ void qla2x00_start_timer ( scsi_qla_host_t vha,
void func,
unsigned long  interval 
)

Definition at line 278 of file qla_os.c.

void qla2x00_timer ( scsi_qla_host_t vha)

Definition at line 4670 of file qla_os.c.

int qla2x00_wait_for_chip_reset ( scsi_qla_host_t vha)

Definition at line 868 of file qla_os.c.

int qla2x00_wait_for_hba_online ( scsi_qla_host_t vha)

Definition at line 799 of file qla_os.c.

void qla2xxx_wake_dpc ( struct scsi_qla_host vha)

Definition at line 4626 of file qla_os.c.

uint32_t qla82xx_error_recovery ( scsi_qla_host_t base_vha)

Definition at line 4990 of file qla_os.c.

int qla83xx_check_nic_core_fw_alive ( scsi_qla_host_t base_vha)

Definition at line 3840 of file qla_os.c.

int qla83xx_clear_drv_presence ( scsi_qla_host_t vha)

Definition at line 4204 of file qla_os.c.

int qla83xx_device_bootstrap ( scsi_qla_host_t vha)

Definition at line 4255 of file qla_os.c.

int qla83xx_force_lock_recovery ( scsi_qla_host_t base_vha)

Definition at line 3958 of file qla_os.c.

void qla83xx_idc_lock ( scsi_qla_host_t base_vha,
uint16_t  requester_id 
)

Definition at line 4052 of file qla_os.c.

int qla83xx_idc_lock_recovery ( scsi_qla_host_t base_vha)

Definition at line 4017 of file qla_os.c.

int qla83xx_idc_state_handler ( scsi_qla_host_t base_vha)

Definition at line 4289 of file qla_os.c.

void qla83xx_idc_state_handler_work ( struct work_struct work)

Definition at line 3824 of file qla_os.c.

void qla83xx_idc_unlock ( scsi_qla_host_t base_vha,
uint16_t  requester_id 
)

Definition at line 4102 of file qla_os.c.

void qla83xx_need_reset_handler ( scsi_qla_host_t vha)

Definition at line 4216 of file qla_os.c.

void qla83xx_nic_core_reset_work ( struct work_struct work)

Definition at line 3870 of file qla_os.c.

void qla83xx_nic_core_unrecoverable_work ( struct work_struct work)

Definition at line 3802 of file qla_os.c.

void qla83xx_schedule_work ( scsi_qla_host_t base_vha,
int  work_code 
)

Definition at line 3765 of file qla_os.c.

void qla83xx_service_idc_aen ( struct work_struct work)

Definition at line 3909 of file qla_os.c.

int qla83xx_set_drv_presence ( scsi_qla_host_t vha)

Definition at line 4175 of file qla_os.c.

Variable Documentation

int ql2xallocfwdump = 1

Definition at line 73 of file qla_os.c.

int ql2xasynctmfenable

Definition at line 189 of file qla_os.c.

int ql2xdbwr = 1

Definition at line 170 of file qla_os.c.

int ql2xdontresethba

Definition at line 195 of file qla_os.c.

int ql2xenableclass2

Definition at line 44 of file qla_os.c.

int ql2xenabledif = 2

Definition at line 119 of file qla_os.c.

int ql2xenablehba_err_chk = 2

Definition at line 126 of file qla_os.c.

int ql2xetsenable

Definition at line 164 of file qla_os.c.

int ql2xextended_error_logging

Definition at line 80 of file qla_os.c.

int ql2xfdmienable =1

Definition at line 106 of file qla_os.c.

int ql2xfwloadbin

Definition at line 155 of file qla_os.c.

int ql2xgffidenable

Definition at line 183 of file qla_os.c.

int ql2xiidmaenable =1

Definition at line 135 of file qla_os.c.

int ql2xloginretrycount = 0

Definition at line 68 of file qla_os.c.

int ql2xlogintimeout = 20

Definition at line 50 of file qla_os.c.

uint ql2xmaxlun = MAX_LUNS

Definition at line 202 of file qla_os.c.

int ql2xmaxqueues = 1

Definition at line 141 of file qla_os.c.

int ql2xmdcapmask = 0x1F

Definition at line 208 of file qla_os.c.

int ql2xmdenable = 1

Definition at line 214 of file qla_os.c.

int ql2xmultique_tag

Definition at line 148 of file qla_os.c.

int ql2xplogiabsentdevice

Definition at line 61 of file qla_os.c.

int ql2xshiftctondsd = 6

Definition at line 98 of file qla_os.c.

int ql2xtargetreset = 1

Definition at line 177 of file qla_os.c.

int ql_errlev = ql_log_all

Definition at line 42 of file qla_os.c.

char qla2x00_version_str[40]

Definition at line 26 of file qla_os.c.

struct scsi_host_template qla2xxx_driver_template
Initial value:
= {
.module = THIS_MODULE,
.queuecommand = qla2xxx_queuecommand,
.eh_abort_handler = qla2xxx_eh_abort,
.eh_device_reset_handler = qla2xxx_eh_device_reset,
.eh_target_reset_handler = qla2xxx_eh_target_reset,
.eh_bus_reset_handler = qla2xxx_eh_bus_reset,
.eh_host_reset_handler = qla2xxx_eh_host_reset,
.slave_configure = qla2xxx_slave_configure,
.slave_alloc = qla2xxx_slave_alloc,
.slave_destroy = qla2xxx_slave_destroy,
.scan_finished = qla2xxx_scan_finished,
.scan_start = qla2xxx_scan_start,
.change_queue_depth = qla2x00_change_queue_depth,
.change_queue_type = qla2x00_change_queue_type,
.this_id = -1,
.cmd_per_lun = 3,
.use_clustering = ENABLE_CLUSTERING,
.sg_tablesize = SG_ALL,
.max_sectors = 0xFFFF,
.shost_attrs = qla2x00_host_attrs,
.supported_mode = MODE_INITIATOR,
}

Definition at line 239 of file qla_os.c.

struct scsi_transport_template* qla2xxx_transport_vport_template = NULL

Definition at line 270 of file qla_os.c.

int qlport_down_retry

Definition at line 55 of file qla_os.c.