[Intel-gfx] [PATCH v2 2/2] drm/i915/guc: Change values for i915_guc_log_control
Sagar Arun Kamble
sagar.a.kamble at intel.com
Fri Jan 12 05:53:28 UTC 2018
On 1/11/2018 8:54 PM, Michal Wajdeczko wrote:
> Today we have format mismatch between read/write operations
> of i915_guc_log_control entry. For read we return (0, 1..4)
> that represents disable/verbosity levels, but for write we
> force user to follow internal structure format (0,1,9,11,13).
0x0, 0x1, 0x11, 0x21, 0x31
> Let's hide internals from the user and accept same values
> as we support for read and related guc_log_level modparam.
>
> Signed-off-by: Michal Wajdeczko <michal.wajdeczko at intel.com>
> Cc: Sagar Arun Kamble <sagar.a.kamble at intel.com>
> Cc: Daniele Ceraolo Spurio <daniele.ceraolospurio at intel.com>
> Cc: Tvrtko Ursulin <tvrtko.ursulin at intel.com>
> Cc: Joonas Lahtinen <joonas.lahtinen at linux.intel.com>
> Cc: Chris Wilson <chris at chris-wilson.co.uk>
Reviewed-by: Sagar Arun Kamble <sagar.a.kamble at intel.com>
> ---
> drivers/gpu/drm/i915/intel_guc_log.c | 27 +++++++++++++++------------
> 1 file changed, 15 insertions(+), 12 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/intel_guc_log.c b/drivers/gpu/drm/i915/intel_guc_log.c
> index e6d59bf..1719f1e 100644
> --- a/drivers/gpu/drm/i915/intel_guc_log.c
> +++ b/drivers/gpu/drm/i915/intel_guc_log.c
> @@ -58,11 +58,15 @@ static int guc_log_flush(struct intel_guc *guc)
> return intel_guc_send(guc, action, ARRAY_SIZE(action));
> }
>
> -static int guc_log_control(struct intel_guc *guc, u32 control_val)
> +static int guc_log_control(struct intel_guc *guc, bool enable, u32 verbosity)
> {
> + union guc_log_control control_val = { .logging_enabled = enable,
> + .reserved1 = 0,
> + .verbosity = verbosity,
> + .reserved2 = 0 };
> u32 action[] = {
> INTEL_GUC_ACTION_UK_LOG_ENABLE_LOGGING,
> - control_val
> + control_val.value
> };
>
> return intel_guc_send(guc, action, ARRAY_SIZE(action));
> @@ -567,28 +571,27 @@ void intel_guc_log_destroy(struct intel_guc *guc)
> int i915_guc_log_control(struct drm_i915_private *dev_priv, u64 control_val)
> {
> struct intel_guc *guc = &dev_priv->guc;
> -
> - union guc_log_control log_param;
> + bool enable_logging = control_val > 0;
> + u32 verbosity;
> int ret;
>
> - log_param.value = control_val;
> -
> - if (log_param.verbosity < GUC_LOG_VERBOSITY_MIN ||
> - log_param.verbosity > GUC_LOG_VERBOSITY_MAX)
> + BUILD_BUG_ON(GUC_LOG_VERBOSITY_MIN);
> + if (control_val > 1 + GUC_LOG_VERBOSITY_MAX)
> return -EINVAL;
>
> /* This combination doesn't make sense & won't have any effect */
> - if (!log_param.logging_enabled && !i915_modparams.guc_log_level)
> + if (!enable_logging && !i915_modparams.guc_log_level)
> return 0;
>
> - ret = guc_log_control(guc, log_param.value);
> + verbosity = enable_logging ? control_val - 1 : 0;
> + ret = guc_log_control(guc, enable_logging, verbosity);
> if (ret < 0) {
> DRM_DEBUG_DRIVER("guc_logging_control action failed %d\n", ret);
> return ret;
> }
>
> - if (log_param.logging_enabled) {
> - i915_modparams.guc_log_level = 1 + log_param.verbosity;
> + if (enable_logging) {
> + i915_modparams.guc_log_level = 1 + verbosity;
>
> /*
> * If log was disabled at boot time, then the relay channel file
More information about the Intel-gfx
mailing list