diff mbox

[v2,02/10] qla2xxx: Include ATIO queue in firmware dump when in target mode

Message ID 1482357459-31079-3-git-send-email-himanshu.madhani@cavium.com (mailing list archive)
State Accepted, archived
Headers show

Commit Message

Madhani, Himanshu Dec. 21, 2016, 9:57 p.m. UTC
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>
---
 drivers/scsi/qla2xxx/qla_tmpl.c | 24 ++++++++++++++++++++++++
 1 file changed, 24 insertions(+)

Comments

Bart Van Assche Dec. 23, 2016, 8:32 a.m. UTC | #1
T24gV2VkLCAyMDE2LTEyLTIxIGF0IDEzOjU3IC0wODAwLCBIaW1hbnNodSBNYWRoYW5pIHdyb3Rl
Og0KPiBAQCAtNjc2LDYgKzY4OCwxOCBAQCBzdGF0aWMgaW5saW5lIHZvaWQgKCpxbGEyN3h4X3Jl
YWRfdmVjdG9yKHVpbnQgd2lkdGgpKSh2b2lkIF9faW9tZW0qLCB2b2lkICosIHVsbw0KPiAgCQkJ
CWNvdW50Kys7DQo+ICAJCQl9DQo+ICAJCX0NCj4gKwl9IGVsc2UgaWYgKFFMQV9UR1RfTU9ERV9F
TkFCTEVEKCkgJiYNCj4gKwkgICAgZW50LT50Mjc0LnF1ZXVlX3R5cGUgPT0gVDI3NF9RVUVVRV9U
WVBFX0FUSU9fU0hBRCkgew0KPiArCQlzdHJ1Y3QgcWxhX2h3X2RhdGEgKmhhID0gdmhhLT5odzsN
Cj4gKwkJc3RydWN0IGF0aW8gKmF0ciA9IGhhLT50Z3QuYXRpb19yaW5nX3B0cjsNCj4gKw0KPiAr
CQlpZiAoYXRyIHx8ICFidWYpIHsNCj4gKwkJCXFsYTI3eHhfaW5zZXJ0MTYoMCwgYnVmLCBsZW4p
Ow0KPiArCQkJcWxhMjd4eF9pbnNlcnQxNigxLCBidWYsIGxlbik7DQo+ICsJCQlxbGEyN3h4X2lu
c2VydDMyKGhhLT50Z3QuYXRpb19xX2luID8NCj4gKwkJCSAgICAqaGEtPnRndC5hdGlvX3FfaW4g
OiAwLCBidWYsIGxlbik7DQo+ICsJCQljb3VudCsrOw0KPiArCQl9DQo+ICAJfSBlbHNlIHsNCj4g
IAkJcWxfZGJnKHFsX2RiZ19taXNjLCB2aGEsIDB4ZDAyZiwNCj4gIAkJICAgICIlczogdW5rbm93
biBxdWV1ZSAleFxuIiwgX19mdW5jX18sIGVudC0+dDI3NC5xdWV1ZV90eXBlKTsNCg0KSGVsbG8g
SGltYW5zaHUsDQoNClRoaXMgcGF0Y2ggaW50cm9kdWNlcyBhIG5ldyBzcGFyc2Ugd2FybmluZyBm
b3LCoCpoYS0+dGd0LmF0aW9fcV9pbjoNCg0KZHJpdmVycy9zY3NpL3FsYTJ4eHgvcWxhX3RtcGwu
Yzo3MDA6Mzc6IHdhcm5pbmc6IGRlcmVmZXJlbmNlIG9mIG5vZGVyZWYgZXhwcmVzc2lvbg0KDQpT
cGFyc2UgcmVwb3J0cyB0aGlzIGJlY2F1c2UgdGhlIGF0aW9fcV9pbiBwb2ludGVyIGlzIGRlY2xh
cmVkIGFzIHVpbnQzMl90IF9faW9tZW0qLg0KRG9lcyB0aGlzIHBlcmhhcHMgbWVhbiB0aGF0IGEg
cmVhZGwoKSBjYWxsIGlzIG1pc3Npbmc/DQoNCkJhcnQu
--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Madhani, Himanshu Dec. 24, 2016, 12:37 a.m. UTC | #2
DQoNCk9uIDEyLzIzLzE2LCAxMjozMiBBTSwgIkJhcnQgVmFuIEFzc2NoZSIgPEJhcnQuVmFuQXNz
Y2hlQHNhbmRpc2suY29tPiB3cm90ZToNCg0KPlNwYXJzZSByZXBvcnRzIHRoaXMgYmVjYXVzZSB0
aGUgYXRpb19xX2luIHBvaW50ZXIgaXMgZGVjbGFyZWQgYXMgdWludDMyX3QgX19pb21lbSouDQo+
RG9lcyB0aGlzIHBlcmhhcHMgbWVhbiB0aGF0IGEgcmVhZGwoKSBjYWxsIGlzIG1pc3Npbmc/DQoN
CkFjay4gV2lsbCBmaXggaW4gcmV2aXNlZCBzZXJpZXMuIA0K
--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/drivers/scsi/qla2xxx/qla_tmpl.c b/drivers/scsi/qla2xxx/qla_tmpl.c
index 36935c9..d356ed0 100644
--- a/drivers/scsi/qla2xxx/qla_tmpl.c
+++ b/drivers/scsi/qla2xxx/qla_tmpl.c
@@ -433,6 +433,18 @@  static inline void (*qla27xx_read_vector(uint width))(void __iomem*, void *, ulo
 				count++;
 			}
 		}
+	} else if (QLA_TGT_MODE_ENABLED() &&
+	    ent->t263.queue_type == T263_QUEUE_TYPE_ATIO) {
+		struct qla_hw_data *ha = vha->hw;
+		struct atio *atr = ha->tgt.atio_ring;
+
+		if (atr || !buf) {
+			length = ha->tgt.atio_q_length;
+			qla27xx_insert16(0, buf, len);
+			qla27xx_insert16(length, buf, len);
+			qla27xx_insertbuf(atr, length * sizeof(*atr), buf, len);
+			count++;
+		}
 	} else {
 		ql_dbg(ql_dbg_misc, vha, 0xd026,
 		    "%s: unknown queue %x\n", __func__, ent->t263.queue_type);
@@ -676,6 +688,18 @@  static inline void (*qla27xx_read_vector(uint width))(void __iomem*, void *, ulo
 				count++;
 			}
 		}
+	} else if (QLA_TGT_MODE_ENABLED() &&
+	    ent->t274.queue_type == T274_QUEUE_TYPE_ATIO_SHAD) {
+		struct qla_hw_data *ha = vha->hw;
+		struct atio *atr = ha->tgt.atio_ring_ptr;
+
+		if (atr || !buf) {
+			qla27xx_insert16(0, buf, len);
+			qla27xx_insert16(1, buf, len);
+			qla27xx_insert32(ha->tgt.atio_q_in ?
+			    *ha->tgt.atio_q_in : 0, buf, len);
+			count++;
+		}
 	} else {
 		ql_dbg(ql_dbg_misc, vha, 0xd02f,
 		    "%s: unknown queue %x\n", __func__, ent->t274.queue_type);