diff options
author | Himanshu Madhani <himanshu.madhani@cavium.com> | 2016-12-23 21:06:06 -0500 |
---|---|---|
committer | Bart Van Assche <bart.vanassche@sandisk.com> | 2017-01-17 14:26:53 -0500 |
commit | 1cbb91562df536eac6e06d7bd2df5965ffd67803 (patch) | |
tree | a382bcca1f34e1bf073a15b1f157b254c3edefd5 | |
parent | bb1181c9a8b46b6f10e749d9ed94480336445d7f (diff) |
qla2xxx: Include ATIO queue in firmware dump when in target mode
Include ATIO queue for ISP27XX when firmware dump is collected
for target mode.
Signed-off-by: Himanshu Madhani <himanshu.madhani@cavium.com>
Signed-off-by: Giridhar Malavali <giridhar.malavali@cavium.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Bart Van Assche <bart.vanassche@sandisk.com>
-rw-r--r-- | drivers/scsi/qla2xxx/qla_tmpl.c | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/drivers/scsi/qla2xxx/qla_tmpl.c b/drivers/scsi/qla2xxx/qla_tmpl.c index 36935c9ed669..8a58ef3adab4 100644 --- a/drivers/scsi/qla2xxx/qla_tmpl.c +++ b/drivers/scsi/qla2xxx/qla_tmpl.c | |||
@@ -433,6 +433,18 @@ qla27xx_fwdt_entry_t263(struct scsi_qla_host *vha, | |||
433 | count++; | 433 | count++; |
434 | } | 434 | } |
435 | } | 435 | } |
436 | } else if (QLA_TGT_MODE_ENABLED() && | ||
437 | ent->t263.queue_type == T263_QUEUE_TYPE_ATIO) { | ||
438 | struct qla_hw_data *ha = vha->hw; | ||
439 | struct atio *atr = ha->tgt.atio_ring; | ||
440 | |||
441 | if (atr || !buf) { | ||
442 | length = ha->tgt.atio_q_length; | ||
443 | qla27xx_insert16(0, buf, len); | ||
444 | qla27xx_insert16(length, buf, len); | ||
445 | qla27xx_insertbuf(atr, length * sizeof(*atr), buf, len); | ||
446 | count++; | ||
447 | } | ||
436 | } else { | 448 | } else { |
437 | ql_dbg(ql_dbg_misc, vha, 0xd026, | 449 | ql_dbg(ql_dbg_misc, vha, 0xd026, |
438 | "%s: unknown queue %x\n", __func__, ent->t263.queue_type); | 450 | "%s: unknown queue %x\n", __func__, ent->t263.queue_type); |
@@ -676,6 +688,18 @@ qla27xx_fwdt_entry_t274(struct scsi_qla_host *vha, | |||
676 | count++; | 688 | count++; |
677 | } | 689 | } |
678 | } | 690 | } |
691 | } else if (QLA_TGT_MODE_ENABLED() && | ||
692 | ent->t274.queue_type == T274_QUEUE_TYPE_ATIO_SHAD) { | ||
693 | struct qla_hw_data *ha = vha->hw; | ||
694 | struct atio *atr = ha->tgt.atio_ring_ptr; | ||
695 | |||
696 | if (atr || !buf) { | ||
697 | qla27xx_insert16(0, buf, len); | ||
698 | qla27xx_insert16(1, buf, len); | ||
699 | qla27xx_insert32(ha->tgt.atio_q_in ? | ||
700 | readl(ha->tgt.atio_q_in) : 0, buf, len); | ||
701 | count++; | ||
702 | } | ||
679 | } else { | 703 | } else { |
680 | ql_dbg(ql_dbg_misc, vha, 0xd02f, | 704 | ql_dbg(ql_dbg_misc, vha, 0xd02f, |
681 | "%s: unknown queue %x\n", __func__, ent->t274.queue_type); | 705 | "%s: unknown queue %x\n", __func__, ent->t274.queue_type); |