All of lore.kernel.org
 help / color / mirror / Atom feed
From: Saurav Kashyap <saurav.kashyap@qlogic.com>
To: jbottomley@parallels.com
Cc: hch@lst.de, giridhar.malavali@qlogic.com,
	saurav.kashyap@qlogic.com, andrew.vasquez@qlogic.com,
	linux-scsi@vger.kernel.org
Subject: [PATCH 17/35] qla2xxx: Add diagnostic port functionality.
Date: Wed, 24 Sep 2014 03:08:20 -0400	[thread overview]
Message-ID: <1411542518-2477-18-git-send-email-saurav.kashyap@qlogic.com> (raw)
In-Reply-To: <1411542518-2477-1-git-send-email-saurav.kashyap@qlogic.com>

From: Joe Carnuccio <joe.carnuccio@qlogic.com>

Add support for the D-port (diagnostic port) fabric switch feature.

(Fabric Switch initiates loopback style port testing)

Signed-off-by: Joe Carnuccio <joe.carnuccio@qlogic.com>
Signed-off-by: Saurav Kashyap <saurav.kashyap@qlogic.com>
---
 drivers/scsi/qla2xxx/qla_attr.c |    6 +++---
 drivers/scsi/qla2xxx/qla_dbg.c  |    2 +-
 drivers/scsi/qla2xxx/qla_def.h  |    2 ++
 drivers/scsi/qla2xxx/qla_fw.h   |    2 +-
 drivers/scsi/qla2xxx/qla_init.c |    6 +++---
 drivers/scsi/qla2xxx/qla_isr.c  |    8 ++++++++
 drivers/scsi/qla2xxx/qla_mbx.c  |    3 ++-
 7 files changed, 20 insertions(+), 9 deletions(-)

diff --git a/drivers/scsi/qla2xxx/qla_attr.c b/drivers/scsi/qla2xxx/qla_attr.c
index 868f4e5..677239f 100644
--- a/drivers/scsi/qla2xxx/qla_attr.c
+++ b/drivers/scsi/qla2xxx/qla_attr.c
@@ -1440,7 +1440,7 @@ qla2x00_fw_state_show(struct device *dev, struct device_attribute *attr,
 {
 	scsi_qla_host_t *vha = shost_priv(class_to_shost(dev));
 	int rval = QLA_FUNCTION_FAILED;
-	uint16_t state[5];
+	uint16_t state[6];
 	uint32_t pstate;
 
 	if (IS_QLAFX00(vha->hw)) {
@@ -1456,8 +1456,8 @@ qla2x00_fw_state_show(struct device *dev, struct device_attribute *attr,
 	if (rval != QLA_SUCCESS)
 		memset(state, -1, sizeof(state));
 
-	return scnprintf(buf, PAGE_SIZE, "0x%x 0x%x 0x%x 0x%x 0x%x\n", state[0],
-	    state[1], state[2], state[3], state[4]);
+	return scnprintf(buf, PAGE_SIZE, "0x%x 0x%x 0x%x 0x%x 0x%x 0x%x\n",
+	    state[0], state[1], state[2], state[3], state[4], state[5]);
 }
 
 static ssize_t
diff --git a/drivers/scsi/qla2xxx/qla_dbg.c b/drivers/scsi/qla2xxx/qla_dbg.c
index f99042b..6e52a45 100644
--- a/drivers/scsi/qla2xxx/qla_dbg.c
+++ b/drivers/scsi/qla2xxx/qla_dbg.c
@@ -28,7 +28,7 @@
  * |                              |                    | 0x303a		|
  * | DPC Thread                   |       0x4023       | 0x4002,0x4013  |
  * | Async Events                 |       0x5087       | 0x502b-0x502f  |
- * |                              |                    | 0x5047,0x5052  |
+ * |                              |                    | 0x5047		|
  * |                              |                    | 0x5084,0x5075	|
  * |                              |                    | 0x503d,0x5044  |
  * |                              |                    | 0x507b		|
diff --git a/drivers/scsi/qla2xxx/qla_def.h b/drivers/scsi/qla2xxx/qla_def.h
index 2c03f09..f8e6507 100644
--- a/drivers/scsi/qla2xxx/qla_def.h
+++ b/drivers/scsi/qla2xxx/qla_def.h
@@ -803,6 +803,7 @@ struct mbx_cmd_32 {
 #define MBA_FW_RESTART_CMPLT	0x8060	/* Firmware restart complete */
 #define MBA_INIT_REQUIRED	0x8061	/* Initialization required */
 #define MBA_SHUTDOWN_REQUESTED	0x8062	/* Shutdown Requested */
+#define MBA_DPORT_DIAGNOSTICS	0x8080	/* D-port Diagnostics */
 #define MBA_FW_INIT_FAILURE	0x8401	/* Firmware initialization failure */
 #define MBA_MIRROR_LUN_CHANGE	0x8402	/* Mirror LUN State Change
 					   Notification */
@@ -948,6 +949,7 @@ struct mbx_cmd_32 {
 #define MBC_WRITE_SFP			0x30	/* Write SFP Data. */
 #define MBC_READ_SFP			0x31	/* Read SFP Data. */
 #define MBC_SET_TIMEOUT_PARAMS		0x32	/* Set FW timeouts. */
+#define MBC_DPORT_DIAGNOSTICS		0x47	/* D-Port Diagnostics */
 #define MBC_MID_INITIALIZE_FIRMWARE	0x48	/* MID Initialize firmware. */
 #define MBC_MID_GET_VP_DATABASE		0x49	/* MID Get VP Database. */
 #define MBC_MID_GET_VP_ENTRY		0x4a	/* MID Get VP Entry. */
diff --git a/drivers/scsi/qla2xxx/qla_fw.h b/drivers/scsi/qla2xxx/qla_fw.h
index e8669aa..7f2e1c7 100644
--- a/drivers/scsi/qla2xxx/qla_fw.h
+++ b/drivers/scsi/qla2xxx/qla_fw.h
@@ -318,7 +318,7 @@ struct init_cb_24xx {
 	 * BIT 4  = Enable Target Mode
 	 * BIT 5  = Disable Initiator Mode
 	 * BIT 6  = Acquire FA-WWN
-	 * BIT 7  = Reserved
+	 * BIT 7  = Enable D-port Diagnostics
 	 *
 	 * BIT 8  = Reserved
 	 * BIT 9  = Non Participating LIP
diff --git a/drivers/scsi/qla2xxx/qla_init.c b/drivers/scsi/qla2xxx/qla_init.c
index 748bd90..d5b10ec 100644
--- a/drivers/scsi/qla2xxx/qla_init.c
+++ b/drivers/scsi/qla2xxx/qla_init.c
@@ -2224,7 +2224,7 @@ qla2x00_fw_ready(scsi_qla_host_t *vha)
 	unsigned long	wtime, mtime, cs84xx_time;
 	uint16_t	min_wait;	/* Minimum wait time if loop is down */
 	uint16_t	wait_time;	/* Wait time if loop is coming ready */
-	uint16_t	state[5];
+	uint16_t	state[6];
 	struct qla_hw_data *ha = vha->hw;
 
 	if (IS_QLAFX00(vha->hw))
@@ -2329,8 +2329,8 @@ qla2x00_fw_ready(scsi_qla_host_t *vha)
 	} while (1);
 
 	ql_dbg(ql_dbg_taskm, vha, 0x803a,
-	    "fw_state=%x (%x, %x, %x, %x) " "curr time=%lx.\n", state[0],
-	    state[1], state[2], state[3], state[4], jiffies);
+	    "fw_state=%x (%x, %x, %x, %x %x) curr time=%lx.\n", state[0],
+	    state[1], state[2], state[3], state[4], state[5], jiffies);
 
 	if (rval && !(vha->device_flags & DFLG_NO_CABLE)) {
 		ql_log(ql_log_warn, vha, 0x803b,
diff --git a/drivers/scsi/qla2xxx/qla_isr.c b/drivers/scsi/qla2xxx/qla_isr.c
index 6b2fe18..6627fd5 100644
--- a/drivers/scsi/qla2xxx/qla_isr.c
+++ b/drivers/scsi/qla2xxx/qla_isr.c
@@ -1086,6 +1086,14 @@ skip_rio:
 		qla83xx_handle_8200_aen(vha, mb);
 		break;
 
+	case MBA_DPORT_DIAGNOSTICS:
+		ql_dbg(ql_dbg_async, vha, 0x5052,
+		    "D-Port Diagnostics: %04x %04x=%s\n", mb[0], mb[1],
+		    mb[1] == 0 ? "start" :
+		    mb[1] == 1 ? "done (ok)" :
+		    mb[1] == 2 ? "done (error)" : "other");
+		break;
+
 	default:
 		ql_dbg(ql_dbg_async, vha, 0x5057,
 		    "Unknown AEN:%04x %04x %04x %04x\n",
diff --git a/drivers/scsi/qla2xxx/qla_mbx.c b/drivers/scsi/qla2xxx/qla_mbx.c
index 81dd5d9..9c57c019 100644
--- a/drivers/scsi/qla2xxx/qla_mbx.c
+++ b/drivers/scsi/qla2xxx/qla_mbx.c
@@ -1564,7 +1564,7 @@ qla2x00_get_firmware_state(scsi_qla_host_t *vha, uint16_t *states)
 	mcp->mb[0] = MBC_GET_FIRMWARE_STATE;
 	mcp->out_mb = MBX_0;
 	if (IS_FWI2_CAPABLE(vha->hw))
-		mcp->in_mb = MBX_5|MBX_4|MBX_3|MBX_2|MBX_1|MBX_0;
+		mcp->in_mb = MBX_6|MBX_5|MBX_4|MBX_3|MBX_2|MBX_1|MBX_0;
 	else
 		mcp->in_mb = MBX_1|MBX_0;
 	mcp->tov = MBX_TOV_SECONDS;
@@ -1578,6 +1578,7 @@ qla2x00_get_firmware_state(scsi_qla_host_t *vha, uint16_t *states)
 		states[2] = mcp->mb[3];
 		states[3] = mcp->mb[4];
 		states[4] = mcp->mb[5];
+		states[5] = mcp->mb[6];  /* DPORT status */
 	}
 
 	if (rval != QLA_SUCCESS) {
-- 
1.7.7


  parent reply	other threads:[~2014-09-24  7:42 UTC|newest]

Thread overview: 45+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-09-24  7:08 [PATCH 00/35] qla2xxx: Patches for 3.18 scsi "misc" branch Saurav Kashyap
2014-09-24  7:08 ` [PATCH 01/35] qla2xxx: ISP27xx add tests for incomplete template Saurav Kashyap
2014-09-24  7:08 ` [PATCH 02/35] qla2xxx: ISP27xx optimize fwdump entry table lookup Saurav Kashyap
2014-09-24  7:08 ` [PATCH 03/35] qla2xxx: ISP27xx fwdump template remove high frequency debug logs Saurav Kashyap
2014-09-24  7:08 ` [PATCH 04/35] qla2xxx: ISP27xx fwdump template fix insertbuf() routine Saurav Kashyap
2014-09-24  7:08 ` [PATCH 05/35] qla2xxx: Add ISP27xx fwdump template entry T275 (insert buffer) Saurav Kashyap
2014-09-24  7:08 ` [PATCH 06/35] qla2xxx: Enable fast flash access for ISP83xx Saurav Kashyap
2014-09-24  7:08 ` [PATCH 07/35] qla2xxx: Add endianizer to max_payload_size modifier Saurav Kashyap
2014-09-24  7:08 ` [PATCH 08/35] qla2xxx: ISP25xx multiqueue shadow register crash fix Saurav Kashyap
2014-09-24  7:08 ` [PATCH 09/35] qla2xxx: ISP27xx fwdump template error print simplification Saurav Kashyap
2014-09-24  7:08 ` [PATCH 10/35] qla2xxx: Fix potential return count bug in qla2xxx_get_vpd_field() Saurav Kashyap
2014-09-24  7:08 ` [PATCH 11/35] qla2xxx: ISPFX00 avoid writing semaphore register in request_irqs() Saurav Kashyap
2014-09-24  7:08 ` [PATCH 12/35] qla2xxx: Incorrect debug level on mailbox command print 0x1111 Saurav Kashyap
2014-09-24  7:08 ` [PATCH 13/35] qla2xxx: Incorrect linked list semantic in qlafx00_get_fcport() Saurav Kashyap
2014-09-24  7:08 ` [PATCH 14/35] qla2xxx: ISPFx00 unexpected resets during adapter boot sequence Saurav Kashyap
2014-09-24  7:08 ` [PATCH 15/35] qla2xxx: Add FDMI-2 functionality Saurav Kashyap
2014-09-24  7:08 ` [PATCH 16/35] qla2xxx: Add FA-WWN functionality Saurav Kashyap
2014-09-24  7:08 ` Saurav Kashyap [this message]
2014-09-24  7:08 ` [PATCH 18/35] qla2xxx: Fix driver version string message Saurav Kashyap
2014-09-24  7:08 ` [PATCH 19/35] qla2xxx: Allow user to change ql2xfdmienable value Saurav Kashyap
2014-09-24  7:08 ` [PATCH 20/35] qla2xxx: Unload of qla2xxx driver crashes the machine Saurav Kashyap
2014-09-24 13:41   ` Joe Lawrence
2014-09-25  8:37     ` Christoph Hellwig
2014-09-25  8:57       ` Saurav Kashyap
2014-09-25  9:03         ` Christoph Hellwig
2014-09-25  9:08           ` Saurav Kashyap
2014-09-24  7:08 ` [PATCH 21/35] qla2xxx: Add fix in driver unload for pending activity Saurav Kashyap
2014-09-24  7:08 ` [PATCH 22/35] qla2xxx: Declaration error cause stack corruption Saurav Kashyap
2014-09-24  7:08 ` [PATCH 23/35] qla2xxx: Enable diagnostic port using NVRAM parameters Saurav Kashyap
2014-09-24  7:08 ` [PATCH 24/35] qla2xxx: Disable laser for ISP2031 while unloading driver Saurav Kashyap
2014-09-24  7:08 ` [PATCH 25/35] qla2xxx: Free sysfs attributes for ISP27xx Saurav Kashyap
2014-09-24  7:08 ` [PATCH 26/35] qla2xxx: Force use of mailbox interface for flash access commands " Saurav Kashyap
2014-09-24  7:08 ` [PATCH 27/35] qla2xxx: Add missing ISP27xx checks to optrom code Saurav Kashyap
2014-09-24  7:08 ` [PATCH 28/35] qla2xxx: Honor FCP_RSP retry delay timer field Saurav Kashyap
2014-09-24  7:08 ` [PATCH 29/35] qla2xxx: Restore WWPN in case of Loop Dead Saurav Kashyap
2014-09-24  7:08 ` [PATCH 30/35] qla2xxx: Mark port lost when we receive an RSCN for it Saurav Kashyap
2014-09-24  7:08 ` [PATCH 31/35] qla2xxx: Disable PCI device in shutdown handler Saurav Kashyap
2014-09-24 13:48   ` Joe Lawrence
2014-09-24 15:37     ` Chad Dupuis
2014-09-24 18:23       ` Joe Lawrence
2014-09-25  0:09         ` Chad Dupuis
2014-09-24  7:08 ` [PATCH 32/35] qla2xxx: Fail adapter initialization on load ram failure Saurav Kashyap
2014-09-24  7:08 ` [PATCH 33/35] qla2xxx: Move warning message to debug level Saurav Kashyap
2014-09-24  7:08 ` [PATCH 34/35] qla2xxx: Fix sparse warning in qla_iocb.c file Saurav Kashyap
2014-09-24  7:08 ` [PATCH 35/35] qla2xxx: Update the driver version to 8.07.00.16-k Saurav Kashyap

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1411542518-2477-18-git-send-email-saurav.kashyap@qlogic.com \
    --to=saurav.kashyap@qlogic.com \
    --cc=andrew.vasquez@qlogic.com \
    --cc=giridhar.malavali@qlogic.com \
    --cc=hch@lst.de \
    --cc=jbottomley@parallels.com \
    --cc=linux-scsi@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.