diff options
author | Jani Nikula <jani.nikula@intel.com> | 2022-11-09 18:35:20 +0300 |
---|---|---|
committer | Jani Nikula <jani.nikula@intel.com> | 2022-11-11 13:33:35 +0300 |
commit | 81e78b13bdf7829bed0ad1a1dfe51293a8f676f3 (patch) | |
tree | 813521b843233163e89051c3fb7f137a50e1189f /drivers/gpu/drm/i915/i915_reg_defs.h | |
parent | da2549576b7be2b465908709dad50810a084cce4 (diff) | |
download | linux-81e78b13bdf7829bed0ad1a1dfe51293a8f676f3.tar.xz |
drm/i915/reg: move pick even and pick to reg defs
This is a more logical place for generic helpers.
Cc: Lucas De Marchi <lucas.demarchi@intel.com>
Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/623327aee73a515300d99c8d65552ca92f3f0721.1668008071.git.jani.nikula@intel.com
Diffstat (limited to 'drivers/gpu/drm/i915/i915_reg_defs.h')
-rw-r--r-- | drivers/gpu/drm/i915/i915_reg_defs.h | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/drivers/gpu/drm/i915/i915_reg_defs.h b/drivers/gpu/drm/i915/i915_reg_defs.h index 7536f1b72778..344e5006650e 100644 --- a/drivers/gpu/drm/i915/i915_reg_defs.h +++ b/drivers/gpu/drm/i915/i915_reg_defs.h @@ -111,6 +111,21 @@ #define _MASKED_BIT_ENABLE(a) ({ typeof(a) _a = (a); _MASKED_FIELD(_a, _a); }) #define _MASKED_BIT_DISABLE(a) (_MASKED_FIELD((a), 0)) +/* + * Given the first two numbers __a and __b of arbitrarily many evenly spaced + * numbers, pick the 0-based __index'th value. + * + * Always prefer this over _PICK() if the numbers are evenly spaced. + */ +#define _PICK_EVEN(__index, __a, __b) ((__a) + (__index) * ((__b) - (__a))) + +/* + * Given the arbitrary numbers in varargs, pick the 0-based __index'th number. + * + * Always prefer _PICK_EVEN() over this if the numbers are evenly spaced. + */ +#define _PICK(__index, ...) (((const u32 []){ __VA_ARGS__ })[__index]) + typedef struct { u32 reg; } i915_reg_t; |