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

Commit ee9d0606 authored by Laurentiu Tudor's avatar Laurentiu Tudor Committed by Greg Kroah-Hartman
Browse files

staging: fsl-mc: dpmcp: drop unused APIs



These APIs are not used yet, so drop the dead code.
The patch is mostly mechanical, with a couple exceptions:
 - getters/setters were not removed even if only one of
   them is being used
 - versioning API was also left in place
Also in this patch, add missing prototype for
version query function.

Signed-off-by: default avatarLaurentiu Tudor <laurentiu.tudor@nxp.com>
Acked-by: default avatarStuart Yoder <stuart.yoder@nxp.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 9b65332e
Loading
Loading
Loading
Loading
+0 −95
Original line number Diff line number Diff line
@@ -45,107 +45,12 @@
/* Command IDs */
#define DPMCP_CMDID_CLOSE		DPMCP_CMD(0x800)
#define DPMCP_CMDID_OPEN		DPMCP_CMD(0x80b)
#define DPMCP_CMDID_CREATE		DPMCP_CMD(0x90b)
#define DPMCP_CMDID_DESTROY		DPMCP_CMD(0x98b)
#define DPMCP_CMDID_GET_API_VERSION	DPMCP_CMD(0xa0b)

#define DPMCP_CMDID_GET_ATTR		DPMCP_CMD(0x004)
#define DPMCP_CMDID_RESET		DPMCP_CMD(0x005)

#define DPMCP_CMDID_SET_IRQ		DPMCP_CMD(0x010)
#define DPMCP_CMDID_GET_IRQ		DPMCP_CMD(0x011)
#define DPMCP_CMDID_SET_IRQ_ENABLE	DPMCP_CMD(0x012)
#define DPMCP_CMDID_GET_IRQ_ENABLE	DPMCP_CMD(0x013)
#define DPMCP_CMDID_SET_IRQ_MASK	DPMCP_CMD(0x014)
#define DPMCP_CMDID_GET_IRQ_MASK	DPMCP_CMD(0x015)
#define DPMCP_CMDID_GET_IRQ_STATUS	DPMCP_CMD(0x016)

struct dpmcp_cmd_open {
	__le32 dpmcp_id;
};

struct dpmcp_cmd_create {
	__le32 portal_id;
};

struct dpmcp_cmd_destroy {
	__le32 object_id;
};

struct dpmcp_cmd_set_irq {
	/* cmd word 0 */
	u8 irq_index;
	u8 pad[3];
	__le32 irq_val;
	/* cmd word 1 */
	__le64 irq_addr;
	/* cmd word 2 */
	__le32 irq_num;
};

struct dpmcp_cmd_get_irq {
	__le32 pad;
	u8 irq_index;
};

struct dpmcp_rsp_get_irq {
	/* cmd word 0 */
	__le32 irq_val;
	__le32 pad;
	/* cmd word 1 */
	__le64 irq_paddr;
	/* cmd word 2 */
	__le32 irq_num;
	__le32 type;
};

#define DPMCP_ENABLE		0x1

struct dpmcp_cmd_set_irq_enable {
	u8 enable;
	u8 pad[3];
	u8 irq_index;
};

struct dpmcp_cmd_get_irq_enable {
	__le32 pad;
	u8 irq_index;
};

struct dpmcp_rsp_get_irq_enable {
	u8 enabled;
};

struct dpmcp_cmd_set_irq_mask {
	__le32 mask;
	u8 irq_index;
};

struct dpmcp_cmd_get_irq_mask {
	__le32 pad;
	u8 irq_index;
};

struct dpmcp_rsp_get_irq_mask {
	__le32 mask;
};

struct dpmcp_cmd_get_irq_status {
	__le32 status;
	u8 irq_index;
};

struct dpmcp_rsp_get_irq_status {
	__le32 status;
};

struct dpmcp_rsp_get_attributes {
	/* response word 0 */
	__le32 pad;
	__le32 id;
	/* response word 1 */
	__le16 version_major;
	__le16 version_minor;
};

#endif /* _FSL_DPMCP_CMD_H */
+0 −382
Original line number Diff line number Diff line
@@ -103,82 +103,6 @@ int dpmcp_close(struct fsl_mc_io *mc_io,
	return mc_send_command(mc_io, &cmd);
}

/**
 * dpmcp_create() - Create the DPMCP object.
 * @mc_io:	Pointer to MC portal's I/O object
 * @dprc_token:	Parent container token; '0' for default container
 * @cmd_flags:	Command flags; one or more of 'MC_CMD_FLAG_'
 * @cfg:	Configuration structure
 * @obj_id:	Returned object id; use in subsequent API calls
 *
 * Create the DPMCP object, allocate required resources and
 * perform required initialization.
 *
 * The object can be created either by declaring it in the
 * DPL file, or by calling this function.

 * This function accepts an authentication token of a parent
 * container that this object should be assigned to and returns
 * an object id. This object_id will be used in all subsequent calls to
 * this specific object.
 *
 * Return:	'0' on Success; Error code otherwise.
 */
int dpmcp_create(struct fsl_mc_io *mc_io,
		 u16 dprc_token,
		 u32 cmd_flags,
		 const struct dpmcp_cfg *cfg,
		 u32 *obj_id)
{
	struct mc_command cmd = { 0 };
	struct dpmcp_cmd_create *cmd_params;

	int err;

	/* prepare command */
	cmd.header = mc_encode_cmd_header(DPMCP_CMDID_CREATE,
					  cmd_flags, dprc_token);
	cmd_params = (struct dpmcp_cmd_create *)cmd.params;
	cmd_params->portal_id = cpu_to_le32(cfg->portal_id);

	/* send command to mc*/
	err = mc_send_command(mc_io, &cmd);
	if (err)
		return err;

	/* retrieve response parameters */
	*obj_id = mc_cmd_read_object_id(&cmd);

	return 0;
}

/**
 * dpmcp_destroy() - Destroy the DPMCP object and release all its resources.
 * @mc_io:	Pointer to MC portal's I/O object
 * @dprc_token:	Parent container token; '0' for default container
 * @cmd_flags:	Command flags; one or more of 'MC_CMD_FLAG_'
 * @obj_id:	ID of DPMCP object
 *
 * Return:	'0' on Success; error code otherwise.
 */
int dpmcp_destroy(struct fsl_mc_io *mc_io,
		  u16 dprc_token,
		  u32 cmd_flags,
		  u32 obj_id)
{
	struct mc_command cmd = { 0 };
	struct dpmcp_cmd_destroy *cmd_params;

	/* prepare command */
	cmd.header = mc_encode_cmd_header(DPMCP_CMDID_DESTROY,
					  cmd_flags, dprc_token);
	cmd_params = (struct dpmcp_cmd_destroy *)cmd.params;
	cmd_params->object_id = cpu_to_le32(obj_id);

	/* send command to mc*/
	return mc_send_command(mc_io, &cmd);
}

/**
 * dpmcp_reset() - Reset the DPMCP, returns the object to initial state.
 * @mc_io:	Pointer to MC portal's I/O object
@@ -201,312 +125,6 @@ int dpmcp_reset(struct fsl_mc_io *mc_io,
	return mc_send_command(mc_io, &cmd);
}

/**
 * dpmcp_set_irq() - Set IRQ information for the DPMCP to trigger an interrupt.
 * @mc_io:	Pointer to MC portal's I/O object
 * @cmd_flags:	Command flags; one or more of 'MC_CMD_FLAG_'
 * @token:	Token of DPMCP object
 * @irq_index:	Identifies the interrupt index to configure
 * @irq_cfg:	IRQ configuration
 *
 * Return:	'0' on Success; Error code otherwise.
 */
int dpmcp_set_irq(struct fsl_mc_io *mc_io,
		  u32 cmd_flags,
		  u16 token,
		  u8 irq_index,
		  struct dpmcp_irq_cfg	*irq_cfg)
{
	struct mc_command cmd = { 0 };
	struct dpmcp_cmd_set_irq *cmd_params;

	/* prepare command */
	cmd.header = mc_encode_cmd_header(DPMCP_CMDID_SET_IRQ,
					  cmd_flags, token);
	cmd_params = (struct dpmcp_cmd_set_irq *)cmd.params;
	cmd_params->irq_index = irq_index;
	cmd_params->irq_val = cpu_to_le32(irq_cfg->val);
	cmd_params->irq_addr = cpu_to_le64(irq_cfg->paddr);
	cmd_params->irq_num = cpu_to_le32(irq_cfg->irq_num);

	/* send command to mc*/
	return mc_send_command(mc_io, &cmd);
}

/**
 * dpmcp_get_irq() - Get IRQ information from the DPMCP.
 * @mc_io:	Pointer to MC portal's I/O object
 * @cmd_flags:	Command flags; one or more of 'MC_CMD_FLAG_'
 * @token:	Token of DPMCP object
 * @irq_index:	The interrupt index to configure
 * @type:	Interrupt type: 0 represents message interrupt
 *		type (both irq_addr and irq_val are valid)
 * @irq_cfg:	IRQ attributes
 *
 * Return:	'0' on Success; Error code otherwise.
 */
int dpmcp_get_irq(struct fsl_mc_io *mc_io,
		  u32 cmd_flags,
		  u16 token,
		  u8 irq_index,
		  int *type,
		  struct dpmcp_irq_cfg	*irq_cfg)
{
	struct mc_command cmd = { 0 };
	struct dpmcp_cmd_get_irq *cmd_params;
	struct dpmcp_rsp_get_irq *rsp_params;
	int err;

	/* prepare command */
	cmd.header = mc_encode_cmd_header(DPMCP_CMDID_GET_IRQ,
					  cmd_flags, token);
	cmd_params = (struct dpmcp_cmd_get_irq *)cmd.params;
	cmd_params->irq_index = irq_index;

	/* send command to mc*/
	err = mc_send_command(mc_io, &cmd);
	if (err)
		return err;

	/* retrieve response parameters */
	rsp_params = (struct dpmcp_rsp_get_irq *)cmd.params;
	irq_cfg->val = le32_to_cpu(rsp_params->irq_val);
	irq_cfg->paddr = le64_to_cpu(rsp_params->irq_paddr);
	irq_cfg->irq_num = le32_to_cpu(rsp_params->irq_num);
	*type = le32_to_cpu(rsp_params->type);
	return 0;
}

/**
 * dpmcp_set_irq_enable() - Set overall interrupt state.
 * @mc_io:	Pointer to MC portal's I/O object
 * @cmd_flags:	Command flags; one or more of 'MC_CMD_FLAG_'
 * @token:	Token of DPMCP object
 * @irq_index:	The interrupt index to configure
 * @en:	Interrupt state - enable = 1, disable = 0
 *
 * Allows GPP software to control when interrupts are generated.
 * Each interrupt can have up to 32 causes.  The enable/disable control's the
 * overall interrupt state. if the interrupt is disabled no causes will cause
 * an interrupt.
 *
 * Return:	'0' on Success; Error code otherwise.
 */
int dpmcp_set_irq_enable(struct fsl_mc_io *mc_io,
			 u32 cmd_flags,
			 u16 token,
			 u8 irq_index,
			 u8 en)
{
	struct mc_command cmd = { 0 };
	struct dpmcp_cmd_set_irq_enable *cmd_params;

	/* prepare command */
	cmd.header = mc_encode_cmd_header(DPMCP_CMDID_SET_IRQ_ENABLE,
					  cmd_flags, token);
	cmd_params = (struct dpmcp_cmd_set_irq_enable *)cmd.params;
	cmd_params->enable = en & DPMCP_ENABLE;
	cmd_params->irq_index = irq_index;

	/* send command to mc*/
	return mc_send_command(mc_io, &cmd);
}

/**
 * dpmcp_get_irq_enable() - Get overall interrupt state
 * @mc_io:	Pointer to MC portal's I/O object
 * @cmd_flags:	Command flags; one or more of 'MC_CMD_FLAG_'
 * @token:	Token of DPMCP object
 * @irq_index:	The interrupt index to configure
 * @en:		Returned interrupt state - enable = 1, disable = 0
 *
 * Return:	'0' on Success; Error code otherwise.
 */
int dpmcp_get_irq_enable(struct fsl_mc_io *mc_io,
			 u32 cmd_flags,
			 u16 token,
			 u8 irq_index,
			 u8 *en)
{
	struct mc_command cmd = { 0 };
	struct dpmcp_cmd_get_irq_enable *cmd_params;
	struct dpmcp_rsp_get_irq_enable *rsp_params;
	int err;

	/* prepare command */
	cmd.header = mc_encode_cmd_header(DPMCP_CMDID_GET_IRQ_ENABLE,
					  cmd_flags, token);
	cmd_params = (struct dpmcp_cmd_get_irq_enable *)cmd.params;
	cmd_params->irq_index = irq_index;

	/* send command to mc*/
	err = mc_send_command(mc_io, &cmd);
	if (err)
		return err;

	/* retrieve response parameters */
	rsp_params = (struct dpmcp_rsp_get_irq_enable *)cmd.params;
	*en = rsp_params->enabled & DPMCP_ENABLE;
	return 0;
}

/**
 * dpmcp_set_irq_mask() - Set interrupt mask.
 * @mc_io:	Pointer to MC portal's I/O object
 * @cmd_flags:	Command flags; one or more of 'MC_CMD_FLAG_'
 * @token:	Token of DPMCP object
 * @irq_index:	The interrupt index to configure
 * @mask:	Event mask to trigger interrupt;
 *			each bit:
 *				0 = ignore event
 *				1 = consider event for asserting IRQ
 *
 * Every interrupt can have up to 32 causes and the interrupt model supports
 * masking/unmasking each cause independently
 *
 * Return:	'0' on Success; Error code otherwise.
 */
int dpmcp_set_irq_mask(struct fsl_mc_io *mc_io,
		       u32 cmd_flags,
		       u16 token,
		       u8 irq_index,
		       u32 mask)
{
	struct mc_command cmd = { 0 };
	struct dpmcp_cmd_set_irq_mask *cmd_params;

	/* prepare command */
	cmd.header = mc_encode_cmd_header(DPMCP_CMDID_SET_IRQ_MASK,
					  cmd_flags, token);
	cmd_params = (struct dpmcp_cmd_set_irq_mask *)cmd.params;
	cmd_params->mask = cpu_to_le32(mask);
	cmd_params->irq_index = irq_index;

	/* send command to mc*/
	return mc_send_command(mc_io, &cmd);
}

/**
 * dpmcp_get_irq_mask() - Get interrupt mask.
 * @mc_io:	Pointer to MC portal's I/O object
 * @cmd_flags:	Command flags; one or more of 'MC_CMD_FLAG_'
 * @token:	Token of DPMCP object
 * @irq_index:	The interrupt index to configure
 * @mask:	Returned event mask to trigger interrupt
 *
 * Every interrupt can have up to 32 causes and the interrupt model supports
 * masking/unmasking each cause independently
 *
 * Return:	'0' on Success; Error code otherwise.
 */
int dpmcp_get_irq_mask(struct fsl_mc_io *mc_io,
		       u32 cmd_flags,
		       u16 token,
		       u8 irq_index,
		       u32 *mask)
{
	struct mc_command cmd = { 0 };
	struct dpmcp_cmd_get_irq_mask *cmd_params;
	struct dpmcp_rsp_get_irq_mask *rsp_params;

	int err;

	/* prepare command */
	cmd.header = mc_encode_cmd_header(DPMCP_CMDID_GET_IRQ_MASK,
					  cmd_flags, token);
	cmd_params = (struct dpmcp_cmd_get_irq_mask *)cmd.params;
	cmd_params->irq_index = irq_index;

	/* send command to mc*/
	err = mc_send_command(mc_io, &cmd);
	if (err)
		return err;

	/* retrieve response parameters */
	rsp_params = (struct dpmcp_rsp_get_irq_mask *)cmd.params;
	*mask = le32_to_cpu(rsp_params->mask);

	return 0;
}

/**
 * dpmcp_get_irq_status() - Get the current status of any pending interrupts.
 *
 * @mc_io:	Pointer to MC portal's I/O object
 * @cmd_flags:	Command flags; one or more of 'MC_CMD_FLAG_'
 * @token:	Token of DPMCP object
 * @irq_index:	The interrupt index to configure
 * @status:	Returned interrupts status - one bit per cause:
 *			0 = no interrupt pending
 *			1 = interrupt pending
 *
 * Return:	'0' on Success; Error code otherwise.
 */
int dpmcp_get_irq_status(struct fsl_mc_io *mc_io,
			 u32 cmd_flags,
			 u16 token,
			 u8 irq_index,
			 u32 *status)
{
	struct mc_command cmd = { 0 };
	struct dpmcp_cmd_get_irq_status *cmd_params;
	struct dpmcp_rsp_get_irq_status *rsp_params;
	int err;

	/* prepare command */
	cmd.header = mc_encode_cmd_header(DPMCP_CMDID_GET_IRQ_STATUS,
					  cmd_flags, token);
	cmd_params = (struct dpmcp_cmd_get_irq_status *)cmd.params;
	cmd_params->status = cpu_to_le32(*status);
	cmd_params->irq_index = irq_index;

	/* send command to mc*/
	err = mc_send_command(mc_io, &cmd);
	if (err)
		return err;

	/* retrieve response parameters */
	rsp_params = (struct dpmcp_rsp_get_irq_status *)cmd.params;
	*status = le32_to_cpu(rsp_params->status);

	return 0;
}

/**
 * dpmcp_get_attributes - Retrieve DPMCP attributes.
 *
 * @mc_io:	Pointer to MC portal's I/O object
 * @cmd_flags:	Command flags; one or more of 'MC_CMD_FLAG_'
 * @token:	Token of DPMCP object
 * @attr:	Returned object's attributes
 *
 * Return:	'0' on Success; Error code otherwise.
 */
int dpmcp_get_attributes(struct fsl_mc_io *mc_io,
			 u32 cmd_flags,
			 u16 token,
			 struct dpmcp_attr *attr)
{
	struct mc_command cmd = { 0 };
	struct dpmcp_rsp_get_attributes *rsp_params;
	int err;

	/* prepare command */
	cmd.header = mc_encode_cmd_header(DPMCP_CMDID_GET_ATTR,
					  cmd_flags, token);

	/* send command to mc*/
	err = mc_send_command(mc_io, &cmd);
	if (err)
		return err;

	/* retrieve response parameters */
	rsp_params = (struct dpmcp_rsp_get_attributes *)cmd.params;
	attr->id = le32_to_cpu(rsp_params->id);

	return 0;
}

/**
 * dpmcp_get_api_version - Get Data Path Management Command Portal API version
 * @mc_io:	Pointer to Mc portal's I/O object
+4 −96
Original line number Diff line number Diff line
@@ -44,109 +44,17 @@ int dpmcp_open(struct fsl_mc_io *mc_io,
	       int dpmcp_id,
	       u16 *token);

/* Get portal ID from pool */
#define DPMCP_GET_PORTAL_ID_FROM_POOL (-1)

int dpmcp_close(struct fsl_mc_io *mc_io,
		u32 cmd_flags,
		u16 token);

/**
 * struct dpmcp_cfg - Structure representing DPMCP configuration
 * @portal_id:	Portal ID; 'DPMCP_GET_PORTAL_ID_FROM_POOL' to get the portal ID
 *		from pool
 */
struct dpmcp_cfg {
	int portal_id;
};

int dpmcp_create(struct fsl_mc_io *mc_io,
		 u16 dprc_token,
int dpmcp_get_api_version(struct fsl_mc_io *mc_io,
			  u32 cmd_flags,
		 const struct dpmcp_cfg *cfg,
		 u32 *obj_id);

int dpmcp_destroy(struct fsl_mc_io *mc_io,
		  u16 dprc_token,
		  u32 cmd_flags,
		  u32 obj_id);
			  u16 *major_ver,
			  u16 *minor_ver);

int dpmcp_reset(struct fsl_mc_io *mc_io,
		u32 cmd_flags,
		u16 token);

/* IRQ */
/* IRQ Index */
#define DPMCP_IRQ_INDEX                             0
/* irq event - Indicates that the link state changed */
#define DPMCP_IRQ_EVENT_CMD_DONE                    0x00000001

/**
 * struct dpmcp_irq_cfg - IRQ configuration
 * @paddr:	Address that must be written to signal a message-based interrupt
 * @val:	Value to write into irq_addr address
 * @irq_num: A user defined number associated with this IRQ
 */
struct dpmcp_irq_cfg {
	     u64 paddr;
	     u32 val;
	     int irq_num;
};

int dpmcp_set_irq(struct fsl_mc_io *mc_io,
		  u32 cmd_flags,
		  u16 token,
		  u8 irq_index,
		  struct dpmcp_irq_cfg *irq_cfg);

int dpmcp_get_irq(struct fsl_mc_io *mc_io,
		  u32 cmd_flags,
		  u16 token,
		  u8 irq_index,
		  int *type,
		  struct dpmcp_irq_cfg *irq_cfg);

int dpmcp_set_irq_enable(struct fsl_mc_io *mc_io,
			 u32 cmd_flags,
			 u16 token,
			 u8 irq_index,
			 u8 en);

int dpmcp_get_irq_enable(struct fsl_mc_io *mc_io,
			 u32 cmd_flags,
			 u16 token,
			 u8 irq_index,
			 u8 *en);

int dpmcp_set_irq_mask(struct fsl_mc_io *mc_io,
		       u32 cmd_flags,
		       u16 token,
		       u8 irq_index,
		       u32 mask);

int dpmcp_get_irq_mask(struct fsl_mc_io *mc_io,
		       u32 cmd_flags,
		       u16 token,
		       u8 irq_index,
		       u32 *mask);

int dpmcp_get_irq_status(struct fsl_mc_io *mc_io,
			 u32 cmd_flags,
			 u16 token,
			 u8 irq_index,
			 u32 *status);

/**
 * struct dpmcp_attr - Structure representing DPMCP attributes
 * @id:		DPMCP object ID
 */
struct dpmcp_attr {
	int id;
};

int dpmcp_get_attributes(struct fsl_mc_io *mc_io,
			 u32 cmd_flags,
			 u16 token,
			 struct dpmcp_attr *attr);

#endif /* __FSL_DPMCP_H */