Commit 4c467d5d authored by Daniele Ceraolo Spurio's avatar Daniele Ceraolo Spurio Committed by Chris Wilson

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: default avatarDaniele Ceraolo Spurio <daniele.ceraolospurio@intel.com>
Cc: Michal Wajdeczko <michal.wajdeczko@intel.com>
Reviewed-by: default avatarAndi Shyti <andi.shyti@intel.com>
Signed-off-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
Link: https://patchwork.freedesktop.org/patch/msgid/20200218223327.11058-5-daniele.ceraolospurio@intel.com
parent 7a8c9b73
...@@ -40,15 +40,21 @@ void intel_uc_runtime_suspend(struct intel_uc *uc); ...@@ -40,15 +40,21 @@ void intel_uc_runtime_suspend(struct intel_uc *uc);
int intel_uc_resume(struct intel_uc *uc); int intel_uc_resume(struct intel_uc *uc);
int intel_uc_runtime_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) #define __uc_state_checker(x, state, required) \
{ static inline bool intel_uc_##state##_##x(struct intel_uc *uc) \
return intel_guc_is_supported(&uc->guc); { \
return intel_##x##_is_##required(&uc->x); \
} }
static inline bool intel_uc_uses_guc(struct intel_uc *uc) #define uc_state_checkers(x) \
{ __uc_state_checker(x, supports, supported) \
return intel_guc_is_enabled(&uc->guc); __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) 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) ...@@ -60,16 +66,6 @@ static inline bool intel_uc_uses_guc_submission(struct intel_uc *uc)
return intel_guc_is_submission_supported(&uc->guc); 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) \ #define intel_uc_ops_function(_NAME, _OPS, _TYPE, _RET) \
static inline _TYPE intel_uc_##_NAME(struct intel_uc *uc) \ static inline _TYPE intel_uc_##_NAME(struct intel_uc *uc) \
{ \ { \
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment