Commit 1f652aa0 authored by Gleb Chesnokov's avatar Gleb Chesnokov Committed by Martin K. Petersen

scsi: qla2xxx: Use named initializers for q_dev_state

Make q_dev_state a little more readable and maintainable by using named
initializers.

Also convert QLA8XXX_DEV_* macros into an enum and remove
qla83xx_dev_state_to_string(), which is a duplicate of qdev_state().

Link: https://lore.kernel.org/r/AS8PR10MB495298515A7553C8D6D6E74D9D349@AS8PR10MB4952.EURPRD10.PROD.OUTLOOK.COMReviewed-by: default avatarHimanshu Madhani <himanshu.madhani@oracle.com>
Signed-off-by: default avatarGleb Chesnokov <Chesnokov.G@raidix.com>
Signed-off-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
parent 6e0e85d3
...@@ -893,7 +893,7 @@ extern void qla82xx_chip_reset_cleanup(scsi_qla_host_t *); ...@@ -893,7 +893,7 @@ extern void qla82xx_chip_reset_cleanup(scsi_qla_host_t *);
extern int qla81xx_set_led_config(scsi_qla_host_t *, uint16_t *); extern int qla81xx_set_led_config(scsi_qla_host_t *, uint16_t *);
extern int qla81xx_get_led_config(scsi_qla_host_t *, uint16_t *); extern int qla81xx_get_led_config(scsi_qla_host_t *, uint16_t *);
extern int qla82xx_mbx_beacon_ctl(scsi_qla_host_t *, int); extern int qla82xx_mbx_beacon_ctl(scsi_qla_host_t *, int);
extern char *qdev_state(uint32_t); extern const char *qdev_state(uint32_t);
extern void qla82xx_clear_pending_mbx(scsi_qla_host_t *); extern void qla82xx_clear_pending_mbx(scsi_qla_host_t *);
extern int qla82xx_read_temperature(scsi_qla_host_t *); extern int qla82xx_read_temperature(scsi_qla_host_t *);
extern int qla8044_read_temperature(scsi_qla_host_t *); extern int qla8044_read_temperature(scsi_qla_host_t *);
......
...@@ -6796,29 +6796,6 @@ __qla83xx_clear_drv_ack(scsi_qla_host_t *vha) ...@@ -6796,29 +6796,6 @@ __qla83xx_clear_drv_ack(scsi_qla_host_t *vha)
return rval; return rval;
} }
static const char *
qla83xx_dev_state_to_string(uint32_t dev_state)
{
switch (dev_state) {
case QLA8XXX_DEV_COLD:
return "COLD/RE-INIT";
case QLA8XXX_DEV_INITIALIZING:
return "INITIALIZING";
case QLA8XXX_DEV_READY:
return "READY";
case QLA8XXX_DEV_NEED_RESET:
return "NEED RESET";
case QLA8XXX_DEV_NEED_QUIESCENT:
return "NEED QUIESCENT";
case QLA8XXX_DEV_FAILED:
return "FAILED";
case QLA8XXX_DEV_QUIESCENT:
return "QUIESCENT";
default:
return "Unknown";
}
}
/* Assumes idc-lock always held on entry */ /* Assumes idc-lock always held on entry */
void void
qla83xx_idc_audit(scsi_qla_host_t *vha, int audit_type) qla83xx_idc_audit(scsi_qla_host_t *vha, int audit_type)
...@@ -6872,9 +6849,8 @@ qla83xx_initiating_reset(scsi_qla_host_t *vha) ...@@ -6872,9 +6849,8 @@ qla83xx_initiating_reset(scsi_qla_host_t *vha)
ql_log(ql_log_info, vha, 0xb056, "HW State: NEED RESET.\n"); ql_log(ql_log_info, vha, 0xb056, "HW State: NEED RESET.\n");
qla83xx_idc_audit(vha, IDC_AUDIT_TIMESTAMP); qla83xx_idc_audit(vha, IDC_AUDIT_TIMESTAMP);
} else { } else {
const char *state = qla83xx_dev_state_to_string(dev_state); ql_log(ql_log_info, vha, 0xb057, "HW State: %s.\n",
qdev_state(dev_state));
ql_log(ql_log_info, vha, 0xb057, "HW State: %s.\n", state);
/* SV: XXX: Is timeout required here? */ /* SV: XXX: Is timeout required here? */
/* Wait for IDC state change READY -> NEED_RESET */ /* Wait for IDC state change READY -> NEED_RESET */
......
...@@ -335,20 +335,20 @@ static unsigned qla82xx_crb_hub_agt[64] = { ...@@ -335,20 +335,20 @@ static unsigned qla82xx_crb_hub_agt[64] = {
}; };
/* Device states */ /* Device states */
static char *q_dev_state[] = { static const char *const q_dev_state[] = {
"Unknown", [QLA8XXX_DEV_UNKNOWN] = "Unknown",
"Cold", [QLA8XXX_DEV_COLD] = "Cold/Re-init",
"Initializing", [QLA8XXX_DEV_INITIALIZING] = "Initializing",
"Ready", [QLA8XXX_DEV_READY] = "Ready",
"Need Reset", [QLA8XXX_DEV_NEED_RESET] = "Need Reset",
"Need Quiescent", [QLA8XXX_DEV_NEED_QUIESCENT] = "Need Quiescent",
"Failed", [QLA8XXX_DEV_FAILED] = "Failed",
"Quiescent", [QLA8XXX_DEV_QUIESCENT] = "Quiescent",
}; };
char *qdev_state(uint32_t dev_state) const char *qdev_state(uint32_t dev_state)
{ {
return q_dev_state[dev_state]; return (dev_state < MAX_STATES) ? q_dev_state[dev_state] : "Unknown";
} }
/* /*
...@@ -3061,8 +3061,7 @@ qla82xx_need_reset_handler(scsi_qla_host_t *vha) ...@@ -3061,8 +3061,7 @@ qla82xx_need_reset_handler(scsi_qla_host_t *vha)
ql_log(ql_log_info, vha, 0x00b6, ql_log(ql_log_info, vha, 0x00b6,
"Device state is 0x%x = %s.\n", "Device state is 0x%x = %s.\n",
dev_state, dev_state, qdev_state(dev_state));
dev_state < MAX_STATES ? qdev_state(dev_state) : "Unknown");
/* Force to DEV_COLD unless someone else is starting a reset */ /* Force to DEV_COLD unless someone else is starting a reset */
if (dev_state != QLA8XXX_DEV_INITIALIZING && if (dev_state != QLA8XXX_DEV_INITIALIZING &&
...@@ -3185,8 +3184,7 @@ qla82xx_device_state_handler(scsi_qla_host_t *vha) ...@@ -3185,8 +3184,7 @@ qla82xx_device_state_handler(scsi_qla_host_t *vha)
old_dev_state = dev_state; old_dev_state = dev_state;
ql_log(ql_log_info, vha, 0x009b, ql_log(ql_log_info, vha, 0x009b,
"Device state is 0x%x = %s.\n", "Device state is 0x%x = %s.\n",
dev_state, dev_state, qdev_state(dev_state));
dev_state < MAX_STATES ? qdev_state(dev_state) : "Unknown");
/* wait for 30 seconds for device to go ready */ /* wait for 30 seconds for device to go ready */
dev_init_timeout = jiffies + (ha->fcoe_dev_init_timeout * HZ); dev_init_timeout = jiffies + (ha->fcoe_dev_init_timeout * HZ);
...@@ -3207,9 +3205,7 @@ qla82xx_device_state_handler(scsi_qla_host_t *vha) ...@@ -3207,9 +3205,7 @@ qla82xx_device_state_handler(scsi_qla_host_t *vha)
if (loopcount < 5) { if (loopcount < 5) {
ql_log(ql_log_info, vha, 0x009d, ql_log(ql_log_info, vha, 0x009d,
"Device state is 0x%x = %s.\n", "Device state is 0x%x = %s.\n",
dev_state, dev_state, qdev_state(dev_state));
dev_state < MAX_STATES ? qdev_state(dev_state) :
"Unknown");
} }
switch (dev_state) { switch (dev_state) {
...@@ -3439,8 +3435,7 @@ qla82xx_set_reset_owner(scsi_qla_host_t *vha) ...@@ -3439,8 +3435,7 @@ qla82xx_set_reset_owner(scsi_qla_host_t *vha)
} else } else
ql_log(ql_log_info, vha, 0xb031, ql_log(ql_log_info, vha, 0xb031,
"Device state is 0x%x = %s.\n", "Device state is 0x%x = %s.\n",
dev_state, dev_state, qdev_state(dev_state));
dev_state < MAX_STATES ? qdev_state(dev_state) : "Unknown");
} }
/* /*
......
...@@ -540,14 +540,18 @@ ...@@ -540,14 +540,18 @@
#define QLA82XX_CRB_DRV_IDC_VERSION (QLA82XX_CAM_RAM(0x174)) #define QLA82XX_CRB_DRV_IDC_VERSION (QLA82XX_CAM_RAM(0x174))
/* Every driver should use these Device State */ /* Every driver should use these Device State */
#define QLA8XXX_DEV_COLD 1 enum {
#define QLA8XXX_DEV_INITIALIZING 2 QLA8XXX_DEV_UNKNOWN,
#define QLA8XXX_DEV_READY 3 QLA8XXX_DEV_COLD,
#define QLA8XXX_DEV_NEED_RESET 4 QLA8XXX_DEV_INITIALIZING,
#define QLA8XXX_DEV_NEED_QUIESCENT 5 QLA8XXX_DEV_READY,
#define QLA8XXX_DEV_FAILED 6 QLA8XXX_DEV_NEED_RESET,
#define QLA8XXX_DEV_QUIESCENT 7 QLA8XXX_DEV_NEED_QUIESCENT,
#define MAX_STATES 8 /* Increment if new state added */ QLA8XXX_DEV_FAILED,
QLA8XXX_DEV_QUIESCENT,
MAX_STATES, /* Increment if new state added */
};
#define QLA8XXX_BAD_VALUE 0xbad0bad0 #define QLA8XXX_BAD_VALUE 0xbad0bad0
#define QLA82XX_IDC_VERSION 1 #define QLA82XX_IDC_VERSION 1
......
...@@ -1938,8 +1938,7 @@ qla8044_device_state_handler(struct scsi_qla_host *vha) ...@@ -1938,8 +1938,7 @@ qla8044_device_state_handler(struct scsi_qla_host *vha)
dev_state = qla8044_rd_direct(vha, QLA8044_CRB_DEV_STATE_INDEX); dev_state = qla8044_rd_direct(vha, QLA8044_CRB_DEV_STATE_INDEX);
ql_dbg(ql_dbg_p3p, vha, 0xb0ce, ql_dbg(ql_dbg_p3p, vha, 0xb0ce,
"Device state is 0x%x = %s\n", "Device state is 0x%x = %s\n",
dev_state, dev_state < MAX_STATES ? dev_state, qdev_state(dev_state));
qdev_state(dev_state) : "Unknown");
/* wait for 30 seconds for device to go ready */ /* wait for 30 seconds for device to go ready */
dev_init_timeout = jiffies + (ha->fcoe_dev_init_timeout * HZ); dev_init_timeout = jiffies + (ha->fcoe_dev_init_timeout * HZ);
...@@ -1952,8 +1951,7 @@ qla8044_device_state_handler(struct scsi_qla_host *vha) ...@@ -1952,8 +1951,7 @@ qla8044_device_state_handler(struct scsi_qla_host *vha)
ql_log(ql_log_warn, vha, 0xb0cf, ql_log(ql_log_warn, vha, 0xb0cf,
"%s: Device Init Failed 0x%x = %s\n", "%s: Device Init Failed 0x%x = %s\n",
QLA2XXX_DRIVER_NAME, dev_state, QLA2XXX_DRIVER_NAME, dev_state,
dev_state < MAX_STATES ? qdev_state(dev_state));
qdev_state(dev_state) : "Unknown");
qla8044_wr_direct(vha, qla8044_wr_direct(vha,
QLA8044_CRB_DEV_STATE_INDEX, QLA8044_CRB_DEV_STATE_INDEX,
QLA8XXX_DEV_FAILED); QLA8XXX_DEV_FAILED);
...@@ -1963,8 +1961,7 @@ qla8044_device_state_handler(struct scsi_qla_host *vha) ...@@ -1963,8 +1961,7 @@ qla8044_device_state_handler(struct scsi_qla_host *vha)
dev_state = qla8044_rd_direct(vha, QLA8044_CRB_DEV_STATE_INDEX); dev_state = qla8044_rd_direct(vha, QLA8044_CRB_DEV_STATE_INDEX);
ql_log(ql_log_info, vha, 0xb0d0, ql_log(ql_log_info, vha, 0xb0d0,
"Device state is 0x%x = %s\n", "Device state is 0x%x = %s\n",
dev_state, dev_state < MAX_STATES ? dev_state, qdev_state(dev_state));
qdev_state(dev_state) : "Unknown");
/* NOTE: Make sure idc unlocked upon exit of switch statement */ /* NOTE: Make sure idc unlocked upon exit of switch statement */
switch (dev_state) { switch (dev_state) {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment