]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
net: fsl-mc: sync remaining MC commands
authorIoana Ciornei <ioana.ciornei@nxp.com>
Wed, 31 May 2023 16:04:36 +0000 (19:04 +0300)
committerPeng Fan <peng.fan@nxp.com>
Thu, 15 Jun 2023 09:58:53 +0000 (17:58 +0800)
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>
drivers/net/fsl-mc/dpmng.c
drivers/net/fsl-mc/fsl_dpmng_cmd.h
drivers/net/fsl-mc/mc_sys.c
include/fsl-mc/fsl_dpmng.h
include/fsl-mc/fsl_mc_cmd.h

index 8314243f35615aa0fdeadafb5328268114447de0..147ca6da9e1f58a3937638d907c597fb4251a2f0 100644 (file)
@@ -1,15 +1,24 @@
 // SPDX-License-Identifier: GPL-2.0+
 /* Copyright 2013-2015 Freescale Semiconductor Inc.
+ * Copyright 2023 NXP
  */
 #include <fsl-mc/fsl_mc_sys.h>
 #include <fsl-mc/fsl_mc_cmd.h>
 #include <fsl-mc/fsl_dpmng.h>
 #include "fsl_dpmng_cmd.h"
 
-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)
 {
+       struct dpmng_rsp_get_version *rsp_params;
        struct mc_command cmd = { 0 };
        int err;
 
@@ -24,7 +33,10 @@ int mc_get_version(struct fsl_mc_io *mc_io,
                return err;
 
        /* 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;
 }
index e18c88da09729daee7acc0b277c39bd49032dfe4..e6efceab7acced7f53e7304421df9d777eee1b7f 100644 (file)
@@ -1,6 +1,6 @@
 /* SPDX-License-Identifier: GPL-2.0+ */
 /* Copyright 2013-2016 Freescale Semiconductor, Inc.
- * Copyright 2017 NXP
+ * Copyright 2017, 2023 NXP
  */
 #ifndef __FSL_DPMNG_CMD_H
 #define __FSL_DPMNG_CMD_H
@@ -8,12 +8,13 @@
 /* Command IDs */
 #define DPMNG_CMDID_GET_VERSION                        0x8311
 
-/*                cmd, param, offset, width, type, arg_name */
-#define DPMNG_RSP_GET_VERSION(cmd, mc_ver_info) \
-do { \
-       MC_RSP_OP(cmd, 0, 0,  32, uint32_t, mc_ver_info->revision); \
-       MC_RSP_OP(cmd, 0, 32, 32, uint32_t, mc_ver_info->major); \
-       MC_RSP_OP(cmd, 1, 0,  32, uint32_t, mc_ver_info->minor); \
-} while (0)
+#pragma pack(push, 1)
+struct dpmng_rsp_get_version {
+       __le32 revision;
+       __le32 version_major;
+       __le32 version_minor;
+};
+
+#pragma pack(pop)
 
 #endif /* __FSL_DPMNG_CMD_H */
index b5ae2ea3eb56db1920a0e123c0190153ffa0f32d..4d32516b005541c5dcd00d5e505660173b1fc5b0 100644 (file)
 #include <asm/io.h>
 #include <linux/delay.h>
 
-#define MC_CMD_HDR_READ_CMDID(_hdr) \
-       ((uint16_t)mc_dec((_hdr), MC_CMD_HDR_CMDID_O, MC_CMD_HDR_CMDID_S))
+static u16 mc_cmd_hdr_read_cmdid(struct mc_command *cmd)
+{
+       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
@@ -52,8 +57,8 @@ int mc_send_command(struct fsl_mc_io *mc_io,
        if (status != MC_CMD_STATUS_OK) {
                printf("Error: MC command failed (portal: %p, obj handle: %#x, command: %#x, status: %#x)\n",
                       mc_io->mmio_regs,
-                       (unsigned int)MC_CMD_HDR_READ_TOKEN(cmd->header),
-                      (unsigned int)MC_CMD_HDR_READ_CMDID(cmd->header),
+                       (unsigned int)mc_cmd_hdr_read_token(cmd),
+                      (unsigned int)mc_cmd_hdr_read_cmdid(cmd),
                       (unsigned int)status);
 
                return -EIO;
index 2148601e8a12c457b0295fcadb52c69f7059ecbd..5dfc9ecc4281638d7c0b7c76d358565df885f1e8 100644 (file)
@@ -30,17 +30,6 @@ struct mc_version {
        uint32_t revision;
 };
 
-/**
- * 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);
+int mc_get_version(struct fsl_mc_io *mc_io, uint32_t cmd_flags, struct mc_version *mc_ver_info);
 
 #endif /* __FSL_DPMNG_H */
index 6fe5fa4eddaf9143e0f8567708048fb6a74c36b8..c239595ed57763e0fd74d08bcad8d55c54864eda 100644 (file)
@@ -83,29 +83,6 @@ enum mc_cmd_status {
        ((enum mc_cmd_status)mc_dec((_hdr), \
                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,
                                            uint32_t cmd_flags,
                                            uint16_t token)