[Intel-gfx] [PATCH v2 1/5] drm/i915: Generate i915_params {} using a macro

Jani Nikula jani.nikula at linux.intel.com
Thu Feb 2 09:37:06 UTC 2017


On Thu, 02 Feb 2017, Chris Wilson <chris at chris-wilson.co.uk> wrote:
> I want to print the struct from the error state and so would like to use
> the existing struct definition as the template ala DEV_INFO*
>
> v2: Use MEMBER() rather than p().
>
> Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
> Reviewed-by: Joonas Lahtinen <joonas.lahtinen at linux.intel.com>

I've been telling everyone who complains about testing specific firmware
blob versions to add a module parameter to specify and override the
default filename. AFAICT this series does not make string parameters any
harder, but please do double check. I think they expect a static
allocation for the string buffer too, so the struct assignment should be
fine as well.

On the series,

Acked-by: Jani Nikula <jani.nikula at intel.com>

> ---
>  drivers/gpu/drm/i915/i915_params.h | 81 ++++++++++++++++++++------------------
>  1 file changed, 43 insertions(+), 38 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/i915_params.h b/drivers/gpu/drm/i915/i915_params.h
> index 8e433de04679..9a8c60342a82 100644
> --- a/drivers/gpu/drm/i915/i915_params.h
> +++ b/drivers/gpu/drm/i915/i915_params.h
> @@ -27,46 +27,51 @@
>  
>  #include <linux/cache.h> /* for __read_mostly */
>  
> +#define I915_PARAMS_FOR_EACH(func) \
> +	func(int, modeset); \
> +	func(int, panel_ignore_lid); \
> +	func(int, semaphores); \
> +	func(int, lvds_channel_mode); \
> +	func(int, panel_use_ssc); \
> +	func(int, vbt_sdvo_panel_type); \
> +	func(int, enable_rc6); \
> +	func(int, enable_dc); \
> +	func(int, enable_fbc); \
> +	func(int, enable_ppgtt); \
> +	func(int, enable_execlists); \
> +	func(int, enable_psr); \
> +	func(unsigned int, alpha_support); \
> +	func(int, disable_power_well); \
> +	func(int, enable_ips); \
> +	func(int, invert_brightness); \
> +	func(int, enable_guc_loading); \
> +	func(int, enable_guc_submission); \
> +	func(int, guc_log_level); \
> +	func(int, use_mmio_flip); \
> +	func(int, mmio_debug); \
> +	func(int, edp_vswing); \
> +	func(unsigned int, inject_load_failure); \
> +	/* leave bools at the end to not create holes */ \
> +	func(bool, enable_cmd_parser); \
> +	func(bool, enable_hangcheck); \
> +	func(bool, fastboot); \
> +	func(bool, prefault_disable); \
> +	func(bool, load_detect_test); \
> +	func(bool, force_reset_modeset_test); \
> +	func(bool, reset); \
> +	func(bool, error_capture); \
> +	func(bool, disable_display); \
> +	func(bool, verbose_state_checks); \
> +	func(bool, nuclear_pageflip); \
> +	func(bool, enable_dp_mst); \
> +	func(bool, enable_dpcd_backlight); \
> +	func(bool, enable_gvt)
> +
> +#define MEMBER(T, member) T member
>  struct i915_params {
> -	int modeset;
> -	int panel_ignore_lid;
> -	int semaphores;
> -	int lvds_channel_mode;
> -	int panel_use_ssc;
> -	int vbt_sdvo_panel_type;
> -	int enable_rc6;
> -	int enable_dc;
> -	int enable_fbc;
> -	int enable_ppgtt;
> -	int enable_execlists;
> -	int enable_psr;
> -	unsigned int alpha_support;
> -	int disable_power_well;
> -	int enable_ips;
> -	int invert_brightness;
> -	int enable_guc_loading;
> -	int enable_guc_submission;
> -	int guc_log_level;
> -	int use_mmio_flip;
> -	int mmio_debug;
> -	int edp_vswing;
> -	unsigned int inject_load_failure;
> -	/* leave bools at the end to not create holes */
> -	bool enable_cmd_parser;
> -	bool enable_hangcheck;
> -	bool fastboot;
> -	bool prefault_disable;
> -	bool load_detect_test;
> -	bool force_reset_modeset_test;
> -	bool reset;
> -	bool error_capture;
> -	bool disable_display;
> -	bool verbose_state_checks;
> -	bool nuclear_pageflip;
> -	bool enable_dp_mst;
> -	bool enable_dpcd_backlight;
> -	bool enable_gvt;
> +	I915_PARAMS_FOR_EACH(MEMBER);
>  };
> +#undef MEMBER
>  
>  extern struct i915_params i915 __read_mostly;

-- 
Jani Nikula, Intel Open Source Technology Center


More information about the Intel-gfx mailing list