[Intel-gfx] [PATCH v2 2/3] drm/i915/guc: Drop union guc_log_control
Michał Winiarski
michal.winiarski at intel.com
Mon Mar 19 15:32:05 UTC 2018
On Mon, Mar 19, 2018 at 01:49:23PM +0000, Michal Wajdeczko wrote:
> Usually we use shift/mask macros for bit field definitions.
> Union guc_log_control was not following that pattern.
>
> Additional bonus:
>
> add/remove: 0/0 grow/shrink: 0/1 up/down: 0/-25 (-25)
> Function old new delta
> intel_guc_log_level_set 388 363 -25
>
> Signed-off-by: Michal Wajdeczko <michal.wajdeczko at intel.com>
> Cc: Michal Winiarski <michal.winiarski at intel.com>
> Cc: Sagar Arun Kamble <sagar.a.kamble at intel.com>
> ---
> drivers/gpu/drm/i915/intel_guc_fwif.h | 16 +++++-----------
> drivers/gpu/drm/i915/intel_guc_log.c | 11 +++--------
> 2 files changed, 8 insertions(+), 19 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/intel_guc_fwif.h b/drivers/gpu/drm/i915/intel_guc_fwif.h
> index 4971685..72941bd 100644
> --- a/drivers/gpu/drm/i915/intel_guc_fwif.h
> +++ b/drivers/gpu/drm/i915/intel_guc_fwif.h
> @@ -534,17 +534,6 @@ struct guc_log_buffer_state {
> u32 version;
> } __packed;
>
> -union guc_log_control {
> - struct {
> - u32 logging_enabled:1;
> - u32 reserved1:3;
> - u32 verbosity:4;
> - u32 default_logging:1;
> - u32 reserved2:23;
> - };
> - u32 value;
> -} __packed;
> -
> struct guc_ctx_report {
> u32 report_return_status;
> u32 reserved1[64];
> @@ -603,6 +592,11 @@ enum intel_guc_report_status {
> INTEL_GUC_REPORT_STATUS_COMPLETE = 0x4,
> };
>
> +#define GUC_LOG_CONTROL_LOGGING_ENABLED (1 << 0)
> +#define GUC_LOG_CONTROL_VERBOSITY_SHIFT 4
> +#define GUC_LOG_CONTROL_VERBOSITY_MASK (0xF << GUC_LOG_CONTROL_VERBOSITY_SHIFT)
You're not using the mask anywhere. Is it just to describe the iface?
Or was it supposed to be used in guc_action_control_log?
(there's a slight change in behavior here, which may lead to confusion when
passing out-of-range verbosity)
-Michał
> +#define GUC_LOG_CONTROL_DEFAULT_LOGGING (1 << 8)
> +
> /*
> * The GuC sends its response to a command by overwriting the
> * command in SS0. The response is distinguishable from a command
> diff --git a/drivers/gpu/drm/i915/intel_guc_log.c b/drivers/gpu/drm/i915/intel_guc_log.c
> index 39928e6..c84b67f 100644
> --- a/drivers/gpu/drm/i915/intel_guc_log.c
> +++ b/drivers/gpu/drm/i915/intel_guc_log.c
> @@ -60,16 +60,11 @@ static int guc_action_flush_log(struct intel_guc *guc)
> static int guc_action_control_log(struct intel_guc *guc, bool enable,
> bool default_logging, u32 verbosity)
> {
> - union guc_log_control control_val = {
> - {
> - .logging_enabled = enable,
> - .verbosity = verbosity,
> - .default_logging = default_logging,
> - },
> - };
> u32 action[] = {
> INTEL_GUC_ACTION_UK_LOG_ENABLE_LOGGING,
> - control_val.value
> + (enable ? GUC_LOG_CONTROL_LOGGING_ENABLED : 0) |
> + (verbosity << GUC_LOG_CONTROL_VERBOSITY_SHIFT) |
> + (default_logging ? GUC_LOG_CONTROL_DEFAULT_LOGGING : 0)
> };
>
> return intel_guc_send(guc, action, ARRAY_SIZE(action));
> --
> 1.9.1
>
More information about the Intel-gfx
mailing list