diff options
| author | Dave Airlie <airlied@redhat.com> | 2013-01-17 20:34:08 +1000 | 
|---|---|---|
| committer | Dave Airlie <airlied@redhat.com> | 2013-01-17 20:34:08 +1000 | 
| commit | b5cc6c0387b2f8d269c1df1e68c97c958dd22fed (patch) | |
| tree | 697f2335b3a10f55e0ea226dcd044ee4ff3f0f7f /drivers/gpu/drm/i915/i915_gem_tiling.c | |
| parent | 9931faca02c604c22335f5a935a501bb2ace6e20 (diff) | |
| parent | c0c36b941b6f0be6ac74f340040cbb29d6a0b06c (diff) | |
| download | olio-linux-3.10-b5cc6c0387b2f8d269c1df1e68c97c958dd22fed.tar.xz olio-linux-3.10-b5cc6c0387b2f8d269c1df1e68c97c958dd22fed.zip  | |
Merge tag 'drm-intel-next-2012-12-21' of git://people.freedesktop.org/~danvet/drm-intel into drm-next
Daniel writes:
- seqno wrap fixes and debug infrastructure from Mika Kuoppala and Chris
  Wilson
- some leftover kill-agp on gen6+ patches from Ben
- hotplug improvements from Damien
- clear fb when allocated from stolen, avoids dirt on the fbcon (Chris)
- Stolen mem support from Chris Wilson, one of the many steps to get to
  real fastboot support.
- Some DDI code cleanups from Paulo.
- Some refactorings around lvds and dp code.
- some random little bits&pieces
* tag 'drm-intel-next-2012-12-21' of git://people.freedesktop.org/~danvet/drm-intel: (93 commits)
  drm/i915: Return the real error code from intel_set_mode()
  drm/i915: Make GSM void
  drm/i915: Move GSM mapping into dev_priv
  drm/i915: Move even more gtt code to i915_gem_gtt
  drm/i915: Make next_seqno debugs entry to use i915_gem_set_seqno
  drm/i915: Introduce i915_gem_set_seqno()
  drm/i915: Always clear semaphore mboxes on seqno wrap
  drm/i915: Initialize hardware semaphore state on ring init
  drm/i915: Introduce ring set_seqno
  drm/i915: Missed conversion to gtt_pte_t
  drm/i915: Bug on unsupported swizzled platforms
  drm/i915: BUG() if fences are used on unsupported platform
  drm/i915: fixup overlay stolen memory leak
  drm/i915: clean up PIPECONF bpc #defines
  drm/i915: add intel_dp_set_signal_levels
  drm/i915: remove leftover display.update_wm assignment
  drm/i915: check for the PCH when setting pch_transcoder
  drm/i915: Clear the stolen fb before enabling
  drm/i915: Access to snooped system memory through the GTT is incoherent
  drm/i915: Remove stale comment about intel_dp_detect()
  ...
Conflicts:
	drivers/gpu/drm/i915/intel_display.c
Diffstat (limited to 'drivers/gpu/drm/i915/i915_gem_tiling.c')
| -rw-r--r-- | drivers/gpu/drm/i915/i915_gem_tiling.c | 12 | 
1 files changed, 12 insertions, 0 deletions
diff --git a/drivers/gpu/drm/i915/i915_gem_tiling.c b/drivers/gpu/drm/i915/i915_gem_tiling.c index cedbfd7b3df..65f1d4f3f77 100644 --- a/drivers/gpu/drm/i915/i915_gem_tiling.c +++ b/drivers/gpu/drm/i915/i915_gem_tiling.c @@ -396,6 +396,18 @@ i915_gem_set_tiling(struct drm_device *dev, void *data,  	/* we have to maintain this existing ABI... */  	args->stride = obj->stride;  	args->tiling_mode = obj->tiling_mode; + +	/* Try to preallocate memory required to save swizzling on put-pages */ +	if (i915_gem_object_needs_bit17_swizzle(obj)) { +		if (obj->bit_17 == NULL) { +			obj->bit_17 = kmalloc(BITS_TO_LONGS(obj->base.size >> PAGE_SHIFT) * +					      sizeof(long), GFP_KERNEL); +		} +	} else { +		kfree(obj->bit_17); +		obj->bit_17 = NULL; +	} +  	drm_gem_object_unreference(&obj->base);  	mutex_unlock(&dev->struct_mutex);  |