drm/i915: Convert REG_GENMASK*() to fixed-width GENMASK_U*()
Now that include/linux/bits.h implements fixed-width GENMASK_U*(), use them to implement the i915/xe specific macros. Converting each driver to use the generic macros are left for later, when/if other driver-specific macros are also generalized. Signed-off-by: Lucas De Marchi <lucas.demarchi@intel.com> Acked-by: Jani Nikula <jani.nikula@intel.com> Signed-off-by: Vincent Mailhol <mailhol.vincent@wanadoo.fr> Signed-off-by: Yury Norov <yury.norov@gmail.com>
This commit is contained in:
committed by
Yury Norov
parent
5b572e8a9f
commit
4fd225f7ad
@@ -9,76 +9,19 @@
|
||||
#include <linux/bitfield.h>
|
||||
#include <linux/bits.h>
|
||||
|
||||
/**
|
||||
* REG_BIT() - Prepare a u32 bit value
|
||||
* @__n: 0-based bit number
|
||||
*
|
||||
* Local wrapper for BIT() to force u32, with compile time checks.
|
||||
*
|
||||
* @return: Value with bit @__n set.
|
||||
/*
|
||||
* Wrappers over the generic fixed width BIT_U*() and GENMASK_U*()
|
||||
* implementations, for compatibility reasons with previous implementation.
|
||||
*/
|
||||
#define REG_BIT(__n) \
|
||||
((u32)(BIT(__n) + \
|
||||
BUILD_BUG_ON_ZERO(__is_constexpr(__n) && \
|
||||
((__n) < 0 || (__n) > 31))))
|
||||
#define REG_GENMASK(high, low) GENMASK_U32(high, low)
|
||||
#define REG_GENMASK64(high, low) GENMASK_U64(high, low)
|
||||
#define REG_GENMASK16(high, low) GENMASK_U16(high, low)
|
||||
#define REG_GENMASK8(high, low) GENMASK_U8(high, low)
|
||||
|
||||
/**
|
||||
* REG_BIT8() - Prepare a u8 bit value
|
||||
* @__n: 0-based bit number
|
||||
*
|
||||
* Local wrapper for BIT() to force u8, with compile time checks.
|
||||
*
|
||||
* @return: Value with bit @__n set.
|
||||
*/
|
||||
#define REG_BIT8(__n) \
|
||||
((u8)(BIT(__n) + \
|
||||
BUILD_BUG_ON_ZERO(__is_constexpr(__n) && \
|
||||
((__n) < 0 || (__n) > 7))))
|
||||
|
||||
/**
|
||||
* REG_GENMASK() - Prepare a continuous u32 bitmask
|
||||
* @__high: 0-based high bit
|
||||
* @__low: 0-based low bit
|
||||
*
|
||||
* Local wrapper for GENMASK() to force u32, with compile time checks.
|
||||
*
|
||||
* @return: Continuous bitmask from @__high to @__low, inclusive.
|
||||
*/
|
||||
#define REG_GENMASK(__high, __low) \
|
||||
((u32)(GENMASK(__high, __low) + \
|
||||
BUILD_BUG_ON_ZERO(__is_constexpr(__high) && \
|
||||
__is_constexpr(__low) && \
|
||||
((__low) < 0 || (__high) > 31 || (__low) > (__high)))))
|
||||
|
||||
/**
|
||||
* REG_GENMASK64() - Prepare a continuous u64 bitmask
|
||||
* @__high: 0-based high bit
|
||||
* @__low: 0-based low bit
|
||||
*
|
||||
* Local wrapper for GENMASK_ULL() to force u64, with compile time checks.
|
||||
*
|
||||
* @return: Continuous bitmask from @__high to @__low, inclusive.
|
||||
*/
|
||||
#define REG_GENMASK64(__high, __low) \
|
||||
((u64)(GENMASK_ULL(__high, __low) + \
|
||||
BUILD_BUG_ON_ZERO(__is_constexpr(__high) && \
|
||||
__is_constexpr(__low) && \
|
||||
((__low) < 0 || (__high) > 63 || (__low) > (__high)))))
|
||||
|
||||
/**
|
||||
* REG_GENMASK8() - Prepare a continuous u8 bitmask
|
||||
* @__high: 0-based high bit
|
||||
* @__low: 0-based low bit
|
||||
*
|
||||
* Local wrapper for GENMASK() to force u8, with compile time checks.
|
||||
*
|
||||
* @return: Continuous bitmask from @__high to @__low, inclusive.
|
||||
*/
|
||||
#define REG_GENMASK8(__high, __low) \
|
||||
((u8)(GENMASK(__high, __low) + \
|
||||
BUILD_BUG_ON_ZERO(__is_constexpr(__high) && \
|
||||
__is_constexpr(__low) && \
|
||||
((__low) < 0 || (__high) > 7 || (__low) > (__high)))))
|
||||
#define REG_BIT(n) BIT_U32(n)
|
||||
#define REG_BIT64(n) BIT_U64(n)
|
||||
#define REG_BIT16(n) BIT_U16(n)
|
||||
#define REG_BIT8(n) BIT_U8(n)
|
||||
|
||||
/*
|
||||
* Local integer constant expression version of is_power_of_2().
|
||||
@@ -143,35 +86,6 @@
|
||||
*/
|
||||
#define REG_FIELD_GET64(__mask, __val) ((u64)FIELD_GET(__mask, __val))
|
||||
|
||||
/**
|
||||
* REG_BIT16() - Prepare a u16 bit value
|
||||
* @__n: 0-based bit number
|
||||
*
|
||||
* Local wrapper for BIT() to force u16, with compile time
|
||||
* checks.
|
||||
*
|
||||
* @return: Value with bit @__n set.
|
||||
*/
|
||||
#define REG_BIT16(__n) \
|
||||
((u16)(BIT(__n) + \
|
||||
BUILD_BUG_ON_ZERO(__is_constexpr(__n) && \
|
||||
((__n) < 0 || (__n) > 15))))
|
||||
|
||||
/**
|
||||
* REG_GENMASK16() - Prepare a continuous u8 bitmask
|
||||
* @__high: 0-based high bit
|
||||
* @__low: 0-based low bit
|
||||
*
|
||||
* Local wrapper for GENMASK() to force u16, with compile time
|
||||
* checks.
|
||||
*
|
||||
* @return: Continuous bitmask from @__high to @__low, inclusive.
|
||||
*/
|
||||
#define REG_GENMASK16(__high, __low) \
|
||||
((u16)(GENMASK(__high, __low) + \
|
||||
BUILD_BUG_ON_ZERO(__is_constexpr(__high) && \
|
||||
__is_constexpr(__low) && \
|
||||
((__low) < 0 || (__high) > 15 || (__low) > (__high)))))
|
||||
|
||||
/**
|
||||
* REG_FIELD_PREP16() - Prepare a u16 bitfield value
|
||||
|
||||
Reference in New Issue
Block a user