diff options
-rw-r--r-- | drivers/misc/mei/debugfs.c | 7 | ||||
-rw-r--r-- | drivers/misc/mei/hbm.c | 16 | ||||
-rw-r--r-- | drivers/misc/mei/hbm.h | 2 | ||||
-rw-r--r-- | drivers/misc/mei/init.c | 12 | ||||
-rw-r--r-- | drivers/misc/mei/mei_dev.h | 2 |
5 files changed, 38 insertions, 1 deletions
diff --git a/drivers/misc/mei/debugfs.c b/drivers/misc/mei/debugfs.c index 3b032881622d..2399b3181e6c 100644 --- a/drivers/misc/mei/debugfs.c +++ b/drivers/misc/mei/debugfs.c @@ -134,8 +134,13 @@ static ssize_t mei_dbgfs_read_devstate(struct file *fp, char __user *ubuf, if (!buf) return -ENOMEM; - pos += scnprintf(buf + pos, bufsz - pos, "%s\n", + pos += scnprintf(buf + pos, bufsz - pos, "dev: %s\n", mei_dev_state_str(dev->dev_state)); + pos += scnprintf(buf + pos, bufsz - pos, "hbm: %s\n", + mei_hbm_state_str(dev->hbm_state)); + pos += scnprintf(buf + pos, bufsz - pos, "pg: %s, %s\n", + mei_pg_is_enabled(dev) ? "ENABLED" : "DISABLED", + mei_pg_state_str(mei_pg_state(dev))); ret = simple_read_from_buffer(ubuf, cnt, ppos, buf, pos); kfree(buf); return ret; diff --git a/drivers/misc/mei/hbm.c b/drivers/misc/mei/hbm.c index 9fc051b7f1a3..3311b5c323af 100644 --- a/drivers/misc/mei/hbm.c +++ b/drivers/misc/mei/hbm.c @@ -56,6 +56,22 @@ static const char *mei_cl_conn_status_str(enum mei_cl_connect_status status) #undef MEI_CL_CCS } +const char *mei_hbm_state_str(enum mei_hbm_state state) +{ +#define MEI_HBM_STATE(state) case MEI_HBM_##state: return #state + switch (state) { + MEI_HBM_STATE(IDLE); + MEI_HBM_STATE(STARTING); + MEI_HBM_STATE(STARTED); + MEI_HBM_STATE(ENUM_CLIENTS); + MEI_HBM_STATE(CLIENT_PROPERTIES); + MEI_HBM_STATE(STOPPED); + default: + return "unknown"; + } +#undef MEI_HBM_STATE +} + /** * mei_cl_conn_status_to_errno - convert client connect response * status to error code diff --git a/drivers/misc/mei/hbm.h b/drivers/misc/mei/hbm.h index 80920f096c04..efcb0d45bbe6 100644 --- a/drivers/misc/mei/hbm.h +++ b/drivers/misc/mei/hbm.h @@ -40,6 +40,8 @@ enum mei_hbm_state { MEI_HBM_STOPPED, }; +const char *mei_hbm_state_str(enum mei_hbm_state state); + int mei_hbm_dispatch(struct mei_device *dev, struct mei_msg_hdr *hdr); static inline void mei_hbm_hdr(struct mei_msg_hdr *hdr, size_t length) diff --git a/drivers/misc/mei/init.c b/drivers/misc/mei/init.c index 9f635be684ea..81695e4cf0a0 100644 --- a/drivers/misc/mei/init.c +++ b/drivers/misc/mei/init.c @@ -43,6 +43,18 @@ const char *mei_dev_state_str(int state) #undef MEI_DEV_STATE } +const char *mei_pg_state_str(enum mei_pg_state state) +{ +#define MEI_PG_STATE(state) case MEI_PG_##state: return #state + switch (state) { + MEI_PG_STATE(OFF); + MEI_PG_STATE(ON); + default: + return "unknown"; + } +#undef MEI_PG_STATE +} + /** * mei_cancel_work. Cancel mei background jobs diff --git a/drivers/misc/mei/mei_dev.h b/drivers/misc/mei/mei_dev.h index 719edeeb3ceb..be7b14766cfa 100644 --- a/drivers/misc/mei/mei_dev.h +++ b/drivers/misc/mei/mei_dev.h @@ -375,6 +375,8 @@ enum mei_pg_state { MEI_PG_ON = 1, }; +const char *mei_pg_state_str(enum mei_pg_state state); + /* * mei_cfg * |