soc: qcom: geni: Make version macros simpler
authorStephen Boyd <swboyd@chromium.org>
Fri, 18 May 2018 22:47:50 +0000 (15:47 -0700)
committerAndy Gross <andy.gross@linaro.org>
Mon, 24 Sep 2018 04:28:00 +0000 (21:28 -0700)
This macro doesn't work, because it hides a local variable inside of the
macro to hold the version and that variable name is called 'ver' and
'version' sometimes.

Let's change this to be more explicit. Introduce three macros for the
major, minor, and step of the version, and require callers to pass the
version in to get the part of the version out. This way we don't hide
local variables inside macros and things are less evil overall.

Cc: Karthikeyan Ramasubramanian <kramasub@codeaurora.org>
Cc: Sagar Dharia <sdharia@codeaurora.org>
Cc: Girish Mahadevan <girishm@codeaurora.org>
Signed-off-by: Stephen Boyd <swboyd@chromium.org>
Reviewed-by: Douglas Anderson <dianders@chromium.org>
Reviewed-by: Bjorn Andersson <bjorn.andersson@linaro.org>
Signed-off-by: Andy Gross <andy.gross@linaro.org>
include/linux/qcom-geni-se.h

index 5d61449778287c508d36377792984a7b15e5ccce..3bcd67fd554851bbf7f928989d5f78817d547efc 100644 (file)
@@ -225,19 +225,14 @@ struct geni_se {
 #define HW_VER_MINOR_SHFT              16
 #define HW_VER_STEP_MASK               GENMASK(15, 0)
 
+#define GENI_SE_VERSION_MAJOR(ver) ((ver & HW_VER_MAJOR_MASK) >> HW_VER_MAJOR_SHFT)
+#define GENI_SE_VERSION_MINOR(ver) ((ver & HW_VER_MINOR_MASK) >> HW_VER_MINOR_SHFT)
+#define GENI_SE_VERSION_STEP(ver) (ver & HW_VER_STEP_MASK)
+
 #if IS_ENABLED(CONFIG_QCOM_GENI_SE)
 
 u32 geni_se_get_qup_hw_version(struct geni_se *se);
 
-#define geni_se_get_wrapper_version(se, major, minor, step) do { \
-       u32 ver; \
-\
-       ver = geni_se_get_qup_hw_version(se); \
-       major = (ver & HW_VER_MAJOR_MASK) >> HW_VER_MAJOR_SHFT; \
-       minor = (ver & HW_VER_MINOR_MASK) >> HW_VER_MINOR_SHFT; \
-       step = version & HW_VER_STEP_MASK; \
-} while (0)
-
 /**
  * geni_se_read_proto() - Read the protocol configured for a serial engine
  * @se:                Pointer to the concerned serial engine.