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:
Ioana Ciornei
2023-05-31 19:04:36 +03:00
committed by Peng Fan
parent 0aebee70bb
commit 5654ffa8f1
5 changed files with 35 additions and 51 deletions

View File

@@ -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;
} }

View File

@@ -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 */

View File

@@ -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;

View File

@@ -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 */

View File

@@ -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)