public inbox for intel-gfx@lists.freedesktop.org
 help / color / mirror / Atom feed
From: Jani Nikula <jani.nikula@intel.com>
To: Michal Wajdeczko <michal.wajdeczko@intel.com>,
	intel-gfx@lists.freedesktop.org
Subject: Re: [PATCH v2 2/3] drm/i915: Extend I915_PARAMS_FOR_EACH with default member value
Date: Mon, 25 Sep 2017 14:01:52 +0300	[thread overview]
Message-ID: <87377b59en.fsf@nikula.org> (raw)
In-Reply-To: <20170925105008.46060-2-michal.wajdeczko@intel.com>

On Mon, 25 Sep 2017, Michal Wajdeczko <michal.wajdeczko@intel.com> wrote:
> By combining default value into helper macro we can initialize
> modparams struct in the same automatic way as it was declared.
> This will initialize members in the same order as declared
> and additionally will disallow declaring new member without
> proper default value for it.
>
> v2: make MEMBER macro more robust (Joonas)
>
> Signed-off-by: Michal Wajdeczko <michal.wajdeczko@intel.com>
> Cc: Chris Wilson <chris@chris-wilson.co.uk>
> Cc: Jani Nikula <jani.nikula@intel.com>
> Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
> Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
> Acked-by: Jani Nikula <jani.nikula@intel.com>

FWIW my ack was for the entire series.

Jani.

> Reviewed-by: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
> ---
>  drivers/gpu/drm/i915/i915_debugfs.c   |  2 +-
>  drivers/gpu/drm/i915/i915_gpu_error.c |  6 +--
>  drivers/gpu/drm/i915/i915_params.c    | 42 ++----------------
>  drivers/gpu/drm/i915/i915_params.h    | 82 +++++++++++++++++------------------
>  4 files changed, 48 insertions(+), 84 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/i915_debugfs.c b/drivers/gpu/drm/i915/i915_debugfs.c
> index 847f8e8..b4a6ac6 100644
> --- a/drivers/gpu/drm/i915/i915_debugfs.c
> +++ b/drivers/gpu/drm/i915/i915_debugfs.c
> @@ -67,7 +67,7 @@ static int i915_capabilities(struct seq_file *m, void *data)
>  #undef PRINT_FLAG
>  
>  	kernel_param_lock(THIS_MODULE);
> -#define PRINT_PARAM(T, x) seq_print_param(m, #x, #T, &i915_modparams.x);
> +#define PRINT_PARAM(T, x, ...) seq_print_param(m, #x, #T, &i915_modparams.x);
>  	I915_PARAMS_FOR_EACH(PRINT_PARAM);
>  #undef PRINT_PARAM
>  	kernel_param_unlock(THIS_MODULE);
> diff --git a/drivers/gpu/drm/i915/i915_gpu_error.c b/drivers/gpu/drm/i915/i915_gpu_error.c
> index 12146d7..c14552a 100644
> --- a/drivers/gpu/drm/i915/i915_gpu_error.c
> +++ b/drivers/gpu/drm/i915/i915_gpu_error.c
> @@ -572,7 +572,7 @@ static __always_inline void err_print_param(struct drm_i915_error_state_buf *m,
>  static void err_print_params(struct drm_i915_error_state_buf *m,
>  			     const struct i915_params *p)
>  {
> -#define PRINT(T, x) err_print_param(m, #x, #T, &p->x);
> +#define PRINT(T, x, ...) err_print_param(m, #x, #T, &p->x);
>  	I915_PARAMS_FOR_EACH(PRINT);
>  #undef PRINT
>  }
> @@ -866,7 +866,7 @@ void __i915_gpu_state_free(struct kref *error_ref)
>  	kfree(error->overlay);
>  	kfree(error->display);
>  
> -#define FREE(T, x) free_param(#T, &error->params.x);
> +#define FREE(T, x, ...) free_param(#T, &error->params.x);
>  	I915_PARAMS_FOR_EACH(FREE);
>  #undef FREE
>  
> @@ -1704,7 +1704,7 @@ static int capture(void *data)
>  					   error->i915->gt.last_init_time));
>  
>  	error->params = i915_modparams;
> -#define DUP(T, x) dup_param(#T, &error->params.x);
> +#define DUP(T, x, ...) dup_param(#T, &error->params.x);
>  	I915_PARAMS_FOR_EACH(DUP);
>  #undef DUP
>  
> diff --git a/drivers/gpu/drm/i915/i915_params.c b/drivers/gpu/drm/i915/i915_params.c
> index ec65341..9dff323 100644
> --- a/drivers/gpu/drm/i915/i915_params.c
> +++ b/drivers/gpu/drm/i915/i915_params.c
> @@ -33,45 +33,9 @@
>  	MODULE_PARM_DESC(name, desc)
>  
>  struct i915_params i915_modparams __read_mostly = {
> -	.modeset = -1,
> -	.panel_ignore_lid = 1,
> -	.semaphores = -1,
> -	.lvds_channel_mode = 0,
> -	.panel_use_ssc = -1,
> -	.vbt_sdvo_panel_type = -1,
> -	.enable_rc6 = -1,
> -	.enable_dc = -1,
> -	.enable_fbc = -1,
> -	.enable_execlists = -1,
> -	.enable_hangcheck = true,
> -	.enable_ppgtt = -1,
> -	.enable_psr = -1,
> -	.alpha_support = IS_ENABLED(CONFIG_DRM_I915_ALPHA_SUPPORT),
> -	.disable_power_well = -1,
> -	.enable_ips = 1,
> -	.fastboot = 0,
> -	.prefault_disable = 0,
> -	.load_detect_test = 0,
> -	.force_reset_modeset_test = 0,
> -	.reset = 2,
> -	.error_capture = true,
> -	.invert_brightness = 0,
> -	.disable_display = 0,
> -	.enable_cmd_parser = true,
> -	.use_mmio_flip = 0,
> -	.mmio_debug = 0,
> -	.verbose_state_checks = 1,
> -	.nuclear_pageflip = 0,
> -	.edp_vswing = 0,
> -	.enable_guc_loading = 0,
> -	.enable_guc_submission = 0,
> -	.guc_log_level = -1,
> -	.guc_firmware_path = NULL,
> -	.huc_firmware_path = NULL,
> -	.enable_dp_mst = true,
> -	.inject_load_failure = 0,
> -	.enable_dpcd_backlight = false,
> -	.enable_gvt = false,
> +#define MEMBER(T, member, value) .member = (value),
> +	I915_PARAMS_FOR_EACH(MEMBER)
> +#undef MEMBER
>  };
>  
>  i915_param_named(modeset, int, 0400,
> diff --git a/drivers/gpu/drm/i915/i915_params.h b/drivers/gpu/drm/i915/i915_params.h
> index 0116bb9..da59939 100644
> --- a/drivers/gpu/drm/i915/i915_params.h
> +++ b/drivers/gpu/drm/i915/i915_params.h
> @@ -28,49 +28,49 @@
>  #include <linux/cache.h> /* for __read_mostly */
>  
>  #define I915_PARAMS_FOR_EACH(param) \
> -	param(char *, vbt_firmware) \
> -	param(int, modeset) \
> -	param(int, panel_ignore_lid) \
> -	param(int, semaphores) \
> -	param(int, lvds_channel_mode) \
> -	param(int, panel_use_ssc) \
> -	param(int, vbt_sdvo_panel_type) \
> -	param(int, enable_rc6) \
> -	param(int, enable_dc) \
> -	param(int, enable_fbc) \
> -	param(int, enable_ppgtt) \
> -	param(int, enable_execlists) \
> -	param(int, enable_psr) \
> -	param(int, disable_power_well) \
> -	param(int, enable_ips) \
> -	param(int, invert_brightness) \
> -	param(int, enable_guc_loading) \
> -	param(int, enable_guc_submission) \
> -	param(int, guc_log_level) \
> -	param(char *, guc_firmware_path) \
> -	param(char *, huc_firmware_path) \
> -	param(int, use_mmio_flip) \
> -	param(int, mmio_debug) \
> -	param(int, edp_vswing) \
> -	param(int, reset) \
> -	param(unsigned int, inject_load_failure) \
> +	param(char *, vbt_firmware, NULL) \
> +	param(int, modeset, -1) \
> +	param(int, panel_ignore_lid, 1) \
> +	param(int, semaphores, -1) \
> +	param(int, lvds_channel_mode, 0) \
> +	param(int, panel_use_ssc, -1) \
> +	param(int, vbt_sdvo_panel_type, -1) \
> +	param(int, enable_rc6, -1) \
> +	param(int, enable_dc, -1) \
> +	param(int, enable_fbc, -1) \
> +	param(int, enable_ppgtt, -1) \
> +	param(int, enable_execlists, -1) \
> +	param(int, enable_psr, -1) \
> +	param(int, disable_power_well, -1) \
> +	param(int, enable_ips, 1) \
> +	param(int, invert_brightness, 0) \
> +	param(int, enable_guc_loading, 0) \
> +	param(int, enable_guc_submission, 0) \
> +	param(int, guc_log_level, -1) \
> +	param(char *, guc_firmware_path, NULL) \
> +	param(char *, huc_firmware_path, NULL) \
> +	param(int, use_mmio_flip, 0) \
> +	param(int, mmio_debug, 0) \
> +	param(int, edp_vswing, 0) \
> +	param(int, reset, 2) \
> +	param(unsigned int, inject_load_failure, 0) \
>  	/* leave bools at the end to not create holes */ \
> -	param(bool, alpha_support) \
> -	param(bool, enable_cmd_parser) \
> -	param(bool, enable_hangcheck) \
> -	param(bool, fastboot) \
> -	param(bool, prefault_disable) \
> -	param(bool, load_detect_test) \
> -	param(bool, force_reset_modeset_test) \
> -	param(bool, error_capture) \
> -	param(bool, disable_display) \
> -	param(bool, verbose_state_checks) \
> -	param(bool, nuclear_pageflip) \
> -	param(bool, enable_dp_mst) \
> -	param(bool, enable_dpcd_backlight) \
> -	param(bool, enable_gvt)
> +	param(bool, alpha_support, IS_ENABLED(CONFIG_DRM_I915_ALPHA_SUPPORT)) \
> +	param(bool, enable_cmd_parser, true) \
> +	param(bool, enable_hangcheck, true) \
> +	param(bool, fastboot, 0) \
> +	param(bool, prefault_disable, 0) \
> +	param(bool, load_detect_test, 0) \
> +	param(bool, force_reset_modeset_test, 0) \
> +	param(bool, error_capture, true) \
> +	param(bool, disable_display, 0) \
> +	param(bool, verbose_state_checks, 1) \
> +	param(bool, nuclear_pageflip, 0) \
> +	param(bool, enable_dp_mst, true) \
> +	param(bool, enable_dpcd_backlight, false) \
> +	param(bool, enable_gvt, false)
>  
> -#define MEMBER(T, member) T member;
> +#define MEMBER(T, member, ...) T member;
>  struct i915_params {
>  	I915_PARAMS_FOR_EACH(MEMBER);
>  };

-- 
Jani Nikula, Intel Open Source Technology Center
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

  reply	other threads:[~2017-09-25 11:02 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-09-25 10:50 [PATCH v2 1/3] drm/i915: Make I915_PARAMS_FOR_EACH macro more flexible Michal Wajdeczko
2017-09-25 10:50 ` [PATCH v2 2/3] drm/i915: Extend I915_PARAMS_FOR_EACH with default member value Michal Wajdeczko
2017-09-25 11:01   ` Jani Nikula [this message]
2017-09-25 10:50 ` [PATCH v2 3/3] drm/i915: Fix default values of some modparams Michal Wajdeczko
2017-09-25 11:26 ` ✓ Fi.CI.BAT: success for series starting with [v2,1/3] drm/i915: Make I915_PARAMS_FOR_EACH macro more flexible Patchwork
2017-09-25 14:29 ` ✓ Fi.CI.IGT: " Patchwork
2017-09-26  8:32   ` Joonas Lahtinen
  -- strict thread matches above, loose matches on Subject: below --
2017-09-22 14:27 [RFC 1/3] " Michal Wajdeczko
2017-09-25  9:45 ` [PATCH v2 " Michal Wajdeczko
2017-09-25  9:45   ` [PATCH v2 2/3] drm/i915: Extend I915_PARAMS_FOR_EACH with default member value Michal Wajdeczko
2017-09-25 10:23     ` Joonas Lahtinen

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87377b59en.fsf@nikula.org \
    --to=jani.nikula@intel.com \
    --cc=intel-gfx@lists.freedesktop.org \
    --cc=michal.wajdeczko@intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox