All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jani Nikula <jani.nikula@linux.intel.com>
To: Chris Wilson <chris@chris-wilson.co.uk>, intel-gfx@lists.freedesktop.org
Subject: Re: [PATCH 1/2] drm/i915/opregion: Convert to using native drm_i915_private
Date: Mon, 23 May 2016 17:35:15 +0300	[thread overview]
Message-ID: <87y470deqk.fsf@intel.com> (raw)
In-Reply-To: <1464012490-30961-1-git-send-email-chris@chris-wilson.co.uk>

On Mon, 23 May 2016, Chris Wilson <chris@chris-wilson.co.uk> wrote:
> Prefer passing struct drm_i915_private to internal interfaces as this
> saves us having to dance between drm_device and our native struct. The
> savings hare are small (only 70 bytes of unrequired dancing), but
> progressive!
>
> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
> Cc: Jani Nikula <jani.nikula@linux.intel.com>

Hmm, I've written this patch! But alas I've never actually sent it to
the list. I guess it conflicted with some of the didl stuff I was
playing with at the time.

Reviewed-by: Jani Nikula <jani.nikula@intel.com>

> ---
>  drivers/gpu/drm/i915/i915_dma.c       |   6 +-
>  drivers/gpu/drm/i915/i915_drv.c       |  18 +++---
>  drivers/gpu/drm/i915/i915_drv.h       |  20 +++----
>  drivers/gpu/drm/i915/intel_bios.c     |   2 +-
>  drivers/gpu/drm/i915/intel_opregion.c | 105 +++++++++++++++++-----------------
>  5 files changed, 74 insertions(+), 77 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/i915_dma.c b/drivers/gpu/drm/i915/i915_dma.c
> index 31e859bc74b1..363bd5884a56 100644
> --- a/drivers/gpu/drm/i915/i915_dma.c
> +++ b/drivers/gpu/drm/i915/i915_dma.c
> @@ -1307,7 +1307,7 @@ static int i915_driver_init_hw(struct drm_i915_private *dev_priv)
>  
>  	intel_uncore_sanitize(dev_priv);
>  
> -	intel_opregion_setup(dev);
> +	intel_opregion_setup(dev_priv);
>  
>  	i915_gem_load_init_fences(dev_priv);
>  
> @@ -1376,7 +1376,7 @@ static void i915_driver_register(struct drm_i915_private *dev_priv)
>  
>  	if (INTEL_INFO(dev_priv)->num_pipes) {
>  		/* Must be done after probing outputs */
> -		intel_opregion_init(dev);
> +		intel_opregion_init(dev_priv);
>  		acpi_video_register();
>  	}
>  
> @@ -1395,7 +1395,7 @@ static void i915_driver_unregister(struct drm_i915_private *dev_priv)
>  	i915_audio_component_cleanup(dev_priv);
>  	intel_gpu_ips_teardown();
>  	acpi_video_unregister();
> -	intel_opregion_fini(dev_priv->dev);
> +	intel_opregion_fini(dev_priv);
>  	i915_teardown_sysfs(dev_priv->dev);
>  	i915_gem_shrinker_cleanup(dev_priv);
>  }
> diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c
> index dba03c026151..7627bbec8e37 100644
> --- a/drivers/gpu/drm/i915/i915_drv.c
> +++ b/drivers/gpu/drm/i915/i915_drv.c
> @@ -628,10 +628,10 @@ static int i915_drm_suspend(struct drm_device *dev)
>  	i915_save_state(dev);
>  
>  	opregion_target_state = suspend_to_idle(dev_priv) ? PCI_D1 : PCI_D3cold;
> -	intel_opregion_notify_adapter(dev, opregion_target_state);
> +	intel_opregion_notify_adapter(dev_priv, opregion_target_state);
>  
>  	intel_uncore_forcewake_reset(dev_priv, false);
> -	intel_opregion_fini(dev);
> +	intel_opregion_fini(dev_priv);
>  
>  	intel_fbdev_set_suspend(dev, FBINFO_STATE_SUSPENDED, true);
>  
> @@ -749,7 +749,7 @@ static int i915_drm_resume(struct drm_device *dev)
>  	mutex_unlock(&dev->struct_mutex);
>  
>  	i915_restore_state(dev);
> -	intel_opregion_setup(dev);
> +	intel_opregion_setup(dev_priv);
>  
>  	intel_init_pch_refclk(dev);
>  	drm_mode_config_reset(dev);
> @@ -794,7 +794,7 @@ static int i915_drm_resume(struct drm_device *dev)
>  	/* Config may have changed between suspend and resume */
>  	drm_helper_hpd_irq_event(dev);
>  
> -	intel_opregion_init(dev);
> +	intel_opregion_init(dev_priv);
>  
>  	intel_fbdev_set_suspend(dev, FBINFO_STATE_RUNNING, false);
>  
> @@ -802,7 +802,7 @@ static int i915_drm_resume(struct drm_device *dev)
>  	dev_priv->modeset_restore = MODESET_DONE;
>  	mutex_unlock(&dev_priv->modeset_restore_lock);
>  
> -	intel_opregion_notify_adapter(dev, PCI_D0);
> +	intel_opregion_notify_adapter(dev_priv, PCI_D0);
>  
>  	drm_kms_helper_poll_enable(dev);
>  
> @@ -1596,14 +1596,14 @@ static int intel_runtime_suspend(struct device *device)
>  	 * FIXME: We really should find a document that references the arguments
>  	 * used below!
>  	 */
> -	if (IS_BROADWELL(dev)) {
> +	if (IS_BROADWELL(dev_priv)) {
>  		/*
>  		 * On Broadwell, if we use PCI_D1 the PCH DDI ports will stop
>  		 * being detected, and the call we do at intel_runtime_resume()
>  		 * won't be able to restore them. Since PCI_D3hot matches the
>  		 * actual specification and appears to be working, use it.
>  		 */
> -		intel_opregion_notify_adapter(dev, PCI_D3hot);
> +		intel_opregion_notify_adapter(dev_priv, PCI_D3hot);
>  	} else {
>  		/*
>  		 * current versions of firmware which depend on this opregion
> @@ -1612,7 +1612,7 @@ static int intel_runtime_suspend(struct device *device)
>  		 * to distinguish it from notifications that might be sent via
>  		 * the suspend path.
>  		 */
> -		intel_opregion_notify_adapter(dev, PCI_D1);
> +		intel_opregion_notify_adapter(dev_priv, PCI_D1);
>  	}
>  
>  	assert_forcewakes_inactive(dev_priv);
> @@ -1636,7 +1636,7 @@ static int intel_runtime_resume(struct device *device)
>  	WARN_ON_ONCE(atomic_read(&dev_priv->pm.wakeref_count));
>  	disable_rpm_wakeref_asserts(dev_priv);
>  
> -	intel_opregion_notify_adapter(dev, PCI_D0);
> +	intel_opregion_notify_adapter(dev_priv, PCI_D0);
>  	dev_priv->pm.suspended = false;
>  	if (intel_uncore_unclaimed_mmio(dev_priv))
>  		DRM_DEBUG_DRIVER("Unclaimed access during suspend, bios?\n");
> diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
> index 5ada5c9d2747..caf7e45ae663 100644
> --- a/drivers/gpu/drm/i915/i915_drv.h
> +++ b/drivers/gpu/drm/i915/i915_drv.h
> @@ -3608,19 +3608,19 @@ bool intel_bios_is_port_hpd_inverted(struct drm_i915_private *dev_priv,
>  
>  /* intel_opregion.c */
>  #ifdef CONFIG_ACPI
> -extern int intel_opregion_setup(struct drm_device *dev);
> -extern void intel_opregion_init(struct drm_device *dev);
> -extern void intel_opregion_fini(struct drm_device *dev);
> +extern int intel_opregion_setup(struct drm_i915_private *dev_priv);
> +extern void intel_opregion_init(struct drm_i915_private *dev_priv);
> +extern void intel_opregion_fini(struct drm_i915_private *dev_priv);
>  extern void intel_opregion_asle_intr(struct drm_i915_private *dev_priv);
>  extern int intel_opregion_notify_encoder(struct intel_encoder *intel_encoder,
>  					 bool enable);
> -extern int intel_opregion_notify_adapter(struct drm_device *dev,
> +extern int intel_opregion_notify_adapter(struct drm_i915_private *dev_priv,
>  					 pci_power_t state);
> -extern int intel_opregion_get_panel_type(struct drm_device *dev);
> +extern int intel_opregion_get_panel_type(struct drm_i915_private *dev_priv);
>  #else
> -static inline int intel_opregion_setup(struct drm_device *dev) { return 0; }
> -static inline void intel_opregion_init(struct drm_device *dev) { return; }
> -static inline void intel_opregion_fini(struct drm_device *dev) { return; }
> +static inline int intel_opregion_setup(struct drm_i915_private *dev) { return 0; }
> +static inline void intel_opregion_init(struct drm_i915_private *dev) { }
> +static inline void intel_opregion_fini(struct drm_i915_private *dev) { }
>  static inline void intel_opregion_asle_intr(struct drm_i915_private *dev_priv)
>  {
>  }
> @@ -3630,11 +3630,11 @@ intel_opregion_notify_encoder(struct intel_encoder *intel_encoder, bool enable)
>  	return 0;
>  }
>  static inline int
> -intel_opregion_notify_adapter(struct drm_device *dev, pci_power_t state)
> +intel_opregion_notify_adapter(struct drm_i915_private *dev, pci_power_t state)
>  {
>  	return 0;
>  }
> -static inline int intel_opregion_get_panel_type(struct drm_device *dev)
> +static inline int intel_opregion_get_panel_type(struct drm_i915_private *dev)
>  {
>  	return -ENODEV;
>  }
> diff --git a/drivers/gpu/drm/i915/intel_bios.c b/drivers/gpu/drm/i915/intel_bios.c
> index 8b68c4882fba..624e755e451f 100644
> --- a/drivers/gpu/drm/i915/intel_bios.c
> +++ b/drivers/gpu/drm/i915/intel_bios.c
> @@ -213,7 +213,7 @@ parse_lfp_panel_data(struct drm_i915_private *dev_priv,
>  
>  	dev_priv->vbt.lvds_dither = lvds_options->pixel_dither;
>  
> -	ret = intel_opregion_get_panel_type(dev_priv->dev);
> +	ret = intel_opregion_get_panel_type(dev_priv);
>  	if (ret >= 0) {
>  		WARN_ON(ret > 0xf);
>  		panel_type = ret;
> diff --git a/drivers/gpu/drm/i915/intel_opregion.c b/drivers/gpu/drm/i915/intel_opregion.c
> index 8347fd8af8e4..f9cdec866e49 100644
> --- a/drivers/gpu/drm/i915/intel_opregion.c
> +++ b/drivers/gpu/drm/i915/intel_opregion.c
> @@ -240,10 +240,11 @@ struct opregion_asle_ext {
>  
>  #define MAX_DSLP	1500
>  
> -static int swsci(struct drm_device *dev, u32 function, u32 parm, u32 *parm_out)
> +static int swsci(struct drm_i915_private *dev_priv,
> +		 u32 function, u32 parm, u32 *parm_out)
>  {
> -	struct drm_i915_private *dev_priv = dev->dev_private;
>  	struct opregion_swsci *swsci = dev_priv->opregion.swsci;
> +	struct pci_dev *pdev = dev_priv->dev->pdev;
>  	u32 main_function, sub_function, scic;
>  	u16 swsci_val;
>  	u32 dslp;
> @@ -293,16 +294,16 @@ static int swsci(struct drm_device *dev, u32 function, u32 parm, u32 *parm_out)
>  	swsci->scic = scic;
>  
>  	/* Ensure SCI event is selected and event trigger is cleared. */
> -	pci_read_config_word(dev->pdev, SWSCI, &swsci_val);
> +	pci_read_config_word(pdev, SWSCI, &swsci_val);
>  	if (!(swsci_val & SWSCI_SCISEL) || (swsci_val & SWSCI_GSSCIE)) {
>  		swsci_val |= SWSCI_SCISEL;
>  		swsci_val &= ~SWSCI_GSSCIE;
> -		pci_write_config_word(dev->pdev, SWSCI, swsci_val);
> +		pci_write_config_word(pdev, SWSCI, swsci_val);
>  	}
>  
>  	/* Use event trigger to tell bios to check the mail. */
>  	swsci_val |= SWSCI_GSSCIE;
> -	pci_write_config_word(dev->pdev, SWSCI, swsci_val);
> +	pci_write_config_word(pdev, SWSCI, swsci_val);
>  
>  	/* Poll for the result. */
>  #define C (((scic = swsci->scic) & SWSCI_SCIC_INDICATOR) == 0)
> @@ -336,13 +337,13 @@ static int swsci(struct drm_device *dev, u32 function, u32 parm, u32 *parm_out)
>  int intel_opregion_notify_encoder(struct intel_encoder *intel_encoder,
>  				  bool enable)
>  {
> -	struct drm_device *dev = intel_encoder->base.dev;
> +	struct drm_i915_private *dev_priv = to_i915(intel_encoder->base.dev);
>  	u32 parm = 0;
>  	u32 type = 0;
>  	u32 port;
>  
>  	/* don't care about old stuff for now */
> -	if (!HAS_DDI(dev))
> +	if (!HAS_DDI(dev_priv))
>  		return 0;
>  
>  	if (intel_encoder->type == INTEL_OUTPUT_DSI)
> @@ -382,7 +383,7 @@ int intel_opregion_notify_encoder(struct intel_encoder *intel_encoder,
>  
>  	parm |= type << (16 + port * 3);
>  
> -	return swsci(dev, SWSCI_SBCB_DISPLAY_POWER_STATE, parm, NULL);
> +	return swsci(dev_priv, SWSCI_SBCB_DISPLAY_POWER_STATE, parm, NULL);
>  }
>  
>  static const struct {
> @@ -396,27 +397,28 @@ static const struct {
>  	{ PCI_D3cold,	0x04 },
>  };
>  
> -int intel_opregion_notify_adapter(struct drm_device *dev, pci_power_t state)
> +int intel_opregion_notify_adapter(struct drm_i915_private *dev_priv,
> +				  pci_power_t state)
>  {
>  	int i;
>  
> -	if (!HAS_DDI(dev))
> +	if (!HAS_DDI(dev_priv))
>  		return 0;
>  
>  	for (i = 0; i < ARRAY_SIZE(power_state_map); i++) {
>  		if (state == power_state_map[i].pci_power_state)
> -			return swsci(dev, SWSCI_SBCB_ADAPTER_POWER_STATE,
> +			return swsci(dev_priv, SWSCI_SBCB_ADAPTER_POWER_STATE,
>  				     power_state_map[i].parm, NULL);
>  	}
>  
>  	return -EINVAL;
>  }
>  
> -static u32 asle_set_backlight(struct drm_device *dev, u32 bclp)
> +static u32 asle_set_backlight(struct drm_i915_private *dev_priv, u32 bclp)
>  {
> -	struct drm_i915_private *dev_priv = dev->dev_private;
>  	struct intel_connector *connector;
>  	struct opregion_asle *asle = dev_priv->opregion.asle;
> +	struct drm_device *dev = dev_priv->dev;
>  
>  	DRM_DEBUG_DRIVER("bclp = 0x%08x\n", bclp);
>  
> @@ -449,7 +451,7 @@ static u32 asle_set_backlight(struct drm_device *dev, u32 bclp)
>  	return 0;
>  }
>  
> -static u32 asle_set_als_illum(struct drm_device *dev, u32 alsi)
> +static u32 asle_set_als_illum(struct drm_i915_private *dev_priv, u32 alsi)
>  {
>  	/* alsi is the current ALS reading in lux. 0 indicates below sensor
>  	   range, 0xffff indicates above sensor range. 1-0xfffe are valid */
> @@ -457,13 +459,13 @@ static u32 asle_set_als_illum(struct drm_device *dev, u32 alsi)
>  	return ASLC_ALS_ILLUM_FAILED;
>  }
>  
> -static u32 asle_set_pwm_freq(struct drm_device *dev, u32 pfmb)
> +static u32 asle_set_pwm_freq(struct drm_i915_private *dev_priv, u32 pfmb)
>  {
>  	DRM_DEBUG_DRIVER("PWM freq is not supported\n");
>  	return ASLC_PWM_FREQ_FAILED;
>  }
>  
> -static u32 asle_set_pfit(struct drm_device *dev, u32 pfit)
> +static u32 asle_set_pfit(struct drm_i915_private *dev_priv, u32 pfit)
>  {
>  	/* Panel fitting is currently controlled by the X code, so this is a
>  	   noop until modesetting support works fully */
> @@ -471,13 +473,13 @@ static u32 asle_set_pfit(struct drm_device *dev, u32 pfit)
>  	return ASLC_PFIT_FAILED;
>  }
>  
> -static u32 asle_set_supported_rotation_angles(struct drm_device *dev, u32 srot)
> +static u32 asle_set_supported_rotation_angles(struct drm_i915_private *dev_priv, u32 srot)
>  {
>  	DRM_DEBUG_DRIVER("SROT is not supported\n");
>  	return ASLC_ROTATION_ANGLES_FAILED;
>  }
>  
> -static u32 asle_set_button_array(struct drm_device *dev, u32 iuer)
> +static u32 asle_set_button_array(struct drm_i915_private *dev_priv, u32 iuer)
>  {
>  	if (!iuer)
>  		DRM_DEBUG_DRIVER("Button array event is not supported (nothing)\n");
> @@ -495,7 +497,7 @@ static u32 asle_set_button_array(struct drm_device *dev, u32 iuer)
>  	return ASLC_BUTTON_ARRAY_FAILED;
>  }
>  
> -static u32 asle_set_convertible(struct drm_device *dev, u32 iuer)
> +static u32 asle_set_convertible(struct drm_i915_private *dev_priv, u32 iuer)
>  {
>  	if (iuer & ASLE_IUER_CONVERTIBLE)
>  		DRM_DEBUG_DRIVER("Convertible is not supported (clamshell)\n");
> @@ -505,7 +507,7 @@ static u32 asle_set_convertible(struct drm_device *dev, u32 iuer)
>  	return ASLC_CONVERTIBLE_FAILED;
>  }
>  
> -static u32 asle_set_docking(struct drm_device *dev, u32 iuer)
> +static u32 asle_set_docking(struct drm_i915_private *dev_priv, u32 iuer)
>  {
>  	if (iuer & ASLE_IUER_DOCKING)
>  		DRM_DEBUG_DRIVER("Docking is not supported (docked)\n");
> @@ -515,7 +517,7 @@ static u32 asle_set_docking(struct drm_device *dev, u32 iuer)
>  	return ASLC_DOCKING_FAILED;
>  }
>  
> -static u32 asle_isct_state(struct drm_device *dev)
> +static u32 asle_isct_state(struct drm_i915_private *dev_priv)
>  {
>  	DRM_DEBUG_DRIVER("ISCT is not supported\n");
>  	return ASLC_ISCT_STATE_FAILED;
> @@ -527,7 +529,6 @@ static void asle_work(struct work_struct *work)
>  		container_of(work, struct intel_opregion, asle_work);
>  	struct drm_i915_private *dev_priv =
>  		container_of(opregion, struct drm_i915_private, opregion);
> -	struct drm_device *dev = dev_priv->dev;
>  	struct opregion_asle *asle = dev_priv->opregion.asle;
>  	u32 aslc_stat = 0;
>  	u32 aslc_req;
> @@ -544,32 +545,32 @@ static void asle_work(struct work_struct *work)
>  	}
>  
>  	if (aslc_req & ASLC_SET_ALS_ILLUM)
> -		aslc_stat |= asle_set_als_illum(dev, asle->alsi);
> +		aslc_stat |= asle_set_als_illum(dev_priv, asle->alsi);
>  
>  	if (aslc_req & ASLC_SET_BACKLIGHT)
> -		aslc_stat |= asle_set_backlight(dev, asle->bclp);
> +		aslc_stat |= asle_set_backlight(dev_priv, asle->bclp);
>  
>  	if (aslc_req & ASLC_SET_PFIT)
> -		aslc_stat |= asle_set_pfit(dev, asle->pfit);
> +		aslc_stat |= asle_set_pfit(dev_priv, asle->pfit);
>  
>  	if (aslc_req & ASLC_SET_PWM_FREQ)
> -		aslc_stat |= asle_set_pwm_freq(dev, asle->pfmb);
> +		aslc_stat |= asle_set_pwm_freq(dev_priv, asle->pfmb);
>  
>  	if (aslc_req & ASLC_SUPPORTED_ROTATION_ANGLES)
> -		aslc_stat |= asle_set_supported_rotation_angles(dev,
> +		aslc_stat |= asle_set_supported_rotation_angles(dev_priv,
>  							asle->srot);
>  
>  	if (aslc_req & ASLC_BUTTON_ARRAY)
> -		aslc_stat |= asle_set_button_array(dev, asle->iuer);
> +		aslc_stat |= asle_set_button_array(dev_priv, asle->iuer);
>  
>  	if (aslc_req & ASLC_CONVERTIBLE_INDICATOR)
> -		aslc_stat |= asle_set_convertible(dev, asle->iuer);
> +		aslc_stat |= asle_set_convertible(dev_priv, asle->iuer);
>  
>  	if (aslc_req & ASLC_DOCKING_INDICATOR)
> -		aslc_stat |= asle_set_docking(dev, asle->iuer);
> +		aslc_stat |= asle_set_docking(dev_priv, asle->iuer);
>  
>  	if (aslc_req & ASLC_ISCT_STATE_CHANGE)
> -		aslc_stat |= asle_isct_state(dev);
> +		aslc_stat |= asle_isct_state(dev_priv);
>  
>  	asle->aslc = aslc_stat;
>  }
> @@ -656,10 +657,10 @@ static void set_did(struct intel_opregion *opregion, int i, u32 val)
>  	}
>  }
>  
> -static void intel_didl_outputs(struct drm_device *dev)
> +static void intel_didl_outputs(struct drm_i915_private *dev_priv)
>  {
> -	struct drm_i915_private *dev_priv = dev->dev_private;
>  	struct intel_opregion *opregion = &dev_priv->opregion;
> +	struct pci_dev *pdev = dev_priv->dev->pdev;
>  	struct drm_connector *connector;
>  	acpi_handle handle;
>  	struct acpi_device *acpi_dev, *acpi_cdev, *acpi_video_bus = NULL;
> @@ -668,7 +669,7 @@ static void intel_didl_outputs(struct drm_device *dev)
>  	u32 temp, max_outputs;
>  	int i = 0;
>  
> -	handle = ACPI_HANDLE(&dev->pdev->dev);
> +	handle = ACPI_HANDLE(&pdev->dev);
>  	if (!handle || acpi_bus_get_device(handle, &acpi_dev))
>  		return;
>  
> @@ -723,7 +724,7 @@ end:
>  
>  blind_set:
>  	i = 0;
> -	list_for_each_entry(connector, &dev->mode_config.connector_list, head) {
> +	list_for_each_entry(connector, &dev_priv->dev->mode_config.connector_list, head) {
>  		int output_type = ACPI_OTHER_OUTPUT;
>  		if (i >= max_outputs) {
>  			DRM_DEBUG_KMS("More than %u outputs in connector list\n",
> @@ -759,9 +760,8 @@ blind_set:
>  	goto end;
>  }
>  
> -static void intel_setup_cadls(struct drm_device *dev)
> +static void intel_setup_cadls(struct drm_i915_private *dev_priv)
>  {
> -	struct drm_i915_private *dev_priv = dev->dev_private;
>  	struct intel_opregion *opregion = &dev_priv->opregion;
>  	int i = 0;
>  	u32 disp_id;
> @@ -778,17 +778,16 @@ static void intel_setup_cadls(struct drm_device *dev)
>  	} while (++i < 8 && disp_id != 0);
>  }
>  
> -void intel_opregion_init(struct drm_device *dev)
> +void intel_opregion_init(struct drm_i915_private *dev_priv)
>  {
> -	struct drm_i915_private *dev_priv = dev->dev_private;
>  	struct intel_opregion *opregion = &dev_priv->opregion;
>  
>  	if (!opregion->header)
>  		return;
>  
>  	if (opregion->acpi) {
> -		intel_didl_outputs(dev);
> -		intel_setup_cadls(dev);
> +		intel_didl_outputs(dev_priv);
> +		intel_setup_cadls(dev_priv);
>  
>  		/* Notify BIOS we are ready to handle ACPI video ext notifs.
>  		 * Right now, all the events are handled by the ACPI video module.
> @@ -806,9 +805,8 @@ void intel_opregion_init(struct drm_device *dev)
>  	}
>  }
>  
> -void intel_opregion_fini(struct drm_device *dev)
> +void intel_opregion_fini(struct drm_i915_private *dev_priv)
>  {
> -	struct drm_i915_private *dev_priv = dev->dev_private;
>  	struct intel_opregion *opregion = &dev_priv->opregion;
>  
>  	if (!opregion->header)
> @@ -840,9 +838,8 @@ void intel_opregion_fini(struct drm_device *dev)
>  	opregion->lid_state = NULL;
>  }
>  
> -static void swsci_setup(struct drm_device *dev)
> +static void swsci_setup(struct drm_i915_private *dev_priv)
>  {
> -	struct drm_i915_private *dev_priv = dev->dev_private;
>  	struct intel_opregion *opregion = &dev_priv->opregion;
>  	bool requested_callbacks = false;
>  	u32 tmp;
> @@ -852,7 +849,7 @@ static void swsci_setup(struct drm_device *dev)
>  	opregion->swsci_sbcb_sub_functions = 1;
>  
>  	/* We use GBDA to ask for supported GBDA calls. */
> -	if (swsci(dev, SWSCI_GBDA_SUPPORTED_CALLS, 0, &tmp) == 0) {
> +	if (swsci(dev_priv, SWSCI_GBDA_SUPPORTED_CALLS, 0, &tmp) == 0) {
>  		/* make the bits match the sub-function codes */
>  		tmp <<= 1;
>  		opregion->swsci_gbda_sub_functions |= tmp;
> @@ -863,7 +860,7 @@ static void swsci_setup(struct drm_device *dev)
>  	 * must not call interfaces that are not specifically requested by the
>  	 * bios.
>  	 */
> -	if (swsci(dev, SWSCI_GBDA_REQUESTED_CALLBACKS, 0, &tmp) == 0) {
> +	if (swsci(dev_priv, SWSCI_GBDA_REQUESTED_CALLBACKS, 0, &tmp) == 0) {
>  		/* here, the bits already match sub-function codes */
>  		opregion->swsci_sbcb_sub_functions |= tmp;
>  		requested_callbacks = true;
> @@ -874,7 +871,7 @@ static void swsci_setup(struct drm_device *dev)
>  	 * the callback is _requested_. But we still can't call interfaces that
>  	 * are not requested.
>  	 */
> -	if (swsci(dev, SWSCI_SBCB_SUPPORTED_CALLBACKS, 0, &tmp) == 0) {
> +	if (swsci(dev_priv, SWSCI_SBCB_SUPPORTED_CALLBACKS, 0, &tmp) == 0) {
>  		/* make the bits match the sub-function codes */
>  		u32 low = tmp & 0x7ff;
>  		u32 high = tmp & ~0xfff; /* bit 11 is reserved */
> @@ -916,10 +913,10 @@ static const struct dmi_system_id intel_no_opregion_vbt[] = {
>  	{ }
>  };
>  
> -int intel_opregion_setup(struct drm_device *dev)
> +int intel_opregion_setup(struct drm_i915_private *dev_priv)
>  {
> -	struct drm_i915_private *dev_priv = dev->dev_private;
>  	struct intel_opregion *opregion = &dev_priv->opregion;
> +	struct pci_dev *pdev = dev_priv->dev->pdev;
>  	u32 asls, mboxes;
>  	char buf[sizeof(OPREGION_SIGNATURE)];
>  	int err = 0;
> @@ -931,7 +928,7 @@ int intel_opregion_setup(struct drm_device *dev)
>  	BUILD_BUG_ON(sizeof(struct opregion_asle) != 0x100);
>  	BUILD_BUG_ON(sizeof(struct opregion_asle_ext) != 0x400);
>  
> -	pci_read_config_dword(dev->pdev, ASLS, &asls);
> +	pci_read_config_dword(pdev, ASLS, &asls);
>  	DRM_DEBUG_DRIVER("graphic opregion physical addr: 0x%x\n", asls);
>  	if (asls == 0) {
>  		DRM_DEBUG_DRIVER("ACPI OpRegion not supported!\n");
> @@ -963,7 +960,7 @@ int intel_opregion_setup(struct drm_device *dev)
>  	if (mboxes & MBOX_SWSCI) {
>  		DRM_DEBUG_DRIVER("SWSCI supported\n");
>  		opregion->swsci = base + OPREGION_SWSCI_OFFSET;
> -		swsci_setup(dev);
> +		swsci_setup(dev_priv);
>  	}
>  
>  	if (mboxes & MBOX_ASLE) {
> @@ -1012,12 +1009,12 @@ err_out:
>  }
>  
>  int
> -intel_opregion_get_panel_type(struct drm_device *dev)
> +intel_opregion_get_panel_type(struct drm_i915_private *dev_priv)
>  {
>  	u32 panel_details;
>  	int ret;
>  
> -	ret = swsci(dev, SWSCI_GBDA_PANEL_DETAILS, 0x0, &panel_details);
> +	ret = swsci(dev_priv, SWSCI_GBDA_PANEL_DETAILS, 0x0, &panel_details);
>  	if (ret) {
>  		DRM_DEBUG_KMS("Failed to get panel details from OpRegion (%d)\n",
>  			      ret);

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

  parent reply	other threads:[~2016-05-23 14:35 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-05-23 14:08 [PATCH 1/2] drm/i915/opregion: Convert to using native drm_i915_private Chris Wilson
2016-05-23 14:08 ` [PATCH 2/2] drm/i915/opregion: Rename init/fini functions to register/unregister Chris Wilson
2016-05-23 14:42   ` Jani Nikula
2016-05-23 15:01     ` Chris Wilson
2016-05-23 14:35 ` Jani Nikula [this message]
2016-05-23 15:39 ` ✓ Ro.CI.BAT: success for series starting with [1/2] drm/i915/opregion: Convert to using native drm_i915_private Patchwork

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=87y470deqk.fsf@intel.com \
    --to=jani.nikula@linux.intel.com \
    --cc=chris@chris-wilson.co.uk \
    --cc=intel-gfx@lists.freedesktop.org \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.