Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 89778d6e authored by Tomas Winkler's avatar Tomas Winkler Committed by Greg Kroah-Hartman
Browse files

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: default avatarTomas Winkler <tomas.winkler@intel.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent d880f329
Loading
Loading
Loading
Loading
+20 −2
Original line number Original line Diff line number Diff line
@@ -25,6 +25,23 @@
#include "hbm.h"
#include "hbm.h"
#include "client.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)
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
#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;
		props_res = (struct hbm_props_response *)mei_msg;


		if (props_res->status) {
		if (props_res->status) {
			dev_err(&dev->pdev->dev, "hbm: properties response: wrong status = %d\n",
			dev_err(&dev->pdev->dev, "hbm: properties response: wrong status = %d %s\n",
				props_res->status);
				props_res->status,
				mei_hbm_status_str(props_res->status));
			return -EPROTO;
			return -EPROTO;
		}
		}


+33 −6
Original line number Original line Diff line number Diff line
@@ -97,23 +97,50 @@ enum mei_stop_reason_types {
	SYSTEM_S5_ENTRY = 0x08
	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
 * Client Connect Status
 * used by hbm_client_connect_response.status
 * used by hbm_client_connect_response.status
 */
 */
enum mei_cl_connect_status {
enum mei_cl_connect_status {
	MEI_CL_CONN_SUCCESS          = 0x00,
	MEI_CL_CONN_SUCCESS          = MEI_HBMS_SUCCESS,
	MEI_CL_CONN_NOT_FOUND        = 0x01,
	MEI_CL_CONN_NOT_FOUND        = MEI_HBMS_CLIENT_NOT_FOUND,
	MEI_CL_CONN_ALREADY_STARTED  = 0x02,
	MEI_CL_CONN_ALREADY_STARTED  = MEI_HBMS_ALREADY_EXISTS,
	MEI_CL_CONN_OUT_OF_RESOURCES = 0x03,
	MEI_CL_CONN_OUT_OF_RESOURCES = MEI_HBMS_REJECTED,
	MEI_CL_CONN_MESSAGE_SMALL    = 0x04
	MEI_CL_CONN_MESSAGE_SMALL    = MEI_HBMS_INVALID_PARAMETER,
};
};


/*
/*
 * Client Disconnect Status
 * Client Disconnect Status
 */
 */
enum  mei_cl_disconnect_status {
enum  mei_cl_disconnect_status {
	MEI_CL_DISCONN_SUCCESS = 0x00
	MEI_CL_DISCONN_SUCCESS = MEI_HBMS_SUCCESS
};
};


/*
/*