On Fri 18 May 15:47 PDT 2018, Stephen Boyd wrote: > 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@xxxxxxxxxxxxxx> > Cc: Sagar Dharia <sdharia@xxxxxxxxxxxxxx> > Cc: Girish Mahadevan <girishm@xxxxxxxxxxxxxx> > Signed-off-by: Stephen Boyd <swboyd@xxxxxxxxxxxx> I was expecting that someone referenced this macro, but I guess that's coming? Reviewed-by: Bjorn Andersson <bjorn.andersson@xxxxxxxxxx> Regards, Bjorn > --- > include/linux/qcom-geni-se.h | 13 ++++--------- > 1 file changed, 4 insertions(+), 9 deletions(-) > > diff --git a/include/linux/qcom-geni-se.h b/include/linux/qcom-geni-se.h > index 5d6144977828..3bcd67fd5548 100644 > --- a/include/linux/qcom-geni-se.h > +++ b/include/linux/qcom-geni-se.h > @@ -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. > -- > Sent by a computer through tubes > > -- > To unsubscribe from this list: send the line "unsubscribe linux-arm-msm" in > the body of a message to majordomo@xxxxxxxxxxxxxxx > More majordomo info at http://vger.kernel.org/majordomo-info.html -- To unsubscribe from this list: send the line "unsubscribe linux-arm-msm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html