diff options
author | Anirban Chakraborty <anirban.chakraborty@qlogic.com> | 2008-12-09 19:45:39 -0500 |
---|---|---|
committer | James Bottomley <James.Bottomley@HansenPartnership.com> | 2008-12-29 12:24:33 -0500 |
commit | 73208dfd7ab19f379d73e8a0fbf30f92c203e5e8 (patch) | |
tree | f69be5e89817d17b066ece4dbe04e395339c0754 /drivers/scsi/qla2xxx/qla_fw.h | |
parent | 85b4aa4926a50210b683ac89326e338e7d131211 (diff) |
[SCSI] qla2xxx: add support for multi-queue adapter
Following changes have been made.
1. qla_hw_data structure holds an array for request queue pointers,
and an array for response queue pointers.
2. The base request and response queues are created by default.
3. Additional request and response queues are created at the time of vport
creation. If queue resources are exhausted during vport creation, newly
created vports use the default queue.
4. Requests are sent to the request queue that the vport was assigned
in the beginning.
5. Responses are completed on the response queue with which the request queue
is associated with.
[fixup memcpy argument reversal spotted by davej@redhat.com]
Signed-off-by: Anirban Chakraborty <anirban.chakraborty@qlogic.com>
Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
Diffstat (limited to 'drivers/scsi/qla2xxx/qla_fw.h')
-rw-r--r-- | drivers/scsi/qla2xxx/qla_fw.h | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/drivers/scsi/qla2xxx/qla_fw.h b/drivers/scsi/qla2xxx/qla_fw.h index d1d14202575a..ee1f1e794c2d 100644 --- a/drivers/scsi/qla2xxx/qla_fw.h +++ b/drivers/scsi/qla2xxx/qla_fw.h | |||
@@ -299,7 +299,8 @@ struct init_cb_24xx { | |||
299 | uint32_t response_q_address[2]; | 299 | uint32_t response_q_address[2]; |
300 | uint32_t prio_request_q_address[2]; | 300 | uint32_t prio_request_q_address[2]; |
301 | 301 | ||
302 | uint8_t reserved_2[8]; | 302 | uint16_t msix; |
303 | uint8_t reserved_2[6]; | ||
303 | 304 | ||
304 | uint16_t atio_q_inpointer; | 305 | uint16_t atio_q_inpointer; |
305 | uint16_t atio_q_length; | 306 | uint16_t atio_q_length; |
@@ -372,8 +373,9 @@ struct init_cb_24xx { | |||
372 | * BIT 17-31 = Reserved | 373 | * BIT 17-31 = Reserved |
373 | */ | 374 | */ |
374 | uint32_t firmware_options_3; | 375 | uint32_t firmware_options_3; |
375 | 376 | uint16_t qos; | |
376 | uint8_t reserved_3[24]; | 377 | uint16_t rid; |
378 | uint8_t reserved_3[20]; | ||
377 | }; | 379 | }; |
378 | 380 | ||
379 | /* | 381 | /* |
@@ -754,7 +756,8 @@ struct abort_entry_24xx { | |||
754 | 756 | ||
755 | uint32_t handle_to_abort; /* System handle to abort. */ | 757 | uint32_t handle_to_abort; /* System handle to abort. */ |
756 | 758 | ||
757 | uint8_t reserved_1[32]; | 759 | uint16_t req_que_no; |
760 | uint8_t reserved_1[30]; | ||
758 | 761 | ||
759 | uint8_t port_id[3]; /* PortID of destination port. */ | 762 | uint8_t port_id[3]; /* PortID of destination port. */ |
760 | uint8_t vp_index; | 763 | uint8_t vp_index; |
@@ -1258,7 +1261,8 @@ struct qla_npiv_header { | |||
1258 | struct qla_npiv_entry { | 1261 | struct qla_npiv_entry { |
1259 | uint16_t flags; | 1262 | uint16_t flags; |
1260 | uint16_t vf_id; | 1263 | uint16_t vf_id; |
1261 | uint16_t qos; | 1264 | uint8_t q_qos; |
1265 | uint8_t f_qos; | ||
1262 | uint16_t unused1; | 1266 | uint16_t unused1; |
1263 | uint8_t port_name[WWN_SIZE]; | 1267 | uint8_t port_name[WWN_SIZE]; |
1264 | uint8_t node_name[WWN_SIZE]; | 1268 | uint8_t node_name[WWN_SIZE]; |