diff options
author | Armen Baloyan <armen.baloyan@qlogic.com> | 2014-02-26 04:15:09 -0500 |
---|---|---|
committer | James Bottomley <JBottomley@Parallels.com> | 2014-03-15 13:18:51 -0400 |
commit | d68b3e019ae760187e6b2133a4a99b0598f9ee5e (patch) | |
tree | 924405a9e55c5fa1cdd08cfe3567bb13060548d0 | |
parent | 06aec108f5e2481246914347709d2d0c89569cf7 (diff) |
[SCSI] qla2xxx: Add changes in the IOCB structures to adjust driver source codes to ISPFX00 firmware spec.
Signed-off-by: Armen Baloyan <armen.baloyan@qlogic.com>
Signed-off-by: Saurav Kashyap <saurav.kashyap@qlogic.com>
Signed-off-by: James Bottomley <JBottomley@Parallels.com>
-rw-r--r-- | drivers/scsi/qla2xxx/qla_mr.c | 10 | ||||
-rw-r--r-- | drivers/scsi/qla2xxx/qla_mr.h | 26 |
2 files changed, 18 insertions, 18 deletions
diff --git a/drivers/scsi/qla2xxx/qla_mr.c b/drivers/scsi/qla2xxx/qla_mr.c index 893e56d7a01c..03e2050c901d 100644 --- a/drivers/scsi/qla2xxx/qla_mr.c +++ b/drivers/scsi/qla2xxx/qla_mr.c | |||
@@ -2343,8 +2343,7 @@ qlafx00_ioctl_iosb_entry(scsi_qla_host_t *vha, struct req_que *req, | |||
2343 | fstatus.ioctl_flags = pkt->fw_iotcl_flags; | 2343 | fstatus.ioctl_flags = pkt->fw_iotcl_flags; |
2344 | fstatus.ioctl_data = pkt->dataword_r; | 2344 | fstatus.ioctl_data = pkt->dataword_r; |
2345 | fstatus.adapid = pkt->adapid; | 2345 | fstatus.adapid = pkt->adapid; |
2346 | fstatus.adapid_hi = pkt->adapid_hi; | 2346 | fstatus.reserved_2 = pkt->dataword_r_extra; |
2347 | fstatus.reserved_2 = pkt->reserved_1; | ||
2348 | fstatus.res_count = pkt->residuallen; | 2347 | fstatus.res_count = pkt->residuallen; |
2349 | fstatus.status = pkt->status; | 2348 | fstatus.status = pkt->status; |
2350 | fstatus.seq_number = pkt->seq_no; | 2349 | fstatus.seq_number = pkt->seq_no; |
@@ -3262,7 +3261,9 @@ qlafx00_start_scsi(srb_t *sp) | |||
3262 | memset(&lcmd_pkt, 0, REQUEST_ENTRY_SIZE); | 3261 | memset(&lcmd_pkt, 0, REQUEST_ENTRY_SIZE); |
3263 | 3262 | ||
3264 | lcmd_pkt.handle = MAKE_HANDLE(req->id, sp->handle); | 3263 | lcmd_pkt.handle = MAKE_HANDLE(req->id, sp->handle); |
3265 | lcmd_pkt.handle_hi = 0; | 3264 | lcmd_pkt.reserved_0 = 0; |
3265 | lcmd_pkt.port_path_ctrl = 0; | ||
3266 | lcmd_pkt.reserved_1 = 0; | ||
3266 | lcmd_pkt.dseg_count = cpu_to_le16(tot_dsds); | 3267 | lcmd_pkt.dseg_count = cpu_to_le16(tot_dsds); |
3267 | lcmd_pkt.tgt_idx = cpu_to_le16(sp->fcport->tgt_id); | 3268 | lcmd_pkt.tgt_idx = cpu_to_le16(sp->fcport->tgt_id); |
3268 | 3269 | ||
@@ -3342,8 +3343,7 @@ qlafx00_tm_iocb(srb_t *sp, struct tsk_mgmt_entry_fx00 *ptm_iocb) | |||
3342 | tm_iocb.entry_type = TSK_MGMT_IOCB_TYPE_FX00; | 3343 | tm_iocb.entry_type = TSK_MGMT_IOCB_TYPE_FX00; |
3343 | tm_iocb.entry_count = 1; | 3344 | tm_iocb.entry_count = 1; |
3344 | tm_iocb.handle = cpu_to_le32(MAKE_HANDLE(req->id, sp->handle)); | 3345 | tm_iocb.handle = cpu_to_le32(MAKE_HANDLE(req->id, sp->handle)); |
3345 | tm_iocb.handle_hi = 0; | 3346 | tm_iocb.reserved_0 = 0; |
3346 | tm_iocb.timeout = cpu_to_le16(qla2x00_get_async_timeout(vha) + 2); | ||
3347 | tm_iocb.tgt_id = cpu_to_le16(sp->fcport->tgt_id); | 3347 | tm_iocb.tgt_id = cpu_to_le16(sp->fcport->tgt_id); |
3348 | tm_iocb.control_flags = cpu_to_le32(fxio->u.tmf.flags); | 3348 | tm_iocb.control_flags = cpu_to_le32(fxio->u.tmf.flags); |
3349 | if (tm_iocb.control_flags == cpu_to_le32((uint32_t)TCF_LUN_RESET)) { | 3349 | if (tm_iocb.control_flags == cpu_to_le32((uint32_t)TCF_LUN_RESET)) { |
diff --git a/drivers/scsi/qla2xxx/qla_mr.h b/drivers/scsi/qla2xxx/qla_mr.h index 1e60ca2321c8..3cf5ddc244a5 100644 --- a/drivers/scsi/qla2xxx/qla_mr.h +++ b/drivers/scsi/qla2xxx/qla_mr.h | |||
@@ -22,13 +22,16 @@ struct cmd_type_7_fx00 { | |||
22 | uint8_t entry_status; /* Entry Status. */ | 22 | uint8_t entry_status; /* Entry Status. */ |
23 | 23 | ||
24 | uint32_t handle; /* System handle. */ | 24 | uint32_t handle; /* System handle. */ |
25 | uint32_t handle_hi; | 25 | uint8_t reserved_0; |
26 | uint8_t port_path_ctrl; | ||
27 | uint16_t reserved_1; | ||
26 | 28 | ||
27 | __le16 tgt_idx; /* Target Idx. */ | 29 | __le16 tgt_idx; /* Target Idx. */ |
28 | uint16_t timeout; /* Command timeout. */ | 30 | uint16_t timeout; /* Command timeout. */ |
29 | 31 | ||
30 | __le16 dseg_count; /* Data segment count. */ | 32 | __le16 dseg_count; /* Data segment count. */ |
31 | uint16_t scsi_rsp_dsd_len; | 33 | uint8_t scsi_rsp_dsd_len; |
34 | uint8_t reserved_2; | ||
32 | 35 | ||
33 | struct scsi_lun lun; /* LUN (LE). */ | 36 | struct scsi_lun lun; /* LUN (LE). */ |
34 | 37 | ||
@@ -55,7 +58,7 @@ struct sts_entry_fx00 { | |||
55 | uint8_t entry_status; /* Entry Status. */ | 58 | uint8_t entry_status; /* Entry Status. */ |
56 | 59 | ||
57 | uint32_t handle; /* System handle. */ | 60 | uint32_t handle; /* System handle. */ |
58 | uint32_t handle_hi; /* System handle. */ | 61 | uint32_t reserved_3; /* System handle. */ |
59 | 62 | ||
60 | __le16 comp_status; /* Completion status. */ | 63 | __le16 comp_status; /* Completion status. */ |
61 | uint16_t reserved_0; /* OX_ID used by the firmware. */ | 64 | uint16_t reserved_0; /* OX_ID used by the firmware. */ |
@@ -78,7 +81,7 @@ struct sts_entry_fx00 { | |||
78 | 81 | ||
79 | struct multi_sts_entry_fx00 { | 82 | struct multi_sts_entry_fx00 { |
80 | uint8_t entry_type; /* Entry type. */ | 83 | uint8_t entry_type; /* Entry type. */ |
81 | uint8_t sys_define; /* System defined. */ | 84 | uint8_t entry_count; /* Entry count. */ |
82 | uint8_t handle_count; | 85 | uint8_t handle_count; |
83 | uint8_t entry_status; | 86 | uint8_t entry_status; |
84 | 87 | ||
@@ -94,15 +97,13 @@ struct tsk_mgmt_entry_fx00 { | |||
94 | 97 | ||
95 | __le32 handle; /* System handle. */ | 98 | __le32 handle; /* System handle. */ |
96 | 99 | ||
97 | uint32_t handle_hi; /* System handle. */ | 100 | uint32_t reserved_0; |
98 | 101 | ||
99 | __le16 tgt_id; /* Target Idx. */ | 102 | __le16 tgt_id; /* Target Idx. */ |
100 | 103 | ||
101 | uint16_t reserved_1; | 104 | uint16_t reserved_1; |
102 | 105 | uint16_t reserved_3; | |
103 | uint16_t delay; /* Activity delay in seconds. */ | 106 | uint16_t reserved_4; |
104 | |||
105 | __le16 timeout; /* Command timeout. */ | ||
106 | 107 | ||
107 | struct scsi_lun lun; /* LUN (LE). */ | 108 | struct scsi_lun lun; /* LUN (LE). */ |
108 | 109 | ||
@@ -120,13 +121,13 @@ struct abort_iocb_entry_fx00 { | |||
120 | uint8_t entry_status; /* Entry Status. */ | 121 | uint8_t entry_status; /* Entry Status. */ |
121 | 122 | ||
122 | __le32 handle; /* System handle. */ | 123 | __le32 handle; /* System handle. */ |
123 | __le32 handle_hi; /* System handle. */ | 124 | __le32 reserved_0; |
124 | 125 | ||
125 | __le16 tgt_id_sts; /* Completion status. */ | 126 | __le16 tgt_id_sts; /* Completion status. */ |
126 | __le16 options; | 127 | __le16 options; |
127 | 128 | ||
128 | __le32 abort_handle; /* System handle. */ | 129 | __le32 abort_handle; /* System handle. */ |
129 | __le32 abort_handle_hi; /* System handle. */ | 130 | __le32 reserved_2; |
130 | 131 | ||
131 | __le16 req_que_no; | 132 | __le16 req_que_no; |
132 | uint8_t reserved_1[38]; | 133 | uint8_t reserved_1[38]; |
@@ -147,8 +148,7 @@ struct ioctl_iocb_entry_fx00 { | |||
147 | 148 | ||
148 | __le32 dataword_r; /* Data word returned */ | 149 | __le32 dataword_r; /* Data word returned */ |
149 | uint32_t adapid; /* Adapter ID */ | 150 | uint32_t adapid; /* Adapter ID */ |
150 | uint32_t adapid_hi; /* Adapter ID high */ | 151 | uint32_t dataword_r_extra; |
151 | uint32_t reserved_1; | ||
152 | 152 | ||
153 | __le32 seq_no; | 153 | __le32 seq_no; |
154 | uint8_t reserved_2[20]; | 154 | uint8_t reserved_2[20]; |