aboutsummaryrefslogtreecommitdiffstats
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.h126
1 files changed, 44 insertions, 82 deletions
diff --git a/drivers/scsi/qla2xxx/qla_def.h b/drivers/scsi/qla2xxx/qla_def.h
index b31a03bbd14f..53508f3c4ae9 100644
--- a/drivers/scsi/qla2xxx/qla_def.h
+++ b/drivers/scsi/qla2xxx/qla_def.h
@@ -31,82 +31,6 @@
31#include <scsi/scsi_cmnd.h> 31#include <scsi/scsi_cmnd.h>
32#include <scsi/scsi_transport_fc.h> 32#include <scsi/scsi_transport_fc.h>
33 33
34#if defined(CONFIG_SCSI_QLA2XXX_EMBEDDED_FIRMWARE)
35#if defined(CONFIG_SCSI_QLA21XX) || defined(CONFIG_SCSI_QLA21XX_MODULE)
36#define IS_QLA2100(ha) ((ha)->pdev->device == PCI_DEVICE_ID_QLOGIC_ISP2100)
37#else
38#define IS_QLA2100(ha) 0
39#endif
40
41#if defined(CONFIG_SCSI_QLA22XX) || defined(CONFIG_SCSI_QLA22XX_MODULE)
42#define IS_QLA2200(ha) ((ha)->pdev->device == PCI_DEVICE_ID_QLOGIC_ISP2200)
43#else
44#define IS_QLA2200(ha) 0
45#endif
46
47#if defined(CONFIG_SCSI_QLA2300) || defined(CONFIG_SCSI_QLA2300_MODULE)
48#define IS_QLA2300(ha) ((ha)->pdev->device == PCI_DEVICE_ID_QLOGIC_ISP2300)
49#define IS_QLA2312(ha) ((ha)->pdev->device == PCI_DEVICE_ID_QLOGIC_ISP2312)
50#else
51#define IS_QLA2300(ha) 0
52#define IS_QLA2312(ha) 0
53#endif
54
55#if defined(CONFIG_SCSI_QLA2322) || defined(CONFIG_SCSI_QLA2322_MODULE)
56#define IS_QLA2322(ha) ((ha)->pdev->device == PCI_DEVICE_ID_QLOGIC_ISP2322)
57#else
58#define IS_QLA2322(ha) 0
59#endif
60
61#if defined(CONFIG_SCSI_QLA6312) || defined(CONFIG_SCSI_QLA6312_MODULE)
62#define IS_QLA6312(ha) ((ha)->pdev->device == PCI_DEVICE_ID_QLOGIC_ISP6312)
63#define IS_QLA6322(ha) ((ha)->pdev->device == PCI_DEVICE_ID_QLOGIC_ISP6322)
64#else
65#define IS_QLA6312(ha) 0
66#define IS_QLA6322(ha) 0
67#endif
68
69#if defined(CONFIG_SCSI_QLA24XX) || defined(CONFIG_SCSI_QLA24XX_MODULE)
70#define IS_QLA2422(ha) ((ha)->pdev->device == PCI_DEVICE_ID_QLOGIC_ISP2422)
71#define IS_QLA2432(ha) ((ha)->pdev->device == PCI_DEVICE_ID_QLOGIC_ISP2432)
72#else
73#define IS_QLA2422(ha) 0
74#define IS_QLA2432(ha) 0
75#endif
76
77#if defined(CONFIG_SCSI_QLA25XX) || defined(CONFIG_SCSI_QLA25XX_MODULE)
78#define IS_QLA2512(ha) ((ha)->pdev->device == PCI_DEVICE_ID_QLOGIC_ISP2512)
79#define IS_QLA2522(ha) ((ha)->pdev->device == PCI_DEVICE_ID_QLOGIC_ISP2522)
80#else
81#define IS_QLA2512(ha) 0
82#define IS_QLA2522(ha) 0
83#endif
84
85#else /* !defined(CONFIG_SCSI_QLA2XXX_EMBEDDED_FIRMWARE) */
86
87#define IS_QLA2100(ha) ((ha)->pdev->device == PCI_DEVICE_ID_QLOGIC_ISP2100)
88#define IS_QLA2200(ha) ((ha)->pdev->device == PCI_DEVICE_ID_QLOGIC_ISP2200)
89#define IS_QLA2300(ha) ((ha)->pdev->device == PCI_DEVICE_ID_QLOGIC_ISP2300)
90#define IS_QLA2312(ha) ((ha)->pdev->device == PCI_DEVICE_ID_QLOGIC_ISP2312)
91#define IS_QLA2322(ha) ((ha)->pdev->device == PCI_DEVICE_ID_QLOGIC_ISP2322)
92#define IS_QLA6312(ha) ((ha)->pdev->device == PCI_DEVICE_ID_QLOGIC_ISP6312)
93#define IS_QLA6322(ha) ((ha)->pdev->device == PCI_DEVICE_ID_QLOGIC_ISP6322)
94#define IS_QLA2422(ha) ((ha)->pdev->device == PCI_DEVICE_ID_QLOGIC_ISP2422)
95#define IS_QLA2432(ha) ((ha)->pdev->device == PCI_DEVICE_ID_QLOGIC_ISP2432)
96#define IS_QLA2512(ha) ((ha)->pdev->device == PCI_DEVICE_ID_QLOGIC_ISP2512)
97#define IS_QLA2522(ha) ((ha)->pdev->device == PCI_DEVICE_ID_QLOGIC_ISP2522)
98#endif
99
100#define IS_QLA23XX(ha) (IS_QLA2300(ha) || IS_QLA2312(ha) || IS_QLA2322(ha) || \
101 IS_QLA6312(ha) || IS_QLA6322(ha))
102#define IS_QLA24XX(ha) (IS_QLA2422(ha) || IS_QLA2432(ha))
103#define IS_QLA25XX(ha) (IS_QLA2512(ha) || IS_QLA2522(ha))
104
105/*
106 * Only non-ISP2[12]00 have extended addressing support in the firmware.
107 */
108#define HAS_EXTENDED_IDS(ha) (!IS_QLA2100(ha) && !IS_QLA2200(ha))
109
110/* 34/*
111 * We have MAILBOX_REGISTER_COUNT sized arrays in a few places, 35 * We have MAILBOX_REGISTER_COUNT sized arrays in a few places,
112 * but that's fine as we don't look at the last 24 ones for 36 * but that's fine as we don't look at the last 24 ones for
@@ -838,7 +762,6 @@ typedef struct {
838#define PD_STATE_WAIT_PORT_LOGOUT_ACK 11 762#define PD_STATE_WAIT_PORT_LOGOUT_ACK 11
839 763
840 764
841#define QLA_ZIO_MODE_5 (BIT_2 | BIT_0)
842#define QLA_ZIO_MODE_6 (BIT_2 | BIT_1) 765#define QLA_ZIO_MODE_6 (BIT_2 | BIT_1)
843#define QLA_ZIO_DISABLED 0 766#define QLA_ZIO_DISABLED 0
844#define QLA_ZIO_DEFAULT_TIMER 2 767#define QLA_ZIO_DEFAULT_TIMER 2
@@ -2300,6 +2223,47 @@ typedef struct scsi_qla_host {
2300#define SWITCH_FOUND BIT_3 2223#define SWITCH_FOUND BIT_3
2301#define DFLG_NO_CABLE BIT_4 2224#define DFLG_NO_CABLE BIT_4
2302 2225
2226 uint32_t device_type;
2227#define DT_ISP2100 BIT_0
2228#define DT_ISP2200 BIT_1
2229#define DT_ISP2300 BIT_2
2230#define DT_ISP2312 BIT_3
2231#define DT_ISP2322 BIT_4
2232#define DT_ISP6312 BIT_5
2233#define DT_ISP6322 BIT_6
2234#define DT_ISP2422 BIT_7
2235#define DT_ISP2432 BIT_8
2236#define DT_ISP5422 BIT_9
2237#define DT_ISP5432 BIT_10
2238#define DT_ISP_LAST (DT_ISP5432 << 1)
2239
2240#define DT_ZIO_SUPPORTED BIT_28
2241#define DT_OEM_001 BIT_29
2242#define DT_ISP2200A BIT_30
2243#define DT_EXTENDED_IDS BIT_31
2244
2245#define DT_MASK(ha) ((ha)->device_type & (DT_ISP_LAST - 1))
2246#define IS_QLA2100(ha) (DT_MASK(ha) & DT_ISP2100)
2247#define IS_QLA2200(ha) (DT_MASK(ha) & DT_ISP2200)
2248#define IS_QLA2300(ha) (DT_MASK(ha) & DT_ISP2300)
2249#define IS_QLA2312(ha) (DT_MASK(ha) & DT_ISP2312)
2250#define IS_QLA2322(ha) (DT_MASK(ha) & DT_ISP2322)
2251#define IS_QLA6312(ha) (DT_MASK(ha) & DT_ISP6312)
2252#define IS_QLA6322(ha) (DT_MASK(ha) & DT_ISP6322)
2253#define IS_QLA2422(ha) (DT_MASK(ha) & DT_ISP2422)
2254#define IS_QLA2432(ha) (DT_MASK(ha) & DT_ISP2432)
2255#define IS_QLA5422(ha) (DT_MASK(ha) & DT_ISP5422)
2256#define IS_QLA5432(ha) (DT_MASK(ha) & DT_ISP5432)
2257
2258#define IS_QLA23XX(ha) (IS_QLA2300(ha) || IS_QLA2312(ha) || IS_QLA2322(ha) || \
2259 IS_QLA6312(ha) || IS_QLA6322(ha))
2260#define IS_QLA24XX(ha) (IS_QLA2422(ha) || IS_QLA2432(ha))
2261#define IS_QLA54XX(ha) (IS_QLA5422(ha) || IS_QLA5432(ha))
2262
2263#define IS_ZIO_SUPPORTED(ha) ((ha)->device_type & DT_ZIO_SUPPORTED)
2264#define IS_OEM_001(ha) ((ha)->device_type & DT_OEM_001)
2265#define HAS_EXTENDED_IDS(ha) ((ha)->device_type & DT_EXTENDED_IDS)
2266
2303 /* SRB cache. */ 2267 /* SRB cache. */
2304#define SRB_MIN_REQ 128 2268#define SRB_MIN_REQ 128
2305 mempool_t *srb_mempool; 2269 mempool_t *srb_mempool;
@@ -2381,6 +2345,8 @@ typedef struct scsi_qla_host {
2381 /* NVRAM configuration data */ 2345 /* NVRAM configuration data */
2382 uint16_t nvram_size; 2346 uint16_t nvram_size;
2383 uint16_t nvram_base; 2347 uint16_t nvram_base;
2348 uint16_t vpd_size;
2349 uint16_t vpd_base;
2384 2350
2385 uint16_t loop_reset_delay; 2351 uint16_t loop_reset_delay;
2386 uint8_t retry_count; 2352 uint8_t retry_count;
@@ -2414,11 +2380,7 @@ typedef struct scsi_qla_host {
2414 struct sns_cmd_pkt *sns_cmd; 2380 struct sns_cmd_pkt *sns_cmd;
2415 dma_addr_t sns_cmd_dma; 2381 dma_addr_t sns_cmd_dma;
2416 2382
2417 pid_t dpc_pid; 2383 struct task_struct *dpc_thread;
2418 int dpc_should_die;
2419 struct completion dpc_inited;
2420 struct completion dpc_exited;
2421 struct semaphore *dpc_wait;
2422 uint8_t dpc_active; /* DPC routine is active */ 2384 uint8_t dpc_active; /* DPC routine is active */
2423 2385
2424 /* Timeout timers. */ 2386 /* Timeout timers. */