OpenCloudOS-Kernel/drivers/gpu/drm/i915
Chris Wilson 693db1842d drm/i915: Apply alignment restrictions on scanout surfaces for VT-d
From the w/a database:

'To prevent false VT-d type 6 error:

  The primary display plane must be 256KiB aligned, and require an extra
  128 PTEs of padding afterward;

  The sprites planes must be 128KiB aligned, and require an extra 64 PTEs
  of padding afterward;

  The cursors must be 64KiB aligned, and require an extra 2 PTEs of
  padding afterward.'

As we use the same function to pin the primary and sprite planes, we can
simply use the more strict requirements for scanouts for both.

Instead of using explicit padding PTEs following the scanout objects, we
should be able to use the scratch page that is always mapped into the
unused PTEs to avoid the VT-d error.

References: https://bugs.freedesktop.org/show_bug.cgi?id=59626
References: https://bugs.freedesktop.org/show_bug.cgi?id=59627
References: https://bugs.freedesktop.org/show_bug.cgi?id=59631
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Damien Lespiau <damien.lespiau@intel.com>
[danvet: Apply s/vtd_wa/vtd_scanout_wa/ bikeshed since Damien likes
it, too.]
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-03-27 17:13:43 +01:00
..
Makefile drm/i915: extract ums suspend/resume into i915_ums.c 2013-01-31 11:50:03 +01:00
dvo.h Merge branch 'drm-next' of git://people.freedesktop.org/~airlied/linux 2012-10-03 23:29:23 -07:00
dvo_ch7xxx.c drm/i915/dvo-ch7xxx: fix get_hw_state 2012-10-12 10:59:11 +02:00
dvo_ch7017.c drm/i915/dvo: implement get_hw_state 2012-09-06 07:58:52 +02:00
dvo_ivch.c drm/i915/dvo: implement get_hw_state 2012-09-06 07:58:52 +02:00
dvo_ns2501.c drm/i915/dvo: implement get_hw_state 2012-09-06 07:58:52 +02:00
dvo_sil164.c drm/i915/dvo: implement get_hw_state 2012-09-06 07:58:52 +02:00
dvo_tfp410.c drm/i915/dvo: implement get_hw_state 2012-09-06 07:58:52 +02:00
i915_debugfs.c Linux 3.9-rc3 2013-03-19 09:47:30 +01:00
i915_dma.c drm/i915: Move num_pipes to intel info 2013-03-23 12:18:03 +01:00
i915_drv.c drm/i915: emit a hotplug event on resume 2013-03-26 21:38:41 +01:00
i915_drv.h DRM/i915: Get rid if the 'hotplug_supported_mask' in struct drm_i915_private. 2013-03-27 17:13:43 +01:00
i915_gem.c drm/i915: Always call fence-lost prior to removing the fence 2013-03-26 20:16:18 +01:00
i915_gem_context.c drm/i915: convert to idr_alloc() 2013-02-27 19:10:16 -08:00
i915_gem_debug.c UAPI: (Scripted) Convert #include "..." to #include <path/...> in drivers/gpu/ 2012-10-02 18:01:07 +01:00
i915_gem_dmabuf.c drm/i915: handle walking compact dma scatter lists 2013-03-23 12:16:36 +01:00
i915_gem_evict.c drm/i915: Create a gtt structure 2013-01-17 22:33:56 +01:00
i915_gem_execbuffer.c drm/i915: Remove unneeded dev argument 2013-03-18 03:03:19 +01:00
i915_gem_gtt.c drm/i915: fixup pd vs pt confusion in gen6 ppgtt code 2013-03-23 12:18:03 +01:00
i915_gem_stolen.c drm/i915: Introduce i915_gem_object_create_stolen_for_preallocated 2013-03-26 20:39:28 +01:00
i915_gem_tiling.c drm/i915: handle walking compact dma scatter lists 2013-03-23 12:16:36 +01:00
i915_ioc32.c UAPI: (Scripted) Convert #include "..." to #include <path/...> in drivers/gpu/ 2012-10-02 18:01:07 +01:00
i915_irq.c DRM/i915: Remove i965_hpd_irq_setup. 2013-03-27 17:12:53 +01:00
i915_reg.h DRM/i915: Convert HPD interrupts to make use of HPD pin assignment in encoders (v2) 2013-03-26 21:52:19 +01:00
i915_suspend.c drm/i915: don't save/restore PCH_LVDS on LPT 2013-03-17 21:53:10 +01:00
i915_sysfs.c drm/i915: add \n to the end of sysfs attributes 2013-02-20 01:33:44 +01:00
i915_trace.h drm/i915: Allow DRM_ROOT_ONLY|DRM_MASTER to submit privileged batchbuffers 2012-10-17 21:06:59 +02:00
i915_trace_points.c drm/i915: [sparse] trivial sparse fixes 2012-04-18 10:34:49 +02:00
i915_ums.c drm/i915: move DP save/restore into i915_ums.c 2013-01-31 11:50:04 +01:00
intel_acpi.c UAPI: (Scripted) Convert #include "..." to #include <path/...> in drivers/gpu/ 2012-10-02 18:01:07 +01:00
intel_bios.c Merge branch 'drm-next-3.8' of git://people.freedesktop.org/~agd5f/linux into drm-next 2012-12-10 20:03:58 +10:00
intel_bios.h UAPI: (Scripted) Convert #include "..." to #include <path/...> in drivers/gpu/ 2012-10-02 18:01:07 +01:00
intel_crt.c DRM/i915: Get rid if the 'hotplug_supported_mask' in struct drm_i915_private. 2013-03-27 17:13:43 +01:00
intel_ddi.c drm/i915: Warn if a pipe is enabled with a bogus port 2013-03-25 19:21:00 +01:00
intel_display.c drm/i915: Apply alignment restrictions on scanout surfaces for VT-d 2013-03-27 17:13:43 +01:00
intel_dp.c DRM/i915: Get rid if the 'hotplug_supported_mask' in struct drm_i915_private. 2013-03-27 17:13:43 +01:00
intel_drv.h DRM/I915: Add enum hpd_pin to intel_encoder. 2013-03-26 21:50:22 +01:00
intel_dvo.c drm/i915: rip out helper->disable noop functions 2013-02-14 00:07:54 +01:00
intel_fb.c drm/i915: enable VT switchless resume v3 2013-03-26 21:37:50 +01:00
intel_hdmi.c DRM/i915: Get rid if the 'hotplug_supported_mask' in struct drm_i915_private. 2013-03-27 17:13:43 +01:00
intel_i2c.c drm/i915: GPIO/GMBUS registers need an offset on VLV 2013-01-24 23:45:03 +01:00
intel_lvds.c Linux 3.9-rc3 2013-03-19 09:47:30 +01:00
intel_modes.c drm/i915: Add "Automatic" mode for the "Broadcast RGB" property 2013-01-20 13:09:44 +01:00
intel_opregion.c GPU/i915: Fix acpi_bus_get_device() check in drivers/gpu/drm/i915/intel_opregion.c 2013-02-01 11:01:50 +01:00
intel_overlay.c Merge tag 'drm-intel-next-2013-02-01' of git://people.freedesktop.org/~danvet/drm-intel into drm-next 2013-02-08 11:08:10 +10:00
intel_panel.c drm/i915: Move num_pipes to intel info 2013-03-23 12:18:03 +01:00
intel_pm.c drm/i915: HSW PM Frequency bits fix 2013-03-26 09:04:01 +01:00
intel_ringbuffer.c drm/i915: Fix PIPE_CONTROL DW/QW write through global GTT on IVB+ 2013-02-20 00:21:47 +01:00
intel_ringbuffer.h Merge tag 'drm-intel-next-2012-12-21' of git://people.freedesktop.org/~danvet/drm-intel into drm-next 2013-01-17 20:34:08 +10:00
intel_sdvo.c DRM/i915: Get rid if the 'hotplug_supported_mask' in struct drm_i915_private. 2013-03-27 17:13:43 +01:00
intel_sdvo_regs.h drm/i915: clear the entire sdvo infoframe buffer 2012-10-24 15:12:48 +02:00
intel_sprite.c drm/i915: Apply alignment restrictions on scanout surfaces for VT-d 2013-03-27 17:13:43 +01:00
intel_tv.c drm/i915: rip out helper->disable noop functions 2013-02-14 00:07:54 +01:00