linux_dsm_epyc7002/drivers/gpu/drm/i915
Daniel Vetter c2e0eb1670 drm/i915: fix corruptions on i8xx due to relaxed fencing
It looks like gen2 has a peculiar interleaved 2-row inter-tile
layout. Probably inherited from i81x which had 2kb tiles (which
naturally fit an even-number-of-tile-rows scheme to fit onto 4kb
pages). There is no other mention of this in any docs (also not
in the Intel internal documention according to Chris Wilson).

Problem manifests itself in corruptions in the second half of the
last tile row (if the bo has an odd number of tiles). Which can
only happen with relaxed tiling (introduced in a00b10c360).

So reject set_tiling calls that don't satisfy this constrain to
prevent broken userspace from causing havoc. While at it, also
check the size for newer chipsets.

LKML: https://lkml.org/lkml/2011/2/19/5
Reported-by: Indan Zupancic <indan@nul.nu>
Tested-by: Indan Zupancic <indan@nul.nu>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-02-24 00:33:49 +00:00
..
dvo_ch7xxx.c drm/i915: use GMBUS to manage i2c links 2010-09-18 15:46:19 +01:00
dvo_ch7017.c drm/i915/dvo: Report LVDS attached to ch701x as connected 2010-12-30 13:50:43 +00:00
dvo_ivch.c drm/i915: use GMBUS to manage i2c links 2010-09-18 15:46:19 +01:00
dvo_sil164.c drm/i915: use GMBUS to manage i2c links 2010-09-18 15:46:19 +01:00
dvo_tfp410.c drm/i915: use GMBUS to manage i2c links 2010-09-18 15:46:19 +01:00
dvo.h drm/i915: Subclass intel_encoder. 2010-08-09 11:24:28 -07:00
i915_debugfs.c drm/i915/debugfs: Correct format after changing type of err object 'size' 2011-01-12 20:24:50 +00:00
i915_dma.c drm/i915: Recognise non-VGA display devices 2011-01-23 12:52:16 +00:00
i915_drv.c drm/i915: Disable RC6 on Ironlake 2011-02-09 17:04:54 +00:00
i915_drv.h drm/i915: Disable RC6 on Ironlake 2011-02-09 17:04:54 +00:00
i915_gem_debug.c drm/i915: Use drm_i915_gem_object as the preferred type 2010-11-23 20:19:10 +00:00
i915_gem_evict.c drm/i915/evict: Ensure we completely cleanup on failure 2011-01-11 22:55:39 +00:00
i915_gem_execbuffer.c drm/i915: Fix use of invalid array size for ring->sync_seqno 2011-01-23 12:52:11 +00:00
i915_gem_gtt.c drm/i915,agp/intel: Do not clear stolen entries 2011-01-24 18:26:25 +00:00
i915_gem_tiling.c drm/i915: fix corruptions on i8xx due to relaxed fencing 2011-02-24 00:33:49 +00:00
i915_gem.c drm/i915,agp/intel: Do not clear stolen entries 2011-01-24 18:26:25 +00:00
i915_ioc32.c drm: convert drm_ioctl to unlocked_ioctl 2009-12-18 11:22:31 +10:00
i915_irq.c drm/i915: don't enable FDI & transcoder interrupts after all 2011-02-22 15:52:40 +00:00
i915_mem.c drm: Remove memory debugging infrastructure. 2009-06-18 13:00:33 -07:00
i915_reg.h drm/i915: Do not handle backlight combination mode specially 2011-02-21 15:25:43 -08:00
i915_suspend.c drm/i915: cleanup rc6 code 2011-01-11 20:43:59 +00:00
i915_trace_points.c drm/i915: Add tracepoints 2009-09-23 01:05:21 +01:00
i915_trace.h drm/i915: Kill the get_fence tracepoint 2010-12-02 10:20:47 +00:00
intel_acpi.c drm/i915: i915 cannot provide switcher services. 2010-12-08 15:40:44 +10:00
intel_bios.c drm/i915: Add a module option to override the use of SSC 2011-01-13 16:05:58 +00:00
intel_bios.h drm/i915: Initialize panel timing registers if VBIOS did not 2010-10-19 09:17:24 +01:00
intel_crt.c drm/i915/crt: Force the initial probe after reset 2011-01-25 19:23:29 +00:00
intel_display.c drm/i915: skip FDI & PCH enabling for DP_A 2011-02-22 15:52:41 +00:00
intel_dp.c drm/i915: Trigger modesetting if force-audio changes 2011-02-11 09:20:50 +00:00
intel_drv.h drm/i915: Disable RC6 on Ironlake 2011-02-09 17:04:54 +00:00
intel_dvo.c drm/i915/dvo: Fix panel and DDC i2c pins 2010-09-28 23:34:44 +01:00
intel_fb.c Revert "drm: Update fbdev fb_fix_screeninfo" 2011-01-14 16:10:28 -08:00
intel_hdmi.c drm/i915: Trigger modesetting if force-audio changes 2011-02-11 09:20:50 +00:00
intel_i2c.c Merge branch 'drm-intel-fixes' into drm-intel-next 2010-11-15 06:49:30 +00:00
intel_lvds.c drm/i915/lvds: Restore dithering on native modes for gen2/3 2011-02-06 15:53:30 +00:00
intel_modes.c drm/i915: use GMBUS to manage i2c links 2010-09-18 15:46:19 +01:00
intel_opregion.c drm/i915: Use consistent mappings for OpRegion between ACPI and i915 2011-01-24 18:28:08 +00:00
intel_overlay.c drm/i915: Implement GPU semaphores for inter-ring synchronisation on SNB 2010-12-05 00:37:38 +00:00
intel_panel.c drm/i915: Do not handle backlight combination mode specially 2011-02-21 15:25:43 -08:00
intel_ringbuffer.c drm/i915: Invalidate TLB caches on SNB BLT/BSD rings 2011-02-02 15:52:38 +00:00
intel_ringbuffer.h drm/i915/ringbuffer: Fix use of stale HEAD position whilst polling for space 2011-01-20 17:26:57 +00:00
intel_sdvo_regs.h drm/i915/sdvo: Add missing TV filters 2010-08-09 11:24:29 -07:00
intel_sdvo.c drm/i915: Trigger modesetting if force-audio changes 2011-02-11 09:20:50 +00:00
intel_tv.c drm/i915/tv: Use polling rather than interrupt-based hotplug 2011-02-11 09:20:51 +00:00
Makefile drm/i915: Split i915_gem_execbuffer into its own file. 2010-11-25 21:19:25 +00:00