OSDN Git Service

firmware: arm_scmi: Move macros and helpers to common.h
authorViresh Kumar <viresh.kumar@linaro.org>
Fri, 31 Jan 2020 05:28:12 +0000 (10:58 +0530)
committerSudeep Holla <sudeep.holla@arm.com>
Mon, 10 Feb 2020 11:50:47 +0000 (11:50 +0000)
Move message header specific macros and helper routines to common.h as
they will be used outside of driver.c in a later commit.

Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
Link: https://lore.kernel.org/r/6615db480370719b0a0241447a5f3feb8eea421f.1580448239.git.viresh.kumar@linaro.org
Signed-off-by: Sudeep Holla <sudeep.holla@arm.com>
drivers/firmware/arm_scmi/common.h
drivers/firmware/arm_scmi/driver.c

index 2279348..934b5a2 100644 (file)
@@ -47,6 +47,19 @@ struct scmi_msg_resp_prot_version {
        __le16 major_version;
 };
 
+#define MSG_ID_MASK            GENMASK(7, 0)
+#define MSG_XTRACT_ID(hdr)     FIELD_GET(MSG_ID_MASK, (hdr))
+#define MSG_TYPE_MASK          GENMASK(9, 8)
+#define MSG_XTRACT_TYPE(hdr)   FIELD_GET(MSG_TYPE_MASK, (hdr))
+#define MSG_TYPE_COMMAND       0
+#define MSG_TYPE_DELAYED_RESP  2
+#define MSG_TYPE_NOTIFICATION  3
+#define MSG_PROTOCOL_ID_MASK   GENMASK(17, 10)
+#define MSG_XTRACT_PROT_ID(hdr)        FIELD_GET(MSG_PROTOCOL_ID_MASK, (hdr))
+#define MSG_TOKEN_ID_MASK      GENMASK(27, 18)
+#define MSG_XTRACT_TOKEN(hdr)  FIELD_GET(MSG_TOKEN_ID_MASK, (hdr))
+#define MSG_TOKEN_MAX          (MSG_XTRACT_TOKEN(MSG_TOKEN_ID_MASK) + 1)
+
 /**
  * struct scmi_msg_hdr - Message(Tx/Rx) header
  *
@@ -68,6 +81,33 @@ struct scmi_msg_hdr {
 };
 
 /**
+ * pack_scmi_header() - packs and returns 32-bit header
+ *
+ * @hdr: pointer to header containing all the information on message id,
+ *     protocol id and sequence id.
+ *
+ * Return: 32-bit packed message header to be sent to the platform.
+ */
+static inline u32 pack_scmi_header(struct scmi_msg_hdr *hdr)
+{
+       return FIELD_PREP(MSG_ID_MASK, hdr->id) |
+               FIELD_PREP(MSG_TOKEN_ID_MASK, hdr->seq) |
+               FIELD_PREP(MSG_PROTOCOL_ID_MASK, hdr->protocol_id);
+}
+
+/**
+ * unpack_scmi_header() - unpacks and records message and protocol id
+ *
+ * @msg_hdr: 32-bit packed message header sent from the platform
+ * @hdr: pointer to header to fetch message and protocol id.
+ */
+static inline void unpack_scmi_header(u32 msg_hdr, struct scmi_msg_hdr *hdr)
+{
+       hdr->id = MSG_XTRACT_ID(msg_hdr);
+       hdr->protocol_id = MSG_XTRACT_PROT_ID(msg_hdr);
+}
+
+/**
  * struct scmi_msg - Message(Tx/Rx) structure
  *
  * @buf: Buffer pointer
index 978eafb..7164230 100644 (file)
 #define CREATE_TRACE_POINTS
 #include <trace/events/scmi.h>
 
-#define MSG_ID_MASK            GENMASK(7, 0)
-#define MSG_XTRACT_ID(hdr)     FIELD_GET(MSG_ID_MASK, (hdr))
-#define MSG_TYPE_MASK          GENMASK(9, 8)
-#define MSG_XTRACT_TYPE(hdr)   FIELD_GET(MSG_TYPE_MASK, (hdr))
-#define MSG_TYPE_COMMAND       0
-#define MSG_TYPE_DELAYED_RESP  2
-#define MSG_TYPE_NOTIFICATION  3
-#define MSG_PROTOCOL_ID_MASK   GENMASK(17, 10)
-#define MSG_XTRACT_PROT_ID(hdr)        FIELD_GET(MSG_PROTOCOL_ID_MASK, (hdr))
-#define MSG_TOKEN_ID_MASK      GENMASK(27, 18)
-#define MSG_XTRACT_TOKEN(hdr)  FIELD_GET(MSG_TOKEN_ID_MASK, (hdr))
-#define MSG_TOKEN_MAX          (MSG_XTRACT_TOKEN(MSG_TOKEN_ID_MASK) + 1)
-
 enum scmi_error_codes {
        SCMI_SUCCESS = 0,       /* Success */
        SCMI_ERR_SUPPORT = -1,  /* Not supported */
@@ -211,33 +198,6 @@ static void scmi_fetch_response(struct scmi_xfer *xfer,
 }
 
 /**
- * pack_scmi_header() - packs and returns 32-bit header
- *
- * @hdr: pointer to header containing all the information on message id,
- *     protocol id and sequence id.
- *
- * Return: 32-bit packed message header to be sent to the platform.
- */
-static inline u32 pack_scmi_header(struct scmi_msg_hdr *hdr)
-{
-       return FIELD_PREP(MSG_ID_MASK, hdr->id) |
-               FIELD_PREP(MSG_TOKEN_ID_MASK, hdr->seq) |
-               FIELD_PREP(MSG_PROTOCOL_ID_MASK, hdr->protocol_id);
-}
-
-/**
- * unpack_scmi_header() - unpacks and records message and protocol id
- *
- * @msg_hdr: 32-bit packed message header sent from the platform
- * @hdr: pointer to header to fetch message and protocol id.
- */
-static inline void unpack_scmi_header(u32 msg_hdr, struct scmi_msg_hdr *hdr)
-{
-       hdr->id = MSG_XTRACT_ID(msg_hdr);
-       hdr->protocol_id = MSG_XTRACT_PROT_ID(msg_hdr);
-}
-
-/**
  * scmi_tx_prepare() - mailbox client callback to prepare for the transfer
  *
  * @cl: client pointer