From: Daniele Ceraolo Spurio Date: Tue, 18 Feb 2020 22:33:22 +0000 (-0800) Subject: drm/i915/uc: autogenerate uC checker functions X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=4c467d5dcd614330fe22dac5be5cc0957356f2d8;p=uclinux-h8%2Flinux.git drm/i915/uc: autogenerate uC checker functions We want to map uC-level checks to GuC/HuC-level ones. The mapping from the uC state to the GuC/HuC one follows the same pattern for all the functions: uc_xxx_guc() -> guc_is_yyy() So we can easily use a macro to autogenerate the functions via macros by passing in the 2 mapped states. v2: Split this change to its own patch (Michal) Signed-off-by: Daniele Ceraolo Spurio Cc: Michal Wajdeczko Reviewed-by: Andi Shyti Signed-off-by: Chris Wilson Link: https://patchwork.freedesktop.org/patch/msgid/20200218223327.11058-5-daniele.ceraolospurio@intel.com --- diff --git a/drivers/gpu/drm/i915/gt/uc/intel_uc.h b/drivers/gpu/drm/i915/gt/uc/intel_uc.h index 49c913524686..2ce993ceb60a 100644 --- a/drivers/gpu/drm/i915/gt/uc/intel_uc.h +++ b/drivers/gpu/drm/i915/gt/uc/intel_uc.h @@ -40,15 +40,21 @@ void intel_uc_runtime_suspend(struct intel_uc *uc); int intel_uc_resume(struct intel_uc *uc); int intel_uc_runtime_resume(struct intel_uc *uc); -static inline bool intel_uc_supports_guc(struct intel_uc *uc) -{ - return intel_guc_is_supported(&uc->guc); +#define __uc_state_checker(x, state, required) \ +static inline bool intel_uc_##state##_##x(struct intel_uc *uc) \ +{ \ + return intel_##x##_is_##required(&uc->x); \ } -static inline bool intel_uc_uses_guc(struct intel_uc *uc) -{ - return intel_guc_is_enabled(&uc->guc); -} +#define uc_state_checkers(x) \ +__uc_state_checker(x, supports, supported) \ +__uc_state_checker(x, uses, enabled) + +uc_state_checkers(guc); +uc_state_checkers(huc); + +#undef uc_state_checkers +#undef __uc_state_checker static inline bool intel_uc_supports_guc_submission(struct intel_uc *uc) { @@ -60,16 +66,6 @@ static inline bool intel_uc_uses_guc_submission(struct intel_uc *uc) return intel_guc_is_submission_supported(&uc->guc); } -static inline bool intel_uc_supports_huc(struct intel_uc *uc) -{ - return intel_uc_supports_guc(uc); -} - -static inline bool intel_uc_uses_huc(struct intel_uc *uc) -{ - return intel_huc_is_enabled(&uc->huc); -} - #define intel_uc_ops_function(_NAME, _OPS, _TYPE, _RET) \ static inline _TYPE intel_uc_##_NAME(struct intel_uc *uc) \ { \