summaryrefslogtreecommitdiffstats
path: root/drivers/scsi/qla2xxx/qla_def.h
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/scsi/qla2xxx/qla_def.h')
-rw-r--r--drivers/scsi/qla2xxx/qla_def.h188
1 files changed, 9 insertions, 179 deletions
diff --git a/drivers/scsi/qla2xxx/qla_def.h b/drivers/scsi/qla2xxx/qla_def.h
index 53508f3c4ae9..d6f6579cfd27 100644
--- a/drivers/scsi/qla2xxx/qla_def.h
+++ b/drivers/scsi/qla2xxx/qla_def.h
@@ -31,6 +31,8 @@
#include <scsi/scsi_cmnd.h>
#include <scsi/scsi_transport_fc.h>
+#define QLA2XXX_DRIVER_NAME "qla2xxx"
+
/*
* We have MAILBOX_REGISTER_COUNT sized arrays in a few places,
* but that's fine as we don't look at the last 24 ones for
@@ -189,22 +191,13 @@ typedef struct srb {
struct scsi_cmnd *cmd; /* Linux SCSI command pkt */
- struct timer_list timer; /* Command timer */
- atomic_t ref_count; /* Reference count for this structure */
uint16_t flags;
- /* Request state */
- uint16_t state;
-
/* Single transfer DMA context */
dma_addr_t dma_handle;
uint32_t request_sense_length;
uint8_t *request_sense_ptr;
-
- /* SRB magic number */
- uint16_t magic;
-#define SRB_MAGIC 0x10CB
} srb_t;
/*
@@ -226,21 +219,6 @@ typedef struct srb {
#define SRB_TAPE BIT_11 /* FCP2 (Tape) command. */
/*
- * SRB state definitions
- */
-#define SRB_FREE_STATE 0 /* returned back */
-#define SRB_PENDING_STATE 1 /* queued in LUN Q */
-#define SRB_ACTIVE_STATE 2 /* in Active Array */
-#define SRB_DONE_STATE 3 /* queued in Done Queue */
-#define SRB_RETRY_STATE 4 /* in Retry Queue */
-#define SRB_SUSPENDED_STATE 5 /* in suspended state */
-#define SRB_NO_QUEUE_STATE 6 /* is in between states */
-#define SRB_ACTIVE_TIMEOUT_STATE 7 /* in Active Array but timed out */
-#define SRB_FAILOVER_STATE 8 /* in Failover Queue */
-#define SRB_SCSI_RETRY_STATE 9 /* in Scsi Retry Queue */
-
-
-/*
* ISP I/O Register Set structure definitions.
*/
struct device_reg_2xxx {
@@ -270,6 +248,8 @@ struct device_reg_2xxx {
#define NVR_SELECT BIT_1
#define NVR_CLOCK BIT_0
+#define NVR_WAIT_CNT 20000
+
union {
struct {
uint16_t mailbox0;
@@ -1514,62 +1494,6 @@ typedef struct {
} sw_info_t;
/*
- * Inquiry command structure.
- */
-#define INQ_DATA_SIZE 36
-
-/*
- * Inquiry mailbox IOCB packet definition.
- */
-typedef struct {
- union {
- cmd_a64_entry_t cmd;
- sts_entry_t rsp;
- struct cmd_type_7 cmd24;
- struct sts_entry_24xx rsp24;
- } p;
- uint8_t inq[INQ_DATA_SIZE];
-} inq_cmd_rsp_t;
-
-/*
- * Report LUN command structure.
- */
-#define CHAR_TO_SHORT(a, b) (uint16_t)((uint8_t)b << 8 | (uint8_t)a)
-
-typedef struct {
- uint32_t len;
- uint32_t rsrv;
-} rpt_hdr_t;
-
-typedef struct {
- struct {
- uint8_t b : 6;
- uint8_t address_method : 2;
- } msb;
- uint8_t lsb;
- uint8_t unused[6];
-} rpt_lun_t;
-
-typedef struct {
- rpt_hdr_t hdr;
- rpt_lun_t lst[MAX_LUNS];
-} rpt_lun_lst_t;
-
-/*
- * Report Lun mailbox IOCB packet definition.
- */
-typedef struct {
- union {
- cmd_a64_entry_t cmd;
- sts_entry_t rsp;
- struct cmd_type_7 cmd24;
- struct sts_entry_24xx rsp24;
- } p;
- rpt_lun_lst_t list;
-} rpt_lun_cmd_rsp_t;
-
-
-/*
* Fibre channel port type.
*/
typedef enum {
@@ -1587,7 +1511,6 @@ typedef struct {
typedef struct fc_port {
struct list_head list;
struct scsi_qla_host *ha;
- struct scsi_qla_host *vis_ha; /* only used when suspending lun */
uint8_t node_name[WWN_SIZE];
uint8_t port_name[WWN_SIZE];
@@ -1602,23 +1525,13 @@ typedef struct fc_port {
unsigned int os_target_id;
- uint16_t iodesc_idx_sent;
-
int port_login_retry_count;
int login_retry;
atomic_t port_down_timer;
- uint8_t device_type;
- uint8_t unused;
-
- uint8_t mp_byte; /* multi-path byte (not used) */
- uint8_t cur_path; /* current path id */
-
spinlock_t rport_lock;
struct fc_rport *rport, *drport;
u32 supported_classes;
- struct work_struct rport_add_work;
- struct work_struct rport_del_work;
} fc_port_t;
/*
@@ -2027,54 +1940,6 @@ struct sns_cmd_pkt {
} p;
};
-/* IO descriptors */
-#define MAX_IO_DESCRIPTORS 32
-
-#define ABORT_IOCB_CB 0
-#define ADISC_PORT_IOCB_CB 1
-#define LOGOUT_PORT_IOCB_CB 2
-#define LOGIN_PORT_IOCB_CB 3
-#define LAST_IOCB_CB 4
-
-#define IODESC_INVALID_INDEX 0xFFFF
-#define IODESC_ADISC_NEEDED 0xFFFE
-#define IODESC_LOGIN_NEEDED 0xFFFD
-
-struct io_descriptor {
- uint16_t used:1;
- uint16_t idx:11;
- uint16_t cb_idx:4;
-
- struct timer_list timer;
-
- struct scsi_qla_host *ha;
-
- port_id_t d_id;
- fc_port_t *remote_fcport;
-
- uint32_t signature;
-};
-
-struct qla_fw_info {
- unsigned short addressing; /* addressing method used to load fw */
-#define FW_INFO_ADDR_NORMAL 0
-#define FW_INFO_ADDR_EXTENDED 1
-#define FW_INFO_ADDR_NOMORE 0xffff
- unsigned short *fwcode; /* pointer to FW array */
- unsigned short *fwlen; /* number of words in array */
- unsigned short *fwstart; /* start address for F/W */
- unsigned long *lfwstart; /* start address (long) for F/W */
-};
-
-struct qla_board_info {
- char *drv_name;
-
- char isp_name[8];
- struct qla_fw_info *fw_info;
- char *fw_fname;
- struct scsi_host_template *sht;
-};
-
struct fw_blob {
char *name;
uint32_t segs[4];
@@ -2303,9 +2168,6 @@ typedef struct scsi_qla_host {
uint32_t current_outstanding_cmd;
srb_t *status_srb; /* Status continuation entry. */
- uint16_t revision;
- uint8_t ports;
-
/* ISP configuration data. */
uint16_t loop_id; /* Host adapter loop id */
uint16_t fb_rev;
@@ -2361,10 +2223,6 @@ typedef struct scsi_qla_host {
/* Fibre Channel Device List. */
struct list_head fcports;
- struct list_head rscn_fcports;
-
- struct io_descriptor io_descriptors[MAX_IO_DESCRIPTORS];
- uint16_t iodesc_signature;
/* RSCN queue. */
uint32_t rscn_queue[MAX_RSCN_COUNT];
@@ -2395,9 +2253,6 @@ typedef struct scsi_qla_host {
struct gid_list_info *gid_list;
int gid_list_info_size;
- dma_addr_t rlc_rsp_dma;
- rpt_lun_cmd_rsp_t *rlc_rsp;
-
/* Small DMA pool allocations -- maximum 256 bytes in length. */
#define DMA_POOL_SIZE 256
struct dma_pool *s_dma_pool;
@@ -2406,9 +2261,6 @@ typedef struct scsi_qla_host {
init_cb_t *init_cb;
int init_cb_size;
- dma_addr_t iodesc_pd_dma;
- port_database_t *iodesc_pd;
-
/* These are used by mailbox operations. */
volatile uint16_t mailbox_out[MAILBOX_REGISTER_COUNT];
@@ -2435,13 +2287,16 @@ typedef struct scsi_qla_host {
mbx_cmd_t mc;
/* Basic firmware related information. */
- struct qla_board_info *brd_info;
uint16_t fw_major_version;
uint16_t fw_minor_version;
uint16_t fw_subminor_version;
uint16_t fw_attributes;
uint32_t fw_memory_size;
uint32_t fw_transfer_size;
+ uint32_t fw_srisc_address;
+#define RISC_START_ADDRESS_2100 0x1000
+#define RISC_START_ADDRESS_2300 0x800
+#define RISC_START_ADDRESS_2400 0x100000
uint16_t fw_options[16]; /* slots: 1,2,3,10,11 */
uint8_t fw_seriallink_options[4];
@@ -2449,15 +2304,11 @@ typedef struct scsi_qla_host {
/* Firmware dump information. */
void *fw_dump;
- int fw_dump_order;
+ int fw_dumped;
int fw_dump_reading;
char *fw_dump_buffer;
int fw_dump_buffer_len;
- int fw_dumped;
- void *fw_dump24;
- int fw_dump24_len;
-
uint8_t host_str[16];
uint32_t pci_attr;
@@ -2503,8 +2354,6 @@ typedef struct scsi_qla_host {
test_bit(LOOP_RESYNC_NEEDED, &ha->dpc_flags) || \
atomic_read(&ha->loop_state) == LOOP_DOWN)
-#define TGT_Q(ha, t) (ha->otgt[t])
-
#define to_qla_host(x) ((scsi_qla_host_t *) (x)->hostdata)
#define qla_printk(level, ha, format, arg...) \
@@ -2537,19 +2386,6 @@ typedef struct scsi_qla_host {
#define QLA_RSCNS_HANDLED 0x108
#define QLA_ALREADY_REGISTERED 0x109
-/*
-* Stat info for all adpaters
-*/
-struct _qla2x00stats {
- unsigned long mboxtout; /* mailbox timeouts */
- unsigned long mboxerr; /* mailbox errors */
- unsigned long ispAbort; /* ISP aborts */
- unsigned long debugNo;
- unsigned long loop_resync;
- unsigned long outarray_full;
- unsigned long retry_q_cnt;
-};
-
#define NVRAM_DELAY() udelay(10)
#define INVALID_HANDLE (MAX_OUTSTANDING_COMMANDS+1)
@@ -2565,12 +2401,6 @@ struct _qla2x00stats {
#include "qla_dbg.h"
#include "qla_inline.h"
-/*
-* String arrays
-*/
-#define LINESIZE 256
-#define MAXARGS 26
-
#define CMD_SP(Cmnd) ((Cmnd)->SCp.ptr)
#define CMD_COMPL_STATUS(Cmnd) ((Cmnd)->SCp.this_residual)
#define CMD_RESID_LEN(Cmnd) ((Cmnd)->SCp.buffers_residual)