Re: [PATCH 4/4] drm/i915/params: switch to device specific parameters

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, May 14, 2020 at 06:40:06PM +0300, Jani Nikula wrote:
> Start using device specific parameters instead of module parameters for
> most things. The module parameters become the immutable initial values
> for i915 parameters. The device specific parameters in i915->params
> start life as a copy of i915_modparams. Any later changes are only
> reflected in the debugfs.
> 
> The stragglers are:
> 
> * i915.force_probe and i915.modeset. Needed before dev_priv is
>   available. This is fine because the parameters are read-only and never
>   modified.
> 
> * i915.verbose_state_checks. Passing dev_priv to I915_STATE_WARN and
>   I915_STATE_WARN_ON would result in massive and ugly churn. This is
>   handled by not exposing the parameter via debugfs, and leaving the
>   parameter writable in sysfs. This may be fixed up in follow-up work.
> 
> * i915.inject_probe_failure. Only makes sense in terms of the module,
>   not the device. This is handled by not exposing the parameter via
>   debugfs.
> 
> Cc: Juha-Pekka Heikkilä <juha-pekka.heikkila@xxxxxxxxx>
> Cc: Venkata Sandeep Dhanalakota <venkata.s.dhanalakota@xxxxxxxxx>
> Signed-off-by: Jani Nikula <jani.nikula@xxxxxxxxx>

Reviewed-by: Rodrigo Vivi <rodrigo.vivi@xxxxxxxxx>

> ---
>  drivers/gpu/drm/i915/display/intel_bios.c     |  6 ++---
>  drivers/gpu/drm/i915/display/intel_crt.c      |  4 ++--
>  drivers/gpu/drm/i915/display/intel_csr.c      |  6 ++---
>  drivers/gpu/drm/i915/display/intel_display.c  | 12 +++++-----
>  .../drm/i915/display/intel_display_debugfs.c  |  2 +-
>  .../drm/i915/display/intel_display_power.c    | 14 ++++++------
>  drivers/gpu/drm/i915/display/intel_dp.c       |  8 ++++---
>  .../drm/i915/display/intel_dp_aux_backlight.c |  4 ++--
>  drivers/gpu/drm/i915/display/intel_fbc.c      | 12 +++++-----
>  drivers/gpu/drm/i915/display/intel_lvds.c     |  4 ++--
>  drivers/gpu/drm/i915/display/intel_opregion.c |  2 +-
>  drivers/gpu/drm/i915/display/intel_panel.c    |  4 ++--
>  drivers/gpu/drm/i915/display/intel_psr.c      |  6 ++---
>  drivers/gpu/drm/i915/gem/i915_gem_context.c   |  4 ++--
>  .../gpu/drm/i915/gt/intel_engine_heartbeat.c  |  3 ++-
>  drivers/gpu/drm/i915/gt/intel_reset.c         |  6 ++---
>  .../drm/i915/gt/selftest_engine_heartbeat.c   |  6 ++---
>  drivers/gpu/drm/i915/gt/uc/intel_guc_log.c    | 15 ++++++++-----
>  .../gpu/drm/i915/gt/uc/intel_guc_submission.c |  4 +++-
>  drivers/gpu/drm/i915/gt/uc/intel_uc.c         | 20 ++++++++---------
>  drivers/gpu/drm/i915/gt/uc/intel_uc_fw.c      | 22 ++++++++++---------
>  drivers/gpu/drm/i915/i915_debugfs.c           |  2 +-
>  drivers/gpu/drm/i915/i915_debugfs_params.c    |  7 +-----
>  drivers/gpu/drm/i915/i915_drv.c               |  9 ++++++--
>  drivers/gpu/drm/i915/i915_drv.h               |  5 ++++-
>  drivers/gpu/drm/i915/i915_getparam.c          |  2 +-
>  drivers/gpu/drm/i915/i915_gpu_error.c         |  4 ++--
>  drivers/gpu/drm/i915/intel_gvt.c              |  8 +++----
>  drivers/gpu/drm/i915/intel_region_lmem.c      |  6 ++---
>  drivers/gpu/drm/i915/intel_uncore.c           |  8 +++----
>  30 files changed, 114 insertions(+), 101 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/display/intel_bios.c b/drivers/gpu/drm/i915/display/intel_bios.c
> index 839124647202..ec8af2b7bf01 100644
> --- a/drivers/gpu/drm/i915/display/intel_bios.c
> +++ b/drivers/gpu/drm/i915/display/intel_bios.c
> @@ -479,7 +479,7 @@ parse_sdvo_panel_data(struct drm_i915_private *dev_priv,
>  	struct drm_display_mode *panel_fixed_mode;
>  	int index;
>  
> -	index = i915_modparams.vbt_sdvo_panel_type;
> +	index = dev_priv->params.vbt_sdvo_panel_type;
>  	if (index == -2) {
>  		drm_dbg_kms(&dev_priv->drm,
>  			    "Ignore SDVO panel mode from BIOS VBT tables.\n");
> @@ -829,9 +829,9 @@ parse_edp(struct drm_i915_private *dev_priv, const struct bdb_header *bdb)
>  		u8 vswing;
>  
>  		/* Don't read from VBT if module parameter has valid value*/
> -		if (i915_modparams.edp_vswing) {
> +		if (dev_priv->params.edp_vswing) {
>  			dev_priv->vbt.edp.low_vswing =
> -				i915_modparams.edp_vswing == 1;
> +				dev_priv->params.edp_vswing == 1;
>  		} else {
>  			vswing = (edp->edp_vswing_preemph >> (panel_type * 4)) & 0xF;
>  			dev_priv->vbt.edp.low_vswing = vswing == 0;
> diff --git a/drivers/gpu/drm/i915/display/intel_crt.c b/drivers/gpu/drm/i915/display/intel_crt.c
> index 2f5b9a4baafd..5b4510ce5693 100644
> --- a/drivers/gpu/drm/i915/display/intel_crt.c
> +++ b/drivers/gpu/drm/i915/display/intel_crt.c
> @@ -833,7 +833,7 @@ intel_crt_detect(struct drm_connector *connector,
>  		    connector->base.id, connector->name,
>  		    force);
>  
> -	if (i915_modparams.load_detect_test) {
> +	if (dev_priv->params.load_detect_test) {
>  		wakeref = intel_display_power_get(dev_priv,
>  						  intel_encoder->power_domain);
>  		goto load_detect;
> @@ -889,7 +889,7 @@ intel_crt_detect(struct drm_connector *connector,
>  		else if (INTEL_GEN(dev_priv) < 4)
>  			status = intel_crt_load_detect(crt,
>  				to_intel_crtc(connector->state->crtc)->pipe);
> -		else if (i915_modparams.load_detect_test)
> +		else if (dev_priv->params.load_detect_test)
>  			status = connector_status_disconnected;
>  		else
>  			status = connector_status_unknown;
> diff --git a/drivers/gpu/drm/i915/display/intel_csr.c b/drivers/gpu/drm/i915/display/intel_csr.c
> index 3112572cfb7d..8c481270a160 100644
> --- a/drivers/gpu/drm/i915/display/intel_csr.c
> +++ b/drivers/gpu/drm/i915/display/intel_csr.c
> @@ -713,15 +713,15 @@ void intel_csr_ucode_init(struct drm_i915_private *dev_priv)
>  		csr->max_fw_size = BXT_CSR_MAX_FW_SIZE;
>  	}
>  
> -	if (i915_modparams.dmc_firmware_path) {
> -		if (strlen(i915_modparams.dmc_firmware_path) == 0) {
> +	if (dev_priv->params.dmc_firmware_path) {
> +		if (strlen(dev_priv->params.dmc_firmware_path) == 0) {
>  			csr->fw_path = NULL;
>  			drm_info(&dev_priv->drm,
>  				 "Disabling CSR firmware and runtime PM\n");
>  			return;
>  		}
>  
> -		csr->fw_path = i915_modparams.dmc_firmware_path;
> +		csr->fw_path = dev_priv->params.dmc_firmware_path;
>  		/* Bypass version check for firmware override. */
>  		csr->required_version = 0;
>  	}
> diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c
> index ab621926def1..507ab78b9f3b 100644
> --- a/drivers/gpu/drm/i915/display/intel_display.c
> +++ b/drivers/gpu/drm/i915/display/intel_display.c
> @@ -4879,7 +4879,7 @@ void intel_prepare_reset(struct drm_i915_private *dev_priv)
>  	int ret;
>  
>  	/* reset doesn't touch the display */
> -	if (!i915_modparams.force_reset_modeset_test &&
> +	if (!dev_priv->params.force_reset_modeset_test &&
>  	    !gpu_reset_clobbers_display(dev_priv))
>  		return;
>  
> @@ -7869,7 +7869,7 @@ bool hsw_crtc_state_ips_capable(const struct intel_crtc_state *crtc_state)
>  	if (!hsw_crtc_supports_ips(crtc))
>  		return false;
>  
> -	if (!i915_modparams.enable_ips)
> +	if (!dev_priv->params.enable_ips)
>  		return false;
>  
>  	if (crtc_state->pipe_bpp > 24)
> @@ -8140,8 +8140,8 @@ static void intel_panel_sanitize_ssc(struct drm_i915_private *dev_priv)
>  
>  static bool intel_panel_use_ssc(struct drm_i915_private *dev_priv)
>  {
> -	if (i915_modparams.panel_use_ssc >= 0)
> -		return i915_modparams.panel_use_ssc != 0;
> +	if (dev_priv->params.panel_use_ssc >= 0)
> +		return dev_priv->params.panel_use_ssc != 0;
>  	return dev_priv->vbt.lvds_use_ssc
>  		&& !(dev_priv->quirks & QUIRK_LVDS_SSC_DISABLE);
>  }
> @@ -13571,8 +13571,8 @@ pipe_config_mismatch(bool fastset, const struct intel_crtc *crtc,
>  
>  static bool fastboot_enabled(struct drm_i915_private *dev_priv)
>  {
> -	if (i915_modparams.fastboot != -1)
> -		return i915_modparams.fastboot;
> +	if (dev_priv->params.fastboot != -1)
> +		return dev_priv->params.fastboot;
>  
>  	/* Enable fastboot by default on Skylake and newer */
>  	if (INTEL_GEN(dev_priv) >= 9)
> diff --git a/drivers/gpu/drm/i915/display/intel_display_debugfs.c b/drivers/gpu/drm/i915/display/intel_display_debugfs.c
> index 70525623bcdf..87db7e906621 100644
> --- a/drivers/gpu/drm/i915/display/intel_display_debugfs.c
> +++ b/drivers/gpu/drm/i915/display/intel_display_debugfs.c
> @@ -125,7 +125,7 @@ static int i915_ips_status(struct seq_file *m, void *unused)
>  	wakeref = intel_runtime_pm_get(&dev_priv->runtime_pm);
>  
>  	seq_printf(m, "Enabled by kernel parameter: %s\n",
> -		   yesno(i915_modparams.enable_ips));
> +		   yesno(dev_priv->params.enable_ips));
>  
>  	if (INTEL_GEN(dev_priv) >= 8) {
>  		seq_puts(m, "Currently: unknown\n");
> diff --git a/drivers/gpu/drm/i915/display/intel_display_power.c b/drivers/gpu/drm/i915/display/intel_display_power.c
> index 49998906cc61..ad6729ba90ab 100644
> --- a/drivers/gpu/drm/i915/display/intel_display_power.c
> +++ b/drivers/gpu/drm/i915/display/intel_display_power.c
> @@ -4322,7 +4322,7 @@ static u32 get_allowed_dc_mask(const struct drm_i915_private *dev_priv,
>  		mask = 0;
>  	}
>  
> -	if (!i915_modparams.disable_power_well)
> +	if (!dev_priv->params.disable_power_well)
>  		max_dc = 0;
>  
>  	if (enable_dc >= 0 && enable_dc <= max_dc) {
> @@ -4408,11 +4408,11 @@ int intel_power_domains_init(struct drm_i915_private *dev_priv)
>  	struct i915_power_domains *power_domains = &dev_priv->power_domains;
>  	int err;
>  
> -	i915_modparams.disable_power_well =
> +	dev_priv->params.disable_power_well =
>  		sanitize_disable_power_well_option(dev_priv,
> -						   i915_modparams.disable_power_well);
> +						   dev_priv->params.disable_power_well);
>  	dev_priv->csr.allowed_dc_mask =
> -		get_allowed_dc_mask(dev_priv, i915_modparams.enable_dc);
> +		get_allowed_dc_mask(dev_priv, dev_priv->params.enable_dc);
>  
>  	dev_priv->csr.target_dc_state =
>  		sanitize_target_dc_state(dev_priv, DC_STATE_EN_UPTO_DC6);
> @@ -5375,7 +5375,7 @@ void intel_power_domains_init_hw(struct drm_i915_private *i915, bool resume)
>  		intel_display_power_get(i915, POWER_DOMAIN_INIT);
>  
>  	/* Disable power support if the user asked so. */
> -	if (!i915_modparams.disable_power_well)
> +	if (!i915->params.disable_power_well)
>  		intel_display_power_get(i915, POWER_DOMAIN_INIT);
>  	intel_power_domains_sync_hw(i915);
>  
> @@ -5399,7 +5399,7 @@ void intel_power_domains_driver_remove(struct drm_i915_private *i915)
>  		fetch_and_zero(&i915->power_domains.wakeref);
>  
>  	/* Remove the refcount we took to keep power well support disabled. */
> -	if (!i915_modparams.disable_power_well)
> +	if (!i915->params.disable_power_well)
>  		intel_display_power_put_unchecked(i915, POWER_DOMAIN_INIT);
>  
>  	intel_display_power_flush_work_sync(i915);
> @@ -5488,7 +5488,7 @@ void intel_power_domains_suspend(struct drm_i915_private *i915,
>  	 * Even if power well support was disabled we still want to disable
>  	 * power wells if power domains must be deinitialized for suspend.
>  	 */
> -	if (!i915_modparams.disable_power_well)
> +	if (!i915->params.disable_power_well)
>  		intel_display_power_put_unchecked(i915, POWER_DOMAIN_INIT);
>  
>  	intel_display_power_flush_work(i915);
> diff --git a/drivers/gpu/drm/i915/display/intel_dp.c b/drivers/gpu/drm/i915/display/intel_dp.c
> index 408c3c1c5e81..dec0cdce0e68 100644
> --- a/drivers/gpu/drm/i915/display/intel_dp.c
> +++ b/drivers/gpu/drm/i915/display/intel_dp.c
> @@ -4745,7 +4745,9 @@ intel_dp_sink_can_mst(struct intel_dp *intel_dp)
>  static bool
>  intel_dp_can_mst(struct intel_dp *intel_dp)
>  {
> -	return i915_modparams.enable_dp_mst &&
> +	struct drm_i915_private *i915 = dp_to_i915(intel_dp);
> +
> +	return i915->params.enable_dp_mst &&
>  		intel_dp->can_mst &&
>  		intel_dp_sink_can_mst(intel_dp);
>  }
> @@ -4762,13 +4764,13 @@ intel_dp_configure_mst(struct intel_dp *intel_dp)
>  		    "[ENCODER:%d:%s] MST support: port: %s, sink: %s, modparam: %s\n",
>  		    encoder->base.base.id, encoder->base.name,
>  		    yesno(intel_dp->can_mst), yesno(sink_can_mst),
> -		    yesno(i915_modparams.enable_dp_mst));
> +		    yesno(i915->params.enable_dp_mst));
>  
>  	if (!intel_dp->can_mst)
>  		return;
>  
>  	intel_dp->is_mst = sink_can_mst &&
> -		i915_modparams.enable_dp_mst;
> +		i915->params.enable_dp_mst;
>  
>  	drm_dp_mst_topology_mgr_set_mst(&intel_dp->mst_mgr,
>  					intel_dp->is_mst);
> diff --git a/drivers/gpu/drm/i915/display/intel_dp_aux_backlight.c b/drivers/gpu/drm/i915/display/intel_dp_aux_backlight.c
> index 0722540d64ad..acbd7eb66cbe 100644
> --- a/drivers/gpu/drm/i915/display/intel_dp_aux_backlight.c
> +++ b/drivers/gpu/drm/i915/display/intel_dp_aux_backlight.c
> @@ -348,7 +348,7 @@ int intel_dp_aux_init_backlight_funcs(struct intel_connector *intel_connector)
>  	struct intel_dp *intel_dp = enc_to_intel_dp(intel_connector->encoder);
>  	struct drm_i915_private *i915 = dp_to_i915(intel_dp);
>  
> -	if (i915_modparams.enable_dpcd_backlight == 0 ||
> +	if (i915->params.enable_dpcd_backlight == 0 ||
>  	    !intel_dp_aux_display_control_capable(intel_connector))
>  		return -ENODEV;
>  
> @@ -358,7 +358,7 @@ int intel_dp_aux_init_backlight_funcs(struct intel_connector *intel_connector)
>  	 */
>  	if (i915->vbt.backlight.type !=
>  	    INTEL_BACKLIGHT_VESA_EDP_AUX_INTERFACE &&
> -	    i915_modparams.enable_dpcd_backlight != 1 &&
> +	    i915->params.enable_dpcd_backlight != 1 &&
>  	    !drm_dp_has_quirk(&intel_dp->desc, intel_dp->edid_quirks,
>  			      DP_QUIRK_FORCE_DPCD_BACKLIGHT)) {
>  		drm_info(&i915->drm,
> diff --git a/drivers/gpu/drm/i915/display/intel_fbc.c b/drivers/gpu/drm/i915/display/intel_fbc.c
> index 1c26673acb2d..30649e17cfb7 100644
> --- a/drivers/gpu/drm/i915/display/intel_fbc.c
> +++ b/drivers/gpu/drm/i915/display/intel_fbc.c
> @@ -740,7 +740,7 @@ static bool intel_fbc_can_enable(struct drm_i915_private *dev_priv)
>  		return false;
>  	}
>  
> -	if (!i915_modparams.enable_fbc) {
> +	if (!dev_priv->params.enable_fbc) {
>  		fbc->no_fbc_reason = "disabled per module param or by default";
>  		return false;
>  	}
> @@ -1017,7 +1017,7 @@ static void __intel_fbc_post_update(struct intel_crtc *crtc)
>  
>  	fbc->flip_pending = false;
>  
> -	if (!i915_modparams.enable_fbc) {
> +	if (!dev_priv->params.enable_fbc) {
>  		intel_fbc_deactivate(dev_priv, "disabled at runtime per module param");
>  		__intel_fbc_disable(dev_priv);
>  
> @@ -1370,8 +1370,8 @@ void intel_fbc_handle_fifo_underrun_irq(struct drm_i915_private *dev_priv)
>   */
>  static int intel_sanitize_fbc_option(struct drm_i915_private *dev_priv)
>  {
> -	if (i915_modparams.enable_fbc >= 0)
> -		return !!i915_modparams.enable_fbc;
> +	if (dev_priv->params.enable_fbc >= 0)
> +		return !!dev_priv->params.enable_fbc;
>  
>  	if (!HAS_FBC(dev_priv))
>  		return 0;
> @@ -1415,9 +1415,9 @@ void intel_fbc_init(struct drm_i915_private *dev_priv)
>  	if (need_fbc_vtd_wa(dev_priv))
>  		mkwrite_device_info(dev_priv)->display.has_fbc = false;
>  
> -	i915_modparams.enable_fbc = intel_sanitize_fbc_option(dev_priv);
> +	dev_priv->params.enable_fbc = intel_sanitize_fbc_option(dev_priv);
>  	drm_dbg_kms(&dev_priv->drm, "Sanitized enable_fbc value: %d\n",
> -		    i915_modparams.enable_fbc);
> +		    dev_priv->params.enable_fbc);
>  
>  	if (!HAS_FBC(dev_priv)) {
>  		fbc->no_fbc_reason = "unsupported by this chipset";
> diff --git a/drivers/gpu/drm/i915/display/intel_lvds.c b/drivers/gpu/drm/i915/display/intel_lvds.c
> index 872f2a489339..1888611244db 100644
> --- a/drivers/gpu/drm/i915/display/intel_lvds.c
> +++ b/drivers/gpu/drm/i915/display/intel_lvds.c
> @@ -784,8 +784,8 @@ static bool compute_is_dual_link_lvds(struct intel_lvds_encoder *lvds_encoder)
>  	struct drm_i915_private *dev_priv = to_i915(dev);
>  
>  	/* use the module option value if specified */
> -	if (i915_modparams.lvds_channel_mode > 0)
> -		return i915_modparams.lvds_channel_mode == 2;
> +	if (dev_priv->params.lvds_channel_mode > 0)
> +		return dev_priv->params.lvds_channel_mode == 2;
>  
>  	/* single channel LVDS is limited to 112 MHz */
>  	if (lvds_encoder->attached_connector->panel.fixed_mode->clock > 112999)
> diff --git a/drivers/gpu/drm/i915/display/intel_opregion.c b/drivers/gpu/drm/i915/display/intel_opregion.c
> index cc6b00959586..de995362f428 100644
> --- a/drivers/gpu/drm/i915/display/intel_opregion.c
> +++ b/drivers/gpu/drm/i915/display/intel_opregion.c
> @@ -801,7 +801,7 @@ static int intel_load_vbt_firmware(struct drm_i915_private *dev_priv)
>  {
>  	struct intel_opregion *opregion = &dev_priv->opregion;
>  	const struct firmware *fw = NULL;
> -	const char *name = i915_modparams.vbt_firmware;
> +	const char *name = dev_priv->params.vbt_firmware;
>  	int ret;
>  
>  	if (!name || !*name)
> diff --git a/drivers/gpu/drm/i915/display/intel_panel.c b/drivers/gpu/drm/i915/display/intel_panel.c
> index aa931f9f0d6a..c6d1876b3e8d 100644
> --- a/drivers/gpu/drm/i915/display/intel_panel.c
> +++ b/drivers/gpu/drm/i915/display/intel_panel.c
> @@ -531,10 +531,10 @@ static u32 intel_panel_compute_brightness(struct intel_connector *connector,
>  
>  	drm_WARN_ON(&dev_priv->drm, panel->backlight.max == 0);
>  
> -	if (i915_modparams.invert_brightness < 0)
> +	if (dev_priv->params.invert_brightness < 0)
>  		return val;
>  
> -	if (i915_modparams.invert_brightness > 0 ||
> +	if (dev_priv->params.invert_brightness > 0 ||
>  	    dev_priv->quirks & QUIRK_INVERT_BRIGHTNESS) {
>  		return panel->backlight.max - val + panel->backlight.min;
>  	}
> diff --git a/drivers/gpu/drm/i915/display/intel_psr.c b/drivers/gpu/drm/i915/display/intel_psr.c
> index b7a2c102648a..c84a2ed19f7b 100644
> --- a/drivers/gpu/drm/i915/display/intel_psr.c
> +++ b/drivers/gpu/drm/i915/display/intel_psr.c
> @@ -83,7 +83,7 @@ static bool psr_global_enabled(struct drm_i915_private *i915)
>  {
>  	switch (i915->psr.debug & I915_PSR_DEBUG_MODE_MASK) {
>  	case I915_PSR_DEBUG_DEFAULT:
> -		return i915_modparams.enable_psr;
> +		return i915->params.enable_psr;
>  	case I915_PSR_DEBUG_DISABLE:
>  		return false;
>  	default:
> @@ -1450,9 +1450,9 @@ void intel_psr_init(struct drm_i915_private *dev_priv)
>  		 */
>  		dev_priv->hsw_psr_mmio_adjust = _SRD_CTL_EDP - _HSW_EDP_PSR_BASE;
>  
> -	if (i915_modparams.enable_psr == -1)
> +	if (dev_priv->params.enable_psr == -1)
>  		if (INTEL_GEN(dev_priv) < 9 || !dev_priv->vbt.psr.enable)
> -			i915_modparams.enable_psr = 0;
> +			dev_priv->params.enable_psr = 0;
>  
>  	/* Set link_standby x link_off defaults */
>  	if (IS_HASWELL(dev_priv) || IS_BROADWELL(dev_priv))
> diff --git a/drivers/gpu/drm/i915/gem/i915_gem_context.c b/drivers/gpu/drm/i915/gem/i915_gem_context.c
> index 900ea8b7fc8f..1d980dd6b186 100644
> --- a/drivers/gpu/drm/i915/gem/i915_gem_context.c
> +++ b/drivers/gpu/drm/i915/gem/i915_gem_context.c
> @@ -650,7 +650,7 @@ static void context_close(struct i915_gem_context *ctx)
>  	 * context close.
>  	 */
>  	if (!i915_gem_context_is_persistent(ctx) ||
> -	    !i915_modparams.enable_hangcheck)
> +	    !ctx->i915->params.enable_hangcheck)
>  		kill_context(ctx);
>  
>  	i915_gem_context_put(ctx);
> @@ -667,7 +667,7 @@ static int __context_set_persistence(struct i915_gem_context *ctx, bool state)
>  		 * reset] are allowed to survive past termination. We require
>  		 * hangcheck to ensure that the persistent requests are healthy.
>  		 */
> -		if (!i915_modparams.enable_hangcheck)
> +		if (!ctx->i915->params.enable_hangcheck)
>  			return -EINVAL;
>  
>  		i915_gem_context_set_persistence(ctx);
> diff --git a/drivers/gpu/drm/i915/gt/intel_engine_heartbeat.c b/drivers/gpu/drm/i915/gt/intel_engine_heartbeat.c
> index 5136c8bf112d..1ed4c95b2ea6 100644
> --- a/drivers/gpu/drm/i915/gt/intel_engine_heartbeat.c
> +++ b/drivers/gpu/drm/i915/gt/intel_engine_heartbeat.c
> @@ -4,6 +4,7 @@
>   * Copyright © 2019 Intel Corporation
>   */
>  
> +#include "i915_drv.h"
>  #include "i915_request.h"
>  
>  #include "intel_context.h"
> @@ -117,7 +118,7 @@ static void heartbeat(struct work_struct *wrk)
>  		goto unlock;
>  
>  	idle_pulse(engine, rq);
> -	if (i915_modparams.enable_hangcheck)
> +	if (engine->i915->params.enable_hangcheck)
>  		engine->heartbeat.systole = i915_request_get(rq);
>  
>  	__i915_request_commit(rq);
> diff --git a/drivers/gpu/drm/i915/gt/intel_reset.c b/drivers/gpu/drm/i915/gt/intel_reset.c
> index 39070b514e65..0156f1f5c736 100644
> --- a/drivers/gpu/drm/i915/gt/intel_reset.c
> +++ b/drivers/gpu/drm/i915/gt/intel_reset.c
> @@ -638,7 +638,7 @@ int __intel_gt_reset(struct intel_gt *gt, intel_engine_mask_t engine_mask)
>  
>  bool intel_has_gpu_reset(const struct intel_gt *gt)
>  {
> -	if (!i915_modparams.reset)
> +	if (!gt->i915->params.reset)
>  		return NULL;
>  
>  	return intel_get_gpu_reset(gt);
> @@ -646,7 +646,7 @@ bool intel_has_gpu_reset(const struct intel_gt *gt)
>  
>  bool intel_has_reset_engine(const struct intel_gt *gt)
>  {
> -	if (i915_modparams.reset < 2)
> +	if (gt->i915->params.reset < 2)
>  		return false;
>  
>  	return INTEL_INFO(gt->i915)->has_reset_engine;
> @@ -1038,7 +1038,7 @@ void intel_gt_reset(struct intel_gt *gt,
>  	awake = reset_prepare(gt);
>  
>  	if (!intel_has_gpu_reset(gt)) {
> -		if (i915_modparams.reset)
> +		if (gt->i915->params.reset)
>  			drm_err(&gt->i915->drm, "GPU reset not supported\n");
>  		else
>  			drm_dbg(&gt->i915->drm, "GPU reset disabled\n");
> diff --git a/drivers/gpu/drm/i915/gt/selftest_engine_heartbeat.c b/drivers/gpu/drm/i915/gt/selftest_engine_heartbeat.c
> index 697114dd1f47..9f04c54c4d0f 100644
> --- a/drivers/gpu/drm/i915/gt/selftest_engine_heartbeat.c
> +++ b/drivers/gpu/drm/i915/gt/selftest_engine_heartbeat.c
> @@ -386,11 +386,11 @@ int intel_heartbeat_live_selftests(struct drm_i915_private *i915)
>  	if (intel_gt_is_wedged(&i915->gt))
>  		return 0;
>  
> -	saved_hangcheck = i915_modparams.enable_hangcheck;
> -	i915_modparams.enable_hangcheck = INT_MAX;
> +	saved_hangcheck = i915->params.enable_hangcheck;
> +	i915->params.enable_hangcheck = INT_MAX;
>  
>  	err = intel_gt_live_subtests(tests, &i915->gt);
>  
> -	i915_modparams.enable_hangcheck = saved_hangcheck;
> +	i915->params.enable_hangcheck = saved_hangcheck;
>  	return err;
>  }
> diff --git a/drivers/gpu/drm/i915/gt/uc/intel_guc_log.c b/drivers/gpu/drm/i915/gt/uc/intel_guc_log.c
> index fb10f3597ea5..9bbe8a795cb8 100644
> --- a/drivers/gpu/drm/i915/gt/uc/intel_guc_log.c
> +++ b/drivers/gpu/drm/i915/gt/uc/intel_guc_log.c
> @@ -424,25 +424,28 @@ static void guc_log_capture_logs(struct intel_guc_log *log)
>  
>  static u32 __get_default_log_level(struct intel_guc_log *log)
>  {
> +	struct intel_guc *guc = log_to_guc(log);
> +	struct drm_i915_private *i915 = guc_to_gt(guc)->i915;
> +
>  	/* A negative value means "use platform/config default" */
> -	if (i915_modparams.guc_log_level < 0) {
> +	if (i915->params.guc_log_level < 0) {
>  		return (IS_ENABLED(CONFIG_DRM_I915_DEBUG) ||
>  			IS_ENABLED(CONFIG_DRM_I915_DEBUG_GEM)) ?
>  			GUC_LOG_LEVEL_MAX : GUC_LOG_LEVEL_NON_VERBOSE;
>  	}
>  
> -	if (i915_modparams.guc_log_level > GUC_LOG_LEVEL_MAX) {
> +	if (i915->params.guc_log_level > GUC_LOG_LEVEL_MAX) {
>  		DRM_WARN("Incompatible option detected: %s=%d, %s!\n",
> -			 "guc_log_level", i915_modparams.guc_log_level,
> +			 "guc_log_level", i915->params.guc_log_level,
>  			 "verbosity too high");
>  		return (IS_ENABLED(CONFIG_DRM_I915_DEBUG) ||
>  			IS_ENABLED(CONFIG_DRM_I915_DEBUG_GEM)) ?
>  			GUC_LOG_LEVEL_MAX : GUC_LOG_LEVEL_DISABLED;
>  	}
>  
> -	GEM_BUG_ON(i915_modparams.guc_log_level < GUC_LOG_LEVEL_DISABLED);
> -	GEM_BUG_ON(i915_modparams.guc_log_level > GUC_LOG_LEVEL_MAX);
> -	return i915_modparams.guc_log_level;
> +	GEM_BUG_ON(i915->params.guc_log_level < GUC_LOG_LEVEL_DISABLED);
> +	GEM_BUG_ON(i915->params.guc_log_level > GUC_LOG_LEVEL_MAX);
> +	return i915->params.guc_log_level;
>  }
>  
>  int intel_guc_log_create(struct intel_guc_log *log)
> diff --git a/drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c b/drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c
> index 94eb63f309ce..fdfeb4b9b0f5 100644
> --- a/drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c
> +++ b/drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c
> @@ -660,10 +660,12 @@ void intel_guc_submission_disable(struct intel_guc *guc)
>  
>  static bool __guc_submission_selected(struct intel_guc *guc)
>  {
> +	struct drm_i915_private *i915 = guc_to_gt(guc)->i915;
> +
>  	if (!intel_guc_submission_is_supported(guc))
>  		return false;
>  
> -	return i915_modparams.enable_guc & ENABLE_GUC_SUBMISSION;
> +	return i915->params.enable_guc & ENABLE_GUC_SUBMISSION;
>  }
>  
>  void intel_guc_submission_init_early(struct intel_guc *guc)
> diff --git a/drivers/gpu/drm/i915/gt/uc/intel_uc.c b/drivers/gpu/drm/i915/gt/uc/intel_uc.c
> index f518fe05c6f9..1c2d6358826c 100644
> --- a/drivers/gpu/drm/i915/gt/uc/intel_uc.c
> +++ b/drivers/gpu/drm/i915/gt/uc/intel_uc.c
> @@ -47,15 +47,15 @@ static void __confirm_options(struct intel_uc *uc)
>  
>  	drm_dbg(&i915->drm,
>  		"enable_guc=%d (guc:%s submission:%s huc:%s)\n",
> -		i915_modparams.enable_guc,
> +		i915->params.enable_guc,
>  		yesno(intel_uc_wants_guc(uc)),
>  		yesno(intel_uc_wants_guc_submission(uc)),
>  		yesno(intel_uc_wants_huc(uc)));
>  
> -	if (i915_modparams.enable_guc == -1)
> +	if (i915->params.enable_guc == -1)
>  		return;
>  
> -	if (i915_modparams.enable_guc == 0) {
> +	if (i915->params.enable_guc == 0) {
>  		GEM_BUG_ON(intel_uc_wants_guc(uc));
>  		GEM_BUG_ON(intel_uc_wants_guc_submission(uc));
>  		GEM_BUG_ON(intel_uc_wants_huc(uc));
> @@ -65,25 +65,25 @@ static void __confirm_options(struct intel_uc *uc)
>  	if (!intel_uc_supports_guc(uc))
>  		drm_info(&i915->drm,
>  			 "Incompatible option enable_guc=%d - %s\n",
> -			 i915_modparams.enable_guc, "GuC is not supported!");
> +			 i915->params.enable_guc, "GuC is not supported!");
>  
> -	if (i915_modparams.enable_guc & ENABLE_GUC_LOAD_HUC &&
> +	if (i915->params.enable_guc & ENABLE_GUC_LOAD_HUC &&
>  	    !intel_uc_supports_huc(uc))
>  		drm_info(&i915->drm,
>  			 "Incompatible option enable_guc=%d - %s\n",
> -			 i915_modparams.enable_guc, "HuC is not supported!");
> +			 i915->params.enable_guc, "HuC is not supported!");
>  
> -	if (i915_modparams.enable_guc & ENABLE_GUC_SUBMISSION &&
> +	if (i915->params.enable_guc & ENABLE_GUC_SUBMISSION &&
>  	    !intel_uc_supports_guc_submission(uc))
>  		drm_info(&i915->drm,
>  			 "Incompatible option enable_guc=%d - %s\n",
> -			 i915_modparams.enable_guc, "GuC submission is N/A");
> +			 i915->params.enable_guc, "GuC submission is N/A");
>  
> -	if (i915_modparams.enable_guc & ~(ENABLE_GUC_SUBMISSION |
> +	if (i915->params.enable_guc & ~(ENABLE_GUC_SUBMISSION |
>  					  ENABLE_GUC_LOAD_HUC))
>  		drm_info(&i915->drm,
>  			 "Incompatible option enable_guc=%d - %s\n",
> -			 i915_modparams.enable_guc, "undocumented flag");
> +			 i915->params.enable_guc, "undocumented flag");
>  }
>  
>  void intel_uc_init_early(struct intel_uc *uc)
> diff --git a/drivers/gpu/drm/i915/gt/uc/intel_uc_fw.c b/drivers/gpu/drm/i915/gt/uc/intel_uc_fw.c
> index e1caae93996d..ef777e207f5c 100644
> --- a/drivers/gpu/drm/i915/gt/uc/intel_uc_fw.c
> +++ b/drivers/gpu/drm/i915/gt/uc/intel_uc_fw.c
> @@ -114,6 +114,7 @@ struct __packed uc_fw_platform_requirement {
>  static void
>  __uc_fw_auto_select(struct intel_uc_fw *uc_fw, enum intel_platform p, u8 rev)
>  {
> +	struct drm_i915_private *i915 = __uc_fw_to_gt(uc_fw)->i915;
>  	static const struct uc_fw_platform_requirement fw_blobs[] = {
>  		INTEL_UC_FIRMWARE_DEFS(MAKE_FW_LIST, GUC_FW_BLOB, HUC_FW_BLOB)
>  	};
> @@ -151,35 +152,36 @@ __uc_fw_auto_select(struct intel_uc_fw *uc_fw, enum intel_platform p, u8 rev)
>  	}
>  
>  	/* We don't want to enable GuC/HuC on pre-Gen11 by default */
> -	if (i915_modparams.enable_guc == -1 && p < INTEL_ICELAKE)
> +	if (i915->params.enable_guc == -1 && p < INTEL_ICELAKE)
>  		uc_fw->path = NULL;
>  }
>  
> -static const char *__override_guc_firmware_path(void)
> +static const char *__override_guc_firmware_path(struct drm_i915_private *i915)
>  {
> -	if (i915_modparams.enable_guc & (ENABLE_GUC_SUBMISSION |
> -					 ENABLE_GUC_LOAD_HUC))
> -		return i915_modparams.guc_firmware_path;
> +	if (i915->params.enable_guc & (ENABLE_GUC_SUBMISSION |
> +				       ENABLE_GUC_LOAD_HUC))
> +		return i915->params.guc_firmware_path;
>  	return "";
>  }
>  
> -static const char *__override_huc_firmware_path(void)
> +static const char *__override_huc_firmware_path(struct drm_i915_private *i915)
>  {
> -	if (i915_modparams.enable_guc & ENABLE_GUC_LOAD_HUC)
> -		return i915_modparams.huc_firmware_path;
> +	if (i915->params.enable_guc & ENABLE_GUC_LOAD_HUC)
> +		return i915->params.huc_firmware_path;
>  	return "";
>  }
>  
>  static void __uc_fw_user_override(struct intel_uc_fw *uc_fw)
>  {
> +	struct drm_i915_private *i915 = __uc_fw_to_gt(uc_fw)->i915;
>  	const char *path = NULL;
>  
>  	switch (uc_fw->type) {
>  	case INTEL_UC_FW_TYPE_GUC:
> -		path = __override_guc_firmware_path();
> +		path = __override_guc_firmware_path(i915);
>  		break;
>  	case INTEL_UC_FW_TYPE_HUC:
> -		path = __override_huc_firmware_path();
> +		path = __override_huc_firmware_path(i915);
>  		break;
>  	}
>  
> diff --git a/drivers/gpu/drm/i915/i915_debugfs.c b/drivers/gpu/drm/i915/i915_debugfs.c
> index 8e98df6a3045..9c190c7d8f74 100644
> --- a/drivers/gpu/drm/i915/i915_debugfs.c
> +++ b/drivers/gpu/drm/i915/i915_debugfs.c
> @@ -64,7 +64,7 @@ static int i915_capabilities(struct seq_file *m, void *data)
>  	intel_driver_caps_print(&i915->caps, &p);
>  
>  	kernel_param_lock(THIS_MODULE);
> -	i915_params_dump(&i915_modparams, &p);
> +	i915_params_dump(&i915->params, &p);
>  	kernel_param_unlock(THIS_MODULE);
>  
>  	return 0;
> diff --git a/drivers/gpu/drm/i915/i915_debugfs_params.c b/drivers/gpu/drm/i915/i915_debugfs_params.c
> index 62b2c5f0495d..4e2b077692cb 100644
> --- a/drivers/gpu/drm/i915/i915_debugfs_params.c
> +++ b/drivers/gpu/drm/i915/i915_debugfs_params.c
> @@ -138,9 +138,6 @@ static ssize_t i915_param_charp_write(struct file *file,
>  	char **s = m->private;
>  	char *new, *old;
>  
> -	/* FIXME: remove locking after params aren't the module params */
> -	kernel_param_lock(THIS_MODULE);
> -
>  	old = *s;
>  	new = strndup_user(ubuf, PAGE_SIZE);
>  	if (IS_ERR(new)) {
> @@ -152,8 +149,6 @@ static ssize_t i915_param_charp_write(struct file *file,
>  
>  	kfree(old);
>  out:
> -	kernel_param_unlock(THIS_MODULE);
> -
>  	return len;
>  }
>  
> @@ -229,7 +224,7 @@ _i915_param_create_file(struct dentry *parent, const char *name,
>  struct dentry *i915_debugfs_params(struct drm_i915_private *i915)
>  {
>  	struct drm_minor *minor = i915->drm.primary;
> -	struct i915_params *params = &i915_modparams;
> +	struct i915_params *params = &i915->params;
>  	struct dentry *dir;
>  
>  	dir = debugfs_create_dir("i915_params", minor->debugfs_root);
> diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c
> index 34ee12f3f02d..67102dc26fce 100644
> --- a/drivers/gpu/drm/i915/i915_drv.c
> +++ b/drivers/gpu/drm/i915/i915_drv.c
> @@ -501,6 +501,8 @@ static void i915_driver_late_release(struct drm_i915_private *dev_priv)
>  
>  	cpu_latency_qos_remove_request(&dev_priv->sb_qos);
>  	mutex_destroy(&dev_priv->sb_lock);
> +
> +	i915_params_free(&dev_priv->params);
>  }
>  
>  /**
> @@ -915,6 +917,9 @@ i915_driver_create(struct pci_dev *pdev, const struct pci_device_id *ent)
>  	i915->drm.pdev = pdev;
>  	pci_set_drvdata(pdev, i915);
>  
> +	/* Device parameters start as a copy of module parameters. */
> +	i915_params_copy(&i915->params, &i915_modparams);
> +
>  	/* Setup the write-once "constant" device info */
>  	device_info = mkwrite_device_info(i915);
>  	memcpy(device_info, match_info, sizeof(*device_info));
> @@ -948,7 +953,7 @@ int i915_driver_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
>  		return PTR_ERR(i915);
>  
>  	/* Disable nuclear pageflip by default on pre-ILK */
> -	if (!i915_modparams.nuclear_pageflip && match_info->gen < 5)
> +	if (!i915->params.nuclear_pageflip && match_info->gen < 5)
>  		i915->drm.driver_features &= ~DRIVER_ATOMIC;
>  
>  	/*
> @@ -958,7 +963,7 @@ int i915_driver_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
>  #if IS_ENABLED(CONFIG_DRM_I915_SELFTEST)
>  	if (IS_ENABLED(CONFIG_DRM_I915_UNSTABLE_FAKE_LMEM)) {
>  		if (INTEL_GEN(i915) >= 9 && i915_selftest.live < 0 &&
> -		    i915_modparams.fake_lmem_start) {
> +		    i915->params.fake_lmem_start) {
>  			mkwrite_device_info(i915)->memory_regions =
>  				REGION_SMEM | REGION_LMEM | REGION_STOLEN;
>  			mkwrite_device_info(i915)->is_dgfx = true;
> diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
> index a378d52341e6..32e899c52ed9 100644
> --- a/drivers/gpu/drm/i915/i915_drv.h
> +++ b/drivers/gpu/drm/i915/i915_drv.h
> @@ -829,6 +829,9 @@ struct drm_i915_private {
>  	/* FIXME: Device release actions should all be moved to drmm_ */
>  	bool do_release;
>  
> +	/* i915 device parameters */
> +	struct i915_params params;
> +
>  	const struct intel_device_info __info; /* Use INTEL_INFO() to access. */
>  	struct intel_runtime_info __runtime; /* Use RUNTIME_INFO() to access. */
>  	struct intel_driver_caps caps;
> @@ -1658,7 +1661,7 @@ IS_SUBPLATFORM(const struct drm_i915_private *i915,
>  #define HAS_DISPLAY(dev_priv) (INTEL_INFO(dev_priv)->pipe_mask != 0)
>  
>  /* Only valid when HAS_DISPLAY() is true */
> -#define INTEL_DISPLAY_ENABLED(dev_priv) (WARN_ON(!HAS_DISPLAY(dev_priv)), !i915_modparams.disable_display)
> +#define INTEL_DISPLAY_ENABLED(dev_priv) (WARN_ON(!HAS_DISPLAY(dev_priv)), !dev_priv->params.disable_display)
>  
>  static inline bool intel_vtd_active(void)
>  {
> diff --git a/drivers/gpu/drm/i915/i915_getparam.c b/drivers/gpu/drm/i915/i915_getparam.c
> index 54fce81d5724..c4a1fac9eb93 100644
> --- a/drivers/gpu/drm/i915/i915_getparam.c
> +++ b/drivers/gpu/drm/i915/i915_getparam.c
> @@ -80,7 +80,7 @@ int i915_getparam_ioctl(struct drm_device *dev, void *data,
>  			return -ENODEV;
>  		break;
>  	case I915_PARAM_HAS_GPU_RESET:
> -		value = i915_modparams.enable_hangcheck &&
> +		value = i915->params.enable_hangcheck &&
>  			intel_has_gpu_reset(&i915->gt);
>  		if (value && intel_has_reset_engine(&i915->gt))
>  			value = 2;
> diff --git a/drivers/gpu/drm/i915/i915_gpu_error.c b/drivers/gpu/drm/i915/i915_gpu_error.c
> index eec292d06f11..866166ada10e 100644
> --- a/drivers/gpu/drm/i915/i915_gpu_error.c
> +++ b/drivers/gpu/drm/i915/i915_gpu_error.c
> @@ -1698,7 +1698,7 @@ static void capture_gen(struct i915_gpu_coredump *error)
>  	error->reset_count = i915_reset_count(&i915->gpu_error);
>  	error->suspend_count = i915->suspend_count;
>  
> -	i915_params_copy(&error->params, &i915_modparams);
> +	i915_params_copy(&error->params, &i915->params);
>  	memcpy(&error->device_info,
>  	       INTEL_INFO(i915),
>  	       sizeof(error->device_info));
> @@ -1713,7 +1713,7 @@ i915_gpu_coredump_alloc(struct drm_i915_private *i915, gfp_t gfp)
>  {
>  	struct i915_gpu_coredump *error;
>  
> -	if (!i915_modparams.error_capture)
> +	if (!i915->params.error_capture)
>  		return NULL;
>  
>  	error = kzalloc(sizeof(*error), gfp);
> diff --git a/drivers/gpu/drm/i915/intel_gvt.c b/drivers/gpu/drm/i915/intel_gvt.c
> index 21b91313cc5d..d9bb9a759740 100644
> --- a/drivers/gpu/drm/i915/intel_gvt.c
> +++ b/drivers/gpu/drm/i915/intel_gvt.c
> @@ -64,7 +64,7 @@ static bool is_supported_device(struct drm_i915_private *dev_priv)
>   */
>  void intel_gvt_sanitize_options(struct drm_i915_private *dev_priv)
>  {
> -	if (!i915_modparams.enable_gvt)
> +	if (!dev_priv->params.enable_gvt)
>  		return;
>  
>  	if (intel_vgpu_active(dev_priv)) {
> @@ -80,7 +80,7 @@ void intel_gvt_sanitize_options(struct drm_i915_private *dev_priv)
>  
>  	return;
>  bail:
> -	i915_modparams.enable_gvt = 0;
> +	dev_priv->params.enable_gvt = 0;
>  }
>  
>  /**
> @@ -100,7 +100,7 @@ int intel_gvt_init(struct drm_i915_private *dev_priv)
>  	if (i915_inject_probe_failure(dev_priv))
>  		return -ENODEV;
>  
> -	if (!i915_modparams.enable_gvt) {
> +	if (!dev_priv->params.enable_gvt) {
>  		drm_dbg(&dev_priv->drm,
>  			"GVT-g is disabled by kernel params\n");
>  		return 0;
> @@ -121,7 +121,7 @@ int intel_gvt_init(struct drm_i915_private *dev_priv)
>  	return 0;
>  
>  bail:
> -	i915_modparams.enable_gvt = 0;
> +	dev_priv->params.enable_gvt = 0;
>  	return 0;
>  }
>  
> diff --git a/drivers/gpu/drm/i915/intel_region_lmem.c b/drivers/gpu/drm/i915/intel_region_lmem.c
> index 14b59b899c9b..40d8f1a95df6 100644
> --- a/drivers/gpu/drm/i915/intel_region_lmem.c
> +++ b/drivers/gpu/drm/i915/intel_region_lmem.c
> @@ -76,7 +76,7 @@ region_lmem_init(struct intel_memory_region *mem)
>  {
>  	int ret;
>  
> -	if (i915_modparams.fake_lmem_start) {
> +	if (mem->i915->params.fake_lmem_start) {
>  		ret = init_fake_lmem_bar(mem);
>  		GEM_BUG_ON(ret);
>  	}
> @@ -111,12 +111,12 @@ intel_setup_fake_lmem(struct drm_i915_private *i915)
>  	resource_size_t start;
>  
>  	GEM_BUG_ON(i915_ggtt_has_aperture(&i915->ggtt));
> -	GEM_BUG_ON(!i915_modparams.fake_lmem_start);
> +	GEM_BUG_ON(!i915->params.fake_lmem_start);
>  
>  	/* Your mappable aperture belongs to me now! */
>  	mappable_end = pci_resource_len(pdev, 2);
>  	io_start = pci_resource_start(pdev, 2),
> -	start = i915_modparams.fake_lmem_start;
> +	start = i915->params.fake_lmem_start;
>  
>  	mem = intel_memory_region_create(i915,
>  					 start,
> diff --git a/drivers/gpu/drm/i915/intel_uncore.c b/drivers/gpu/drm/i915/intel_uncore.c
> index a61cb8ca4d50..fb08b24e92c8 100644
> --- a/drivers/gpu/drm/i915/intel_uncore.c
> +++ b/drivers/gpu/drm/i915/intel_uncore.c
> @@ -1185,7 +1185,7 @@ __unclaimed_reg_debug(struct intel_uncore *uncore,
>  		     read ? "read from" : "write to",
>  		     i915_mmio_reg_offset(reg)))
>  		/* Only report the first N failures */
> -		i915_modparams.mmio_debug--;
> +		uncore->i915->params.mmio_debug--;
>  }
>  
>  static inline void
> @@ -1194,7 +1194,7 @@ unclaimed_reg_debug(struct intel_uncore *uncore,
>  		    const bool read,
>  		    const bool before)
>  {
> -	if (likely(!i915_modparams.mmio_debug))
> +	if (likely(!uncore->i915->params.mmio_debug))
>  		return;
>  
>  	/* interrupts are disabled and re-enabled around uncore->lock usage */
> @@ -2093,12 +2093,12 @@ intel_uncore_arm_unclaimed_mmio_detection(struct intel_uncore *uncore)
>  		goto out;
>  
>  	if (unlikely(check_for_unclaimed_mmio(uncore))) {
> -		if (!i915_modparams.mmio_debug) {
> +		if (!uncore->i915->params.mmio_debug) {
>  			drm_dbg(&uncore->i915->drm,
>  				"Unclaimed register detected, "
>  				"enabling oneshot unclaimed register reporting. "
>  				"Please use i915.mmio_debug=N for more information.\n");
> -			i915_modparams.mmio_debug++;
> +			uncore->i915->params.mmio_debug++;
>  		}
>  		uncore->debug->unclaimed_mmio_check--;
>  		ret = true;
> -- 
> 2.20.1
> 
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@xxxxxxxxxxxxxxxxxxxxx
> https://lists.freedesktop.org/mailman/listinfo/intel-gfx
_______________________________________________
Intel-gfx mailing list
Intel-gfx@xxxxxxxxxxxxxxxxxxxxx
https://lists.freedesktop.org/mailman/listinfo/intel-gfx




[Index of Archives]     [AMD Graphics]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux