]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
soc: qcom: Rework BCM_TCS_CMD macro
authorEugen Hristev <eugen.hristev@linaro.org>
Fri, 29 Nov 2024 14:24:46 +0000 (16:24 +0200)
committerBjorn Andersson <andersson@kernel.org>
Thu, 26 Dec 2024 05:44:41 +0000 (23:44 -0600)
Reworked BCM_TCS_CMD macro in order to fix warnings from sparse:

drivers/clk/qcom/clk-rpmh.c:270:28: warning: restricted __le32 degrades to integer
drivers/clk/qcom/clk-rpmh.c:270:28: warning: restricted __le32 degrades to integer

While at it, used u32_encode_bits which made the code easier to
follow and removed unnecessary shift definitions.

The use of cpu_to_le32 was wrong and thus removed.

Signed-off-by: Eugen Hristev <eugen.hristev@linaro.org>
Reviewed-by: Stephen Boyd <sboyd@kernel.org>
Link: https://lore.kernel.org/r/20241129142446.407443-1-eugen.hristev@linaro.org
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
include/soc/qcom/tcs.h

index 3acca067c72b14396f273a65baf9c52868ab2348..cff67ce25488e2d3603a7707af2ca77f8266a713 100644 (file)
@@ -6,6 +6,9 @@
 #ifndef __SOC_QCOM_TCS_H__
 #define __SOC_QCOM_TCS_H__
 
+#include <linux/bitfield.h>
+#include <linux/bits.h>
+
 #define MAX_RPMH_PAYLOAD       16
 
 /**
@@ -60,22 +63,17 @@ struct tcs_request {
        struct tcs_cmd *cmds;
 };
 
-#define BCM_TCS_CMD_COMMIT_SHFT                30
-#define BCM_TCS_CMD_COMMIT_MASK                0x40000000
-#define BCM_TCS_CMD_VALID_SHFT         29
-#define BCM_TCS_CMD_VALID_MASK         0x20000000
-#define BCM_TCS_CMD_VOTE_X_SHFT                14
-#define BCM_TCS_CMD_VOTE_MASK          0x3fff
-#define BCM_TCS_CMD_VOTE_Y_SHFT                0
-#define BCM_TCS_CMD_VOTE_Y_MASK                0xfffc000
+#define BCM_TCS_CMD_COMMIT_MASK                BIT(30)
+#define BCM_TCS_CMD_VALID_MASK         BIT(29)
+#define BCM_TCS_CMD_VOTE_MASK          GENMASK(13, 0)
+#define BCM_TCS_CMD_VOTE_Y_MASK                GENMASK(13, 0)
+#define BCM_TCS_CMD_VOTE_X_MASK                GENMASK(27, 14)
 
 /* Construct a Bus Clock Manager (BCM) specific TCS command */
 #define BCM_TCS_CMD(commit, valid, vote_x, vote_y)             \
-       (((commit) << BCM_TCS_CMD_COMMIT_SHFT) |                \
-       ((valid) << BCM_TCS_CMD_VALID_SHFT) |                   \
-       ((cpu_to_le32(vote_x) &                                 \
-       BCM_TCS_CMD_VOTE_MASK) << BCM_TCS_CMD_VOTE_X_SHFT) |    \
-       ((cpu_to_le32(vote_y) &                                 \
-       BCM_TCS_CMD_VOTE_MASK) << BCM_TCS_CMD_VOTE_Y_SHFT))
+       (u32_encode_bits(commit, BCM_TCS_CMD_COMMIT_MASK) |     \
+       u32_encode_bits(valid, BCM_TCS_CMD_VALID_MASK) |        \
+       u32_encode_bits(vote_x, BCM_TCS_CMD_VOTE_X_MASK) |      \
+       u32_encode_bits(vote_y, BCM_TCS_CMD_VOTE_Y_MASK))
 
 #endif /* __SOC_QCOM_TCS_H__ */