From: Tomas Winkler Date: Thu, 21 Aug 2014 11:29:16 +0000 (+0300) Subject: mei: add hbm commands return status values X-Git-Tag: firefly_0821_release~176^2~3117^2~60 X-Git-Url: http://plrg.eecs.uci.edu/git/?a=commitdiff_plain;h=89778d6e2a39027977e2de822808bd82afd6ea46;p=firefly-linux-kernel-4.4.55.git mei: add hbm commands return status values HBM uses global list of status values from which the values of particular commands are derived Signed-off-by: Tomas Winkler Signed-off-by: Greg Kroah-Hartman --- diff --git a/drivers/misc/mei/hbm.c b/drivers/misc/mei/hbm.c index 5fb177b3bfef..d50c8d1fb36d 100644 --- a/drivers/misc/mei/hbm.c +++ b/drivers/misc/mei/hbm.c @@ -25,6 +25,23 @@ #include "hbm.h" #include "client.h" +static const char *mei_hbm_status_str(enum mei_hbm_status status) +{ +#define MEI_HBM_STATUS(status) case MEI_HBMS_##status: return #status + switch (status) { + MEI_HBM_STATUS(SUCCESS); + MEI_HBM_STATUS(CLIENT_NOT_FOUND); + MEI_HBM_STATUS(ALREADY_EXISTS); + MEI_HBM_STATUS(REJECTED); + MEI_HBM_STATUS(INVALID_PARAMETER); + MEI_HBM_STATUS(NOT_ALLOWED); + MEI_HBM_STATUS(ALREADY_STARTED); + MEI_HBM_STATUS(NOT_STARTED); + default: return "unknown"; + } +#undef MEI_HBM_STATUS +}; + static const char *mei_cl_conn_status_str(enum mei_cl_connect_status status) { #define MEI_CL_CS(status) case MEI_CL_CONN_##status: return #status @@ -770,8 +787,9 @@ int mei_hbm_dispatch(struct mei_device *dev, struct mei_msg_hdr *hdr) props_res = (struct hbm_props_response *)mei_msg; if (props_res->status) { - dev_err(&dev->pdev->dev, "hbm: properties response: wrong status = %d\n", - props_res->status); + dev_err(&dev->pdev->dev, "hbm: properties response: wrong status = %d %s\n", + props_res->status, + mei_hbm_status_str(props_res->status)); return -EPROTO; } diff --git a/drivers/misc/mei/hw.h b/drivers/misc/mei/hw.h index 50526f92f092..6e31113b63df 100644 --- a/drivers/misc/mei/hw.h +++ b/drivers/misc/mei/hw.h @@ -97,23 +97,50 @@ enum mei_stop_reason_types { SYSTEM_S5_ENTRY = 0x08 }; + +/** + * mei_hbm_status - mei host bus messages return values + * + * @MEI_HBMS_SUCCESS - status success + * @MEI_HBMS_CLIENT_NOT_FOUND - client not found + * @MEI_HBMS_ALREADY_EXISTS - connection already established + * @MEI_HBMS_REJECTED - connection is rejected + * @MEI_HBMS_INVALID_PARAMETER - invalid parameter + * @MEI_HBMS_NOT_ALLOWED - operation not allowed + * @MEI_HBMS_ALREADY_STARTED - system is already started + * @MEI_HBMS_NOT_STARTED - system not started + */ +enum mei_hbm_status { + MEI_HBMS_SUCCESS = 0, + MEI_HBMS_CLIENT_NOT_FOUND = 1, + MEI_HBMS_ALREADY_EXISTS = 2, + MEI_HBMS_REJECTED = 3, + MEI_HBMS_INVALID_PARAMETER = 4, + MEI_HBMS_NOT_ALLOWED = 5, + MEI_HBMS_ALREADY_STARTED = 6, + MEI_HBMS_NOT_STARTED = 7, + + MEI_HBMS_MAX +}; + + /* * Client Connect Status * used by hbm_client_connect_response.status */ enum mei_cl_connect_status { - MEI_CL_CONN_SUCCESS = 0x00, - MEI_CL_CONN_NOT_FOUND = 0x01, - MEI_CL_CONN_ALREADY_STARTED = 0x02, - MEI_CL_CONN_OUT_OF_RESOURCES = 0x03, - MEI_CL_CONN_MESSAGE_SMALL = 0x04 + MEI_CL_CONN_SUCCESS = MEI_HBMS_SUCCESS, + MEI_CL_CONN_NOT_FOUND = MEI_HBMS_CLIENT_NOT_FOUND, + MEI_CL_CONN_ALREADY_STARTED = MEI_HBMS_ALREADY_EXISTS, + MEI_CL_CONN_OUT_OF_RESOURCES = MEI_HBMS_REJECTED, + MEI_CL_CONN_MESSAGE_SMALL = MEI_HBMS_INVALID_PARAMETER, }; /* * Client Disconnect Status */ enum mei_cl_disconnect_status { - MEI_CL_DISCONN_SUCCESS = 0x00 + MEI_CL_DISCONN_SUCCESS = MEI_HBMS_SUCCESS }; /*