diff options
-rw-r--r-- | drivers/scsi/qla2xxx/qla_attr.c | 6 | ||||
-rw-r--r-- | drivers/scsi/qla2xxx/qla_dbg.c | 2 | ||||
-rw-r--r-- | drivers/scsi/qla2xxx/qla_def.h | 2 | ||||
-rw-r--r-- | drivers/scsi/qla2xxx/qla_fw.h | 2 | ||||
-rw-r--r-- | drivers/scsi/qla2xxx/qla_init.c | 6 | ||||
-rw-r--r-- | drivers/scsi/qla2xxx/qla_isr.c | 8 | ||||
-rw-r--r-- | 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 868f4e5bd863..677239f41ea5 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, | |||
1440 | { | 1440 | { |
1441 | scsi_qla_host_t *vha = shost_priv(class_to_shost(dev)); | 1441 | scsi_qla_host_t *vha = shost_priv(class_to_shost(dev)); |
1442 | int rval = QLA_FUNCTION_FAILED; | 1442 | int rval = QLA_FUNCTION_FAILED; |
1443 | uint16_t state[5]; | 1443 | uint16_t state[6]; |
1444 | uint32_t pstate; | 1444 | uint32_t pstate; |
1445 | 1445 | ||
1446 | if (IS_QLAFX00(vha->hw)) { | 1446 | if (IS_QLAFX00(vha->hw)) { |
@@ -1456,8 +1456,8 @@ qla2x00_fw_state_show(struct device *dev, struct device_attribute *attr, | |||
1456 | if (rval != QLA_SUCCESS) | 1456 | if (rval != QLA_SUCCESS) |
1457 | memset(state, -1, sizeof(state)); | 1457 | memset(state, -1, sizeof(state)); |
1458 | 1458 | ||
1459 | return scnprintf(buf, PAGE_SIZE, "0x%x 0x%x 0x%x 0x%x 0x%x\n", state[0], | 1459 | return scnprintf(buf, PAGE_SIZE, "0x%x 0x%x 0x%x 0x%x 0x%x 0x%x\n", |
1460 | state[1], state[2], state[3], state[4]); | 1460 | state[0], state[1], state[2], state[3], state[4], state[5]); |
1461 | } | 1461 | } |
1462 | 1462 | ||
1463 | static ssize_t | 1463 | static ssize_t |
diff --git a/drivers/scsi/qla2xxx/qla_dbg.c b/drivers/scsi/qla2xxx/qla_dbg.c index b33eec01d6dc..2d5610be2d70 100644 --- a/drivers/scsi/qla2xxx/qla_dbg.c +++ b/drivers/scsi/qla2xxx/qla_dbg.c | |||
@@ -28,7 +28,7 @@ | |||
28 | * | | | 0x303a | | 28 | * | | | 0x303a | |
29 | * | DPC Thread | 0x4023 | 0x4002,0x4013 | | 29 | * | DPC Thread | 0x4023 | 0x4002,0x4013 | |
30 | * | Async Events | 0x5087 | 0x502b-0x502f | | 30 | * | Async Events | 0x5087 | 0x502b-0x502f | |
31 | * | | | 0x5047,0x5052 | | 31 | * | | | 0x5047 | |
32 | * | | | 0x5084,0x5075 | | 32 | * | | | 0x5084,0x5075 | |
33 | * | | | 0x503d,0x5044 | | 33 | * | | | 0x503d,0x5044 | |
34 | * | | | 0x507b,0x505f | | 34 | * | | | 0x507b,0x505f | |
diff --git a/drivers/scsi/qla2xxx/qla_def.h b/drivers/scsi/qla2xxx/qla_def.h index e5baead2369a..c161d60759e9 100644 --- a/drivers/scsi/qla2xxx/qla_def.h +++ b/drivers/scsi/qla2xxx/qla_def.h | |||
@@ -803,6 +803,7 @@ struct mbx_cmd_32 { | |||
803 | #define MBA_FW_RESTART_CMPLT 0x8060 /* Firmware restart complete */ | 803 | #define MBA_FW_RESTART_CMPLT 0x8060 /* Firmware restart complete */ |
804 | #define MBA_INIT_REQUIRED 0x8061 /* Initialization required */ | 804 | #define MBA_INIT_REQUIRED 0x8061 /* Initialization required */ |
805 | #define MBA_SHUTDOWN_REQUESTED 0x8062 /* Shutdown Requested */ | 805 | #define MBA_SHUTDOWN_REQUESTED 0x8062 /* Shutdown Requested */ |
806 | #define MBA_DPORT_DIAGNOSTICS 0x8080 /* D-port Diagnostics */ | ||
806 | #define MBA_FW_INIT_FAILURE 0x8401 /* Firmware initialization failure */ | 807 | #define MBA_FW_INIT_FAILURE 0x8401 /* Firmware initialization failure */ |
807 | #define MBA_MIRROR_LUN_CHANGE 0x8402 /* Mirror LUN State Change | 808 | #define MBA_MIRROR_LUN_CHANGE 0x8402 /* Mirror LUN State Change |
808 | Notification */ | 809 | Notification */ |
@@ -948,6 +949,7 @@ struct mbx_cmd_32 { | |||
948 | #define MBC_WRITE_SFP 0x30 /* Write SFP Data. */ | 949 | #define MBC_WRITE_SFP 0x30 /* Write SFP Data. */ |
949 | #define MBC_READ_SFP 0x31 /* Read SFP Data. */ | 950 | #define MBC_READ_SFP 0x31 /* Read SFP Data. */ |
950 | #define MBC_SET_TIMEOUT_PARAMS 0x32 /* Set FW timeouts. */ | 951 | #define MBC_SET_TIMEOUT_PARAMS 0x32 /* Set FW timeouts. */ |
952 | #define MBC_DPORT_DIAGNOSTICS 0x47 /* D-Port Diagnostics */ | ||
951 | #define MBC_MID_INITIALIZE_FIRMWARE 0x48 /* MID Initialize firmware. */ | 953 | #define MBC_MID_INITIALIZE_FIRMWARE 0x48 /* MID Initialize firmware. */ |
952 | #define MBC_MID_GET_VP_DATABASE 0x49 /* MID Get VP Database. */ | 954 | #define MBC_MID_GET_VP_DATABASE 0x49 /* MID Get VP Database. */ |
953 | #define MBC_MID_GET_VP_ENTRY 0x4a /* MID Get VP Entry. */ | 955 | #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 e8669aa7e002..7f2e1c71cc31 100644 --- a/drivers/scsi/qla2xxx/qla_fw.h +++ b/drivers/scsi/qla2xxx/qla_fw.h | |||
@@ -318,7 +318,7 @@ struct init_cb_24xx { | |||
318 | * BIT 4 = Enable Target Mode | 318 | * BIT 4 = Enable Target Mode |
319 | * BIT 5 = Disable Initiator Mode | 319 | * BIT 5 = Disable Initiator Mode |
320 | * BIT 6 = Acquire FA-WWN | 320 | * BIT 6 = Acquire FA-WWN |
321 | * BIT 7 = Reserved | 321 | * BIT 7 = Enable D-port Diagnostics |
322 | * | 322 | * |
323 | * BIT 8 = Reserved | 323 | * BIT 8 = Reserved |
324 | * BIT 9 = Non Participating LIP | 324 | * BIT 9 = Non Participating LIP |
diff --git a/drivers/scsi/qla2xxx/qla_init.c b/drivers/scsi/qla2xxx/qla_init.c index 748bd9093680..d5b10ecde4a0 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) | |||
2224 | unsigned long wtime, mtime, cs84xx_time; | 2224 | unsigned long wtime, mtime, cs84xx_time; |
2225 | uint16_t min_wait; /* Minimum wait time if loop is down */ | 2225 | uint16_t min_wait; /* Minimum wait time if loop is down */ |
2226 | uint16_t wait_time; /* Wait time if loop is coming ready */ | 2226 | uint16_t wait_time; /* Wait time if loop is coming ready */ |
2227 | uint16_t state[5]; | 2227 | uint16_t state[6]; |
2228 | struct qla_hw_data *ha = vha->hw; | 2228 | struct qla_hw_data *ha = vha->hw; |
2229 | 2229 | ||
2230 | if (IS_QLAFX00(vha->hw)) | 2230 | if (IS_QLAFX00(vha->hw)) |
@@ -2329,8 +2329,8 @@ qla2x00_fw_ready(scsi_qla_host_t *vha) | |||
2329 | } while (1); | 2329 | } while (1); |
2330 | 2330 | ||
2331 | ql_dbg(ql_dbg_taskm, vha, 0x803a, | 2331 | ql_dbg(ql_dbg_taskm, vha, 0x803a, |
2332 | "fw_state=%x (%x, %x, %x, %x) " "curr time=%lx.\n", state[0], | 2332 | "fw_state=%x (%x, %x, %x, %x %x) curr time=%lx.\n", state[0], |
2333 | state[1], state[2], state[3], state[4], jiffies); | 2333 | state[1], state[2], state[3], state[4], state[5], jiffies); |
2334 | 2334 | ||
2335 | if (rval && !(vha->device_flags & DFLG_NO_CABLE)) { | 2335 | if (rval && !(vha->device_flags & DFLG_NO_CABLE)) { |
2336 | ql_log(ql_log_warn, vha, 0x803b, | 2336 | ql_log(ql_log_warn, vha, 0x803b, |
diff --git a/drivers/scsi/qla2xxx/qla_isr.c b/drivers/scsi/qla2xxx/qla_isr.c index 223c1a89af5c..550ffdf0bf17 100644 --- a/drivers/scsi/qla2xxx/qla_isr.c +++ b/drivers/scsi/qla2xxx/qla_isr.c | |||
@@ -1086,6 +1086,14 @@ skip_rio: | |||
1086 | qla83xx_handle_8200_aen(vha, mb); | 1086 | qla83xx_handle_8200_aen(vha, mb); |
1087 | break; | 1087 | break; |
1088 | 1088 | ||
1089 | case MBA_DPORT_DIAGNOSTICS: | ||
1090 | ql_dbg(ql_dbg_async, vha, 0x5052, | ||
1091 | "D-Port Diagnostics: %04x %04x=%s\n", mb[0], mb[1], | ||
1092 | mb[1] == 0 ? "start" : | ||
1093 | mb[1] == 1 ? "done (ok)" : | ||
1094 | mb[1] == 2 ? "done (error)" : "other"); | ||
1095 | break; | ||
1096 | |||
1089 | default: | 1097 | default: |
1090 | ql_dbg(ql_dbg_async, vha, 0x5057, | 1098 | ql_dbg(ql_dbg_async, vha, 0x5057, |
1091 | "Unknown AEN:%04x %04x %04x %04x\n", | 1099 | "Unknown AEN:%04x %04x %04x %04x\n", |
diff --git a/drivers/scsi/qla2xxx/qla_mbx.c b/drivers/scsi/qla2xxx/qla_mbx.c index 2de901bf87ab..72971daa2552 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) | |||
1564 | mcp->mb[0] = MBC_GET_FIRMWARE_STATE; | 1564 | mcp->mb[0] = MBC_GET_FIRMWARE_STATE; |
1565 | mcp->out_mb = MBX_0; | 1565 | mcp->out_mb = MBX_0; |
1566 | if (IS_FWI2_CAPABLE(vha->hw)) | 1566 | if (IS_FWI2_CAPABLE(vha->hw)) |
1567 | mcp->in_mb = MBX_5|MBX_4|MBX_3|MBX_2|MBX_1|MBX_0; | 1567 | mcp->in_mb = MBX_6|MBX_5|MBX_4|MBX_3|MBX_2|MBX_1|MBX_0; |
1568 | else | 1568 | else |
1569 | mcp->in_mb = MBX_1|MBX_0; | 1569 | mcp->in_mb = MBX_1|MBX_0; |
1570 | mcp->tov = MBX_TOV_SECONDS; | 1570 | mcp->tov = MBX_TOV_SECONDS; |
@@ -1578,6 +1578,7 @@ qla2x00_get_firmware_state(scsi_qla_host_t *vha, uint16_t *states) | |||
1578 | states[2] = mcp->mb[3]; | 1578 | states[2] = mcp->mb[3]; |
1579 | states[3] = mcp->mb[4]; | 1579 | states[3] = mcp->mb[4]; |
1580 | states[4] = mcp->mb[5]; | 1580 | states[4] = mcp->mb[5]; |
1581 | states[5] = mcp->mb[6]; /* DPORT status */ | ||
1581 | } | 1582 | } |
1582 | 1583 | ||
1583 | if (rval != QLA_SUCCESS) { | 1584 | if (rval != QLA_SUCCESS) { |