aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArmen Baloyan <armen.baloyan@qlogic.com>2014-02-26 04:15:09 -0500
committerJames Bottomley <JBottomley@Parallels.com>2014-03-15 13:18:51 -0400
commitd68b3e019ae760187e6b2133a4a99b0598f9ee5e (patch)
tree924405a9e55c5fa1cdd08cfe3567bb13060548d0
parent06aec108f5e2481246914347709d2d0c89569cf7 (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.c10
-rw-r--r--drivers/scsi/qla2xxx/qla_mr.h26
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
79struct multi_sts_entry_fx00 { 82struct 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];