diff options
| author | Dave Airlie <[email protected]> | 2016-07-15 13:50:58 +1000 | 
|---|---|---|
| committer | Dave Airlie <[email protected]> | 2016-07-15 13:50:58 +1000 | 
| commit | ff37c05a996bb96eccc21f4fb1b32ba0e24f3443 (patch) | |
| tree | c09b09b37521f2f8f3f7a9bb3b0a33a2b3bde1a1 /drivers/gpu/drm/i915/i915_gem_shrinker.c | |
| parent | 6c181c82106e12dced317e93a7a396cbb8c64f75 (diff) | |
| parent | 0b2c0582f1570bfc95aa9ac1cd340a215d8e8335 (diff) | |
Merge tag 'drm-intel-next-2016-07-11' of git://anongit.freedesktop.org/drm-intel into drm-next
- select igt testing depencies for CONFIG_DRM_I915_DEBUG (Chris)
- track outputs in crtc state and clean up all our ad-hoc connector/encoder
  walking in modest code (Ville)
- demidlayer drm_device/drm_i915_private (Chris Wilson)
- thundering herd fix from Chris Wilson, with lots of help from Tvrtko Ursulin
- piles of assorted clean and fallout from the thundering herd fix
- documentation and more tuning for waitboosting (Chris)
- pooled EU support on bxt (Arun Siluvery)
- bxt support is no longer considered prelimary!
- ring/engine vfunc cleanup from Tvrtko
- introduce intel_wait_for_register helper (Chris)
- opregion updates (Jani Nukla)
- tuning and fixes for wait_for macros (Tvrkto&Imre)
- more kabylake pci ids (Rodrigo)
- pps cleanup and fixes for bxt (Imre)
- move sink crc support over to atomic state (Maarten)
- fix up async fbdev init ordering (Chris)
- fbc fixes from Paulo and Chris
* tag 'drm-intel-next-2016-07-11' of git://anongit.freedesktop.org/drm-intel: (223 commits)
  drm/i915: Update DRIVER_DATE to 20160711
  drm/i915: Select DRM_VGEM for igt
  drm/i915: Select X86_MSR for igt
  drm/i915: Fill unused GGTT with scratch pages for VT-d
  drm/i915: Introduce Kabypoint PCH for Kabylake H/DT.
  drm/i915:gen9: implement WaMediaPoolStateCmdInWABB
  drm/i915: Check for invalid cloning earlier during modeset
  drm/i915: Simplify hdmi_12bpc_possible()
  drm/i915: Kill has_dsi_encoder
  drm/i915: s/INTEL_OUTPUT_DISPLAYPORT/INTEL_OUTPUT_DP/
  drm/i915: Replace some open coded intel_crtc_has_dp_encoder()s
  drm/i915: Kill has_dp_encoder from pipe_config
  drm/i915: Replace manual lvds and sdvo/hdmi counting with intel_crtc_has_type()
  drm/i915: Unify intel_pipe_has_type() and intel_pipe_will_have_type()
  drm/i915: Add output_types bitmask into the crtc state
  drm/i915: Remove encoder type checks from MST suspend/resume
  drm/i915: Don't mark eDP encoders as MST capable
  drm/i915: avoid wait_for_atomic() in non-atomic host2guc_action()
  drm/i915: Group the irq breadcrumb variables into the same cacheline
  drm/i915: Wake up the bottom-half if we steal their interrupt
  ...
Diffstat (limited to 'drivers/gpu/drm/i915/i915_gem_shrinker.c')
| -rw-r--r-- | drivers/gpu/drm/i915/i915_gem_shrinker.c | 12 | 
1 files changed, 7 insertions, 5 deletions
| diff --git a/drivers/gpu/drm/i915/i915_gem_shrinker.c b/drivers/gpu/drm/i915/i915_gem_shrinker.c index 538c30499848..067632ad2f29 100644 --- a/drivers/gpu/drm/i915/i915_gem_shrinker.c +++ b/drivers/gpu/drm/i915/i915_gem_shrinker.c @@ -257,7 +257,7 @@ i915_gem_shrinker_count(struct shrinker *shrinker, struct shrink_control *sc)  {  	struct drm_i915_private *dev_priv =  		container_of(shrinker, struct drm_i915_private, mm.shrinker); -	struct drm_device *dev = dev_priv->dev; +	struct drm_device *dev = &dev_priv->drm;  	struct drm_i915_gem_object *obj;  	unsigned long count;  	bool unlock; @@ -265,6 +265,8 @@ i915_gem_shrinker_count(struct shrinker *shrinker, struct shrink_control *sc)  	if (!i915_gem_shrinker_lock(dev, &unlock))  		return 0; +	i915_gem_retire_requests(dev_priv); +  	count = 0;  	list_for_each_entry(obj, &dev_priv->mm.unbound_list, global_list)  		if (can_release_pages(obj)) @@ -286,7 +288,7 @@ i915_gem_shrinker_scan(struct shrinker *shrinker, struct shrink_control *sc)  {  	struct drm_i915_private *dev_priv =  		container_of(shrinker, struct drm_i915_private, mm.shrinker); -	struct drm_device *dev = dev_priv->dev; +	struct drm_device *dev = &dev_priv->drm;  	unsigned long freed;  	bool unlock; @@ -321,7 +323,7 @@ i915_gem_shrinker_lock_uninterruptible(struct drm_i915_private *dev_priv,  {  	unsigned long timeout = msecs_to_jiffies(timeout_ms) + 1; -	while (!i915_gem_shrinker_lock(dev_priv->dev, &slu->unlock)) { +	while (!i915_gem_shrinker_lock(&dev_priv->drm, &slu->unlock)) {  		schedule_timeout_killable(1);  		if (fatal_signal_pending(current))  			return false; @@ -342,7 +344,7 @@ i915_gem_shrinker_unlock_uninterruptible(struct drm_i915_private *dev_priv,  {  	dev_priv->mm.interruptible = slu->was_interruptible;  	if (slu->unlock) -		mutex_unlock(&dev_priv->dev->struct_mutex); +		mutex_unlock(&dev_priv->drm.struct_mutex);  }  static int @@ -408,7 +410,7 @@ i915_gem_shrinker_vmap(struct notifier_block *nb, unsigned long event, void *ptr  		return NOTIFY_DONE;  	/* Force everything onto the inactive lists */ -	ret = i915_gpu_idle(dev_priv->dev); +	ret = i915_gem_wait_for_idle(dev_priv);  	if (ret)  		goto out; |