On Thu, Feb 3, 2022 at 12:58 PM Jani Nikula jani.nikula@intel.com wrote:
On Mon, 27 Sep 2021, Fangzhi Zuo Jerry.Zuo@amd.com wrote:
+/* DSC Extended Capability Branch Total DSC Resources */ +#define DP_DSC_SUPPORT_AND_DSC_DECODER_COUNT 0x2260 /* 2.0 */ +# define DP_DSC_DECODER_COUNT_MASK (0b111 << 5) +# define DP_DSC_DECODER_COUNT_SHIFT 5 +#define DP_DSC_MAX_SLICE_COUNT_AND_AGGREGATION_0 0x2270 /* 2.0 */ +# define DP_DSC_DECODER_0_MAXIMUM_SLICE_COUNT_MASK (1 << 0) +# define DP_DSC_DECODER_0_AGGREGATION_SUPPORT_MASK (0b111 << 1) +# define DP_DSC_DECODER_0_AGGREGATION_SUPPORT_SHIFT 1
The patch was merged a while back, but only now I noticed the use of binary constants, which in C is a GCC and Clang extension [1][2]. There are some instances in the kernel, but not a whole lot.
Do we want to avoid or embrace them going forward? Or meh?
$ git grep '<0b[01]*>'
Gives me almost exclusive hits in - .rst files - .S assembler files - comments and strings
So I think probably not? I mean there's also BIT() and BIT_MASK() macros and stuff like that, and reading small masks is pretty simple. -Daniel
BR, Jani.
[1] https://gcc.gnu.org/onlinedocs/gcc/Binary-constants.html [2] https://clang.llvm.org/docs/LanguageExtensions.html#c-14-binary-literals
-- Jani Nikula, Intel Open Source Graphics Center