On 18/11/15 16:45, Hartley Sweeten wrote:
On Wednesday, November 18, 2015 9:42 AM, Ian Abbott wrote:
On 16/11/15 17:18, Ranjith Thangavel wrote:
  [snip]
-#define DMM32AT_AI_CFG_SCINT_20US      (0 << 4)
-#define DMM32AT_AI_CFG_SCINT_15US      (1 << 4)
-#define DMM32AT_AI_CFG_SCINT_10US      (2 << 4)
-#define DMM32AT_AI_CFG_SCINT_5US       (3 << 4)
-#define DMM32AT_AI_CFG_RANGE           (1 << 3)  /* 0=5V  1=10V */
-#define DMM32AT_AI_CFG_ADBU            (1 << 2)  /* 0=bipolar  1=unipolar */
+#define DMM32AT_AI_CFG_SCINT_20US      0
+#define DMM32AT_AI_CFG_SCINT_15US      BIT(4)
+#define DMM32AT_AI_CFG_SCINT_10US      (BIT(5) & ~BIT(4))

The `(BIT(5) & ~BIT(4))` is a bit ugly.  You can just use `BIT(5)` to
fit in with the style of your other changes.

  (Personally though, I don't think BIT() is appropriate for shifted,
multi-bit values.)

It would be more appropriate as a macro:

#define DMM32AT_AI_CFG_SCINT(x)         (((x) & 0x3) << 4)
#define DMM32AT_AI_CFG_SCINT_20US       DMM32AT_AI_CFG_SCINT (0)
#define DMM32AT_AI_CFG_SCINT_15US       DMM32AT_AI_CFG_SCINT (1)
#define DMM32AT_AI_CFG_SCINT_10US       DMM32AT_AI_CFG_SCINT (2)
#define DMM32AT_AI_CFG_SCINT_5US        DMM32AT_AI_CFG_SCINT (3)

Yes, but without the spaces in the macro calls!

It's slightly surprising no one has pushed a generic macro for this sort of thing, maybe something like:

#define MBIT(v, s)      ((v) * BIT(s))

although the name sucks - maybe the problem is thinking up a decent name!

--
-=( Ian Abbott @ MEV Ltd.    E-mail: <abbo...@mev.co.uk> )=-
-=(                          Web: http://www.mev.co.uk/  )=-
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to