aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/qla2xxx/qla_def.h
diff options
context:
space:
mode:
authorAndrew Vasquez <andrew.vasquez@qlogic.com>2009-08-20 14:06:05 -0400
committerJames Bottomley <James.Bottomley@suse.de>2009-09-05 10:41:57 -0400
commitac280b670e6d6666667aba02324e2fc50bd96ae7 (patch)
tree4d0d9187b26513ef9f820ab140f29a4f49f678b8 /drivers/scsi/qla2xxx/qla_def.h
parentcf53b069f52ae3f83dec1acd339e3c3a2e979478 (diff)
[SCSI] qla2xxx: Add asynchronous-login support.
ISPs which support this feature include 23xx and above. Signed-off-by: Andrew Vasquez <andrew.vasquez@qlogic.com> Signed-off-by: Giridhar Malavali <giridhar.malavali@qlogic.com> Signed-off-by: James Bottomley <James.Bottomley@suse.de>
Diffstat (limited to 'drivers/scsi/qla2xxx/qla_def.h')
-rw-r--r--drivers/scsi/qla2xxx/qla_def.h32
1 files changed, 32 insertions, 0 deletions
diff --git a/drivers/scsi/qla2xxx/qla_def.h b/drivers/scsi/qla2xxx/qla_def.h
index 9eb7be684f0a..efdfb1eb26ba 100644
--- a/drivers/scsi/qla2xxx/qla_def.h
+++ b/drivers/scsi/qla2xxx/qla_def.h
@@ -207,6 +207,28 @@ typedef struct srb {
207#define SRB_DMA_VALID BIT_0 /* Command sent to ISP */ 207#define SRB_DMA_VALID BIT_0 /* Command sent to ISP */
208 208
209/* 209/*
210 * SRB extensions.
211 */
212struct srb_ctx {
213#define SRB_LOGIN_CMD 1
214#define SRB_LOGOUT_CMD 2
215 uint16_t type;
216 struct timer_list timer;
217
218 void (*free)(srb_t *sp);
219 void (*timeout)(srb_t *sp);
220};
221
222struct srb_logio {
223 struct srb_ctx ctx;
224
225#define SRB_LOGIN_RETRIED BIT_0
226#define SRB_LOGIN_COND_PLOGI BIT_1
227#define SRB_LOGIN_SKIP_PRLI BIT_2
228 uint16_t flags;
229};
230
231/*
210 * ISP I/O Register Set structure definitions. 232 * ISP I/O Register Set structure definitions.
211 */ 233 */
212struct device_reg_2xxx { 234struct device_reg_2xxx {
@@ -2096,6 +2118,10 @@ struct qla_msix_entry {
2096enum qla_work_type { 2118enum qla_work_type {
2097 QLA_EVT_AEN, 2119 QLA_EVT_AEN,
2098 QLA_EVT_IDC_ACK, 2120 QLA_EVT_IDC_ACK,
2121 QLA_EVT_ASYNC_LOGIN,
2122 QLA_EVT_ASYNC_LOGIN_DONE,
2123 QLA_EVT_ASYNC_LOGOUT,
2124 QLA_EVT_ASYNC_LOGOUT_DONE,
2099}; 2125};
2100 2126
2101 2127
@@ -2114,6 +2140,11 @@ struct qla_work_evt {
2114#define QLA_IDC_ACK_REGS 7 2140#define QLA_IDC_ACK_REGS 7
2115 uint16_t mb[QLA_IDC_ACK_REGS]; 2141 uint16_t mb[QLA_IDC_ACK_REGS];
2116 } idc_ack; 2142 } idc_ack;
2143 struct {
2144 struct fc_port *fcport;
2145#define QLA_LOGIO_LOGIN_RETRIED BIT_0
2146 u16 data[2];
2147 } logio;
2117 } u; 2148 } u;
2118}; 2149};
2119 2150
@@ -2354,6 +2385,7 @@ struct qla_hw_data {
2354 (ha)->flags.msix_enabled) 2385 (ha)->flags.msix_enabled)
2355#define IS_FAC_REQUIRED(ha) (IS_QLA81XX(ha)) 2386#define IS_FAC_REQUIRED(ha) (IS_QLA81XX(ha))
2356#define IS_NOCACHE_VPD_TYPE(ha) (IS_QLA81XX(ha)) 2387#define IS_NOCACHE_VPD_TYPE(ha) (IS_QLA81XX(ha))
2388#define IS_ALOGIO_CAPABLE(ha) (IS_QLA23XX(ha) || IS_FWI2_CAPABLE(ha))
2357 2389
2358#define IS_IIDMA_CAPABLE(ha) ((ha)->device_type & DT_IIDMA) 2390#define IS_IIDMA_CAPABLE(ha) ((ha)->device_type & DT_IIDMA)
2359#define IS_FWI2_CAPABLE(ha) ((ha)->device_type & DT_FWI2) 2391#define IS_FWI2_CAPABLE(ha) ((ha)->device_type & DT_FWI2)