diff options
author | Andrew Vasquez <andrew.vasquez@qlogic.com> | 2009-08-20 14:06:05 -0400 |
---|---|---|
committer | James Bottomley <James.Bottomley@suse.de> | 2009-09-05 10:41:57 -0400 |
commit | ac280b670e6d6666667aba02324e2fc50bd96ae7 (patch) | |
tree | 4d0d9187b26513ef9f820ab140f29a4f49f678b8 /drivers/scsi/qla2xxx/qla_def.h | |
parent | cf53b069f52ae3f83dec1acd339e3c3a2e979478 (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.h | 32 |
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 | */ | ||
212 | struct 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 | |||
222 | struct 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 | */ |
212 | struct device_reg_2xxx { | 234 | struct device_reg_2xxx { |
@@ -2096,6 +2118,10 @@ struct qla_msix_entry { | |||
2096 | enum qla_work_type { | 2118 | enum 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) |