net: fsl-mc: sync remaining MC commands
This patch targets the last remaining commands left to sync to their latest form - mainly the mc_get_version() API. Besides this, remove any macro which is now of no help. Signed-off-by: Ioana Ciornei <ioana.ciornei@nxp.com> Signed-off-by: Peng Fan <peng.fan@nxp.com>
This commit is contained in:
@@ -1,15 +1,24 @@
|
|||||||
// SPDX-License-Identifier: GPL-2.0+
|
// SPDX-License-Identifier: GPL-2.0+
|
||||||
/* Copyright 2013-2015 Freescale Semiconductor Inc.
|
/* Copyright 2013-2015 Freescale Semiconductor Inc.
|
||||||
|
* Copyright 2023 NXP
|
||||||
*/
|
*/
|
||||||
#include <fsl-mc/fsl_mc_sys.h>
|
#include <fsl-mc/fsl_mc_sys.h>
|
||||||
#include <fsl-mc/fsl_mc_cmd.h>
|
#include <fsl-mc/fsl_mc_cmd.h>
|
||||||
#include <fsl-mc/fsl_dpmng.h>
|
#include <fsl-mc/fsl_dpmng.h>
|
||||||
#include "fsl_dpmng_cmd.h"
|
#include "fsl_dpmng_cmd.h"
|
||||||
|
|
||||||
int mc_get_version(struct fsl_mc_io *mc_io,
|
/**
|
||||||
uint32_t cmd_flags,
|
* mc_get_version() - Retrieves the Management Complex firmware
|
||||||
struct mc_version *mc_ver_info)
|
* version information
|
||||||
|
* @mc_io: Pointer to opaque I/O object
|
||||||
|
* @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_'
|
||||||
|
* @mc_ver_info: Returned version information structure
|
||||||
|
*
|
||||||
|
* Return: '0' on Success; Error code otherwise.
|
||||||
|
*/
|
||||||
|
int mc_get_version(struct fsl_mc_io *mc_io, uint32_t cmd_flags, struct mc_version *mc_ver_info)
|
||||||
{
|
{
|
||||||
|
struct dpmng_rsp_get_version *rsp_params;
|
||||||
struct mc_command cmd = { 0 };
|
struct mc_command cmd = { 0 };
|
||||||
int err;
|
int err;
|
||||||
|
|
||||||
@@ -24,7 +33,10 @@ int mc_get_version(struct fsl_mc_io *mc_io,
|
|||||||
return err;
|
return err;
|
||||||
|
|
||||||
/* retrieve response parameters */
|
/* retrieve response parameters */
|
||||||
DPMNG_RSP_GET_VERSION(cmd, mc_ver_info);
|
rsp_params = (struct dpmng_rsp_get_version *)cmd.params;
|
||||||
|
mc_ver_info->revision = le32_to_cpu(rsp_params->revision);
|
||||||
|
mc_ver_info->major = le32_to_cpu(rsp_params->version_major);
|
||||||
|
mc_ver_info->minor = le32_to_cpu(rsp_params->version_minor);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
/* SPDX-License-Identifier: GPL-2.0+ */
|
/* SPDX-License-Identifier: GPL-2.0+ */
|
||||||
/* Copyright 2013-2016 Freescale Semiconductor, Inc.
|
/* Copyright 2013-2016 Freescale Semiconductor, Inc.
|
||||||
* Copyright 2017 NXP
|
* Copyright 2017, 2023 NXP
|
||||||
*/
|
*/
|
||||||
#ifndef __FSL_DPMNG_CMD_H
|
#ifndef __FSL_DPMNG_CMD_H
|
||||||
#define __FSL_DPMNG_CMD_H
|
#define __FSL_DPMNG_CMD_H
|
||||||
@@ -8,12 +8,13 @@
|
|||||||
/* Command IDs */
|
/* Command IDs */
|
||||||
#define DPMNG_CMDID_GET_VERSION 0x8311
|
#define DPMNG_CMDID_GET_VERSION 0x8311
|
||||||
|
|
||||||
/* cmd, param, offset, width, type, arg_name */
|
#pragma pack(push, 1)
|
||||||
#define DPMNG_RSP_GET_VERSION(cmd, mc_ver_info) \
|
struct dpmng_rsp_get_version {
|
||||||
do { \
|
__le32 revision;
|
||||||
MC_RSP_OP(cmd, 0, 0, 32, uint32_t, mc_ver_info->revision); \
|
__le32 version_major;
|
||||||
MC_RSP_OP(cmd, 0, 32, 32, uint32_t, mc_ver_info->major); \
|
__le32 version_minor;
|
||||||
MC_RSP_OP(cmd, 1, 0, 32, uint32_t, mc_ver_info->minor); \
|
};
|
||||||
} while (0)
|
|
||||||
|
#pragma pack(pop)
|
||||||
|
|
||||||
#endif /* __FSL_DPMNG_CMD_H */
|
#endif /* __FSL_DPMNG_CMD_H */
|
||||||
|
@@ -13,8 +13,13 @@
|
|||||||
#include <asm/io.h>
|
#include <asm/io.h>
|
||||||
#include <linux/delay.h>
|
#include <linux/delay.h>
|
||||||
|
|
||||||
#define MC_CMD_HDR_READ_CMDID(_hdr) \
|
static u16 mc_cmd_hdr_read_cmdid(struct mc_command *cmd)
|
||||||
((uint16_t)mc_dec((_hdr), MC_CMD_HDR_CMDID_O, MC_CMD_HDR_CMDID_S))
|
{
|
||||||
|
struct mc_cmd_header *hdr = (struct mc_cmd_header *)&cmd->header;
|
||||||
|
u16 cmd_id = le16_to_cpu(hdr->cmd_id);
|
||||||
|
|
||||||
|
return cmd_id;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* mc_send_command - Send MC command and wait for response
|
* mc_send_command - Send MC command and wait for response
|
||||||
@@ -52,8 +57,8 @@ int mc_send_command(struct fsl_mc_io *mc_io,
|
|||||||
if (status != MC_CMD_STATUS_OK) {
|
if (status != MC_CMD_STATUS_OK) {
|
||||||
printf("Error: MC command failed (portal: %p, obj handle: %#x, command: %#x, status: %#x)\n",
|
printf("Error: MC command failed (portal: %p, obj handle: %#x, command: %#x, status: %#x)\n",
|
||||||
mc_io->mmio_regs,
|
mc_io->mmio_regs,
|
||||||
(unsigned int)MC_CMD_HDR_READ_TOKEN(cmd->header),
|
(unsigned int)mc_cmd_hdr_read_token(cmd),
|
||||||
(unsigned int)MC_CMD_HDR_READ_CMDID(cmd->header),
|
(unsigned int)mc_cmd_hdr_read_cmdid(cmd),
|
||||||
(unsigned int)status);
|
(unsigned int)status);
|
||||||
|
|
||||||
return -EIO;
|
return -EIO;
|
||||||
|
@@ -30,17 +30,6 @@ struct mc_version {
|
|||||||
uint32_t revision;
|
uint32_t revision;
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
int mc_get_version(struct fsl_mc_io *mc_io, uint32_t cmd_flags, struct mc_version *mc_ver_info);
|
||||||
* mc_get_version() - Retrieves the Management Complex firmware
|
|
||||||
* version information
|
|
||||||
* @mc_io: Pointer to opaque I/O object
|
|
||||||
* @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_'
|
|
||||||
* @mc_ver_info: Returned version information structure
|
|
||||||
*
|
|
||||||
* Return: '0' on Success; Error code otherwise.
|
|
||||||
*/
|
|
||||||
int mc_get_version(struct fsl_mc_io *mc_io,
|
|
||||||
uint32_t cmd_flags,
|
|
||||||
struct mc_version *mc_ver_info);
|
|
||||||
|
|
||||||
#endif /* __FSL_DPMNG_H */
|
#endif /* __FSL_DPMNG_H */
|
||||||
|
@@ -83,29 +83,6 @@ enum mc_cmd_status {
|
|||||||
((enum mc_cmd_status)mc_dec((_hdr), \
|
((enum mc_cmd_status)mc_dec((_hdr), \
|
||||||
MC_CMD_HDR_STATUS_O, MC_CMD_HDR_STATUS_S))
|
MC_CMD_HDR_STATUS_O, MC_CMD_HDR_STATUS_S))
|
||||||
|
|
||||||
#define MC_CMD_HDR_READ_TOKEN(_hdr) \
|
|
||||||
((uint16_t)mc_dec((_hdr), MC_CMD_HDR_TOKEN_O, MC_CMD_HDR_TOKEN_S))
|
|
||||||
|
|
||||||
#define MC_PREP_OP(_ext, _param, _offset, _width, _type, _arg) \
|
|
||||||
((_ext)[_param] |= cpu_to_le64(mc_enc((_offset), (_width), _arg)))
|
|
||||||
|
|
||||||
#define MC_EXT_OP(_ext, _param, _offset, _width, _type, _arg) \
|
|
||||||
(_arg = (_type)mc_dec(cpu_to_le64(_ext[_param]), (_offset), (_width)))
|
|
||||||
|
|
||||||
#define MC_CMD_OP(_cmd, _param, _offset, _width, _type, _arg) \
|
|
||||||
((_cmd).params[_param] |= mc_enc((_offset), (_width), _arg))
|
|
||||||
|
|
||||||
#define MC_RSP_OP(_cmd, _param, _offset, _width, _type, _arg) \
|
|
||||||
(_arg = (_type)mc_dec(_cmd.params[_param], (_offset), (_width)))
|
|
||||||
|
|
||||||
/* cmd, param, offset, width, type, arg_name */
|
|
||||||
#define MC_CMD_READ_OBJ_ID(cmd, obj_id) \
|
|
||||||
MC_RSP_OP(cmd, 0, 0, 32, uint32_t, obj_id)
|
|
||||||
|
|
||||||
/* cmd, param, offset, width, type, arg_name */
|
|
||||||
#define CMD_DESTROY_SET_OBJ_ID_PARAM0(cmd, object_id) \
|
|
||||||
MC_CMD_OP(cmd, 0, 0, 32, uint32_t, object_id)
|
|
||||||
|
|
||||||
static inline uint64_t mc_encode_cmd_header(uint16_t cmd_id,
|
static inline uint64_t mc_encode_cmd_header(uint16_t cmd_id,
|
||||||
uint32_t cmd_flags,
|
uint32_t cmd_flags,
|
||||||
uint16_t token)
|
uint16_t token)
|
||||||
|
Reference in New Issue
Block a user