alistair23-linux/drivers/gpu/drm/i915
Paulo Zanoni 74b4ea1e4e drm/i915: special-case dirtyfb for frontbuffer tracking
First, an introduction. We currently have two types of GTT mmaps: the
"normal" old mmap, and the WC mmap. For frontbuffer-related features
that have automatic hardware tracking, only the non-WC mmap writes are
detected by the hardware. Since inside the Kernel both are treated as
ORIGIN_GTT, any features ignoring ORIGIN_GTT because of the hardware
tracking are destined to fail.

One of the special rules defined for the WC mmaps is that the user
should call the dirtyfb IOCTL after he is done using the pointers, so
that results in an intel_fb_obj_flush() call. The problem is that the
dirtyfb is passing ORIGIN_GTT, so it is being ignored by FBC - even
though the hardware tracking is not detecing the WC mmap operations.
So in order to fix that without having to give up the automatic
hardware tracking for GTT mmaps we transform the flush operation from
dirtyfb into a special operation: ORIGIN_DIRTYFB.

This commit fixes all the kms_frontbuffer_tracking subtests that
contain "fbc" and "mmap-wc" in their names and are currently failing
(for a total of 16 subtests).

Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2015-08-05 10:01:22 +02:00
..
dvo.h
dvo_ch7xxx.c
dvo_ch7017.c
dvo_ivch.c Fix resume from suspend on IBM X30 2015-06-15 12:21:01 +02:00
dvo_ns2501.c
dvo_sil164.c
dvo_tfp410.c
i915_cmd_parser.c drm/i915: Fix command parser table validator 2015-07-29 10:31:04 +02:00
i915_debugfs.c drm/i915: remove redundant if check 2015-07-21 15:50:30 +02:00
i915_dma.c drm/i915: Fake AGP is dead 2015-07-28 13:30:00 +02:00
i915_drv.c drm/i915: Fake AGP is dead 2015-07-28 13:30:00 +02:00
i915_drv.h drm/i915: special-case dirtyfb for frontbuffer tracking 2015-08-05 10:01:22 +02:00
i915_gem.c drm/i915: Keep the mm.bound_list in rough LRU order 2015-07-28 16:05:41 +02:00
i915_gem_batch_pool.c
i915_gem_batch_pool.h
i915_gem_context.c Merge tag 'drm-intel-fixes-2015-07-15' into drm-intel-next-queued 2015-07-15 16:36:50 +02:00
i915_gem_debug.c
i915_gem_dmabuf.c drm/i915: remove unused has_dma_mapping flag 2015-07-13 22:42:41 +02:00
i915_gem_evict.c
i915_gem_execbuffer.c Merge tag 'drm-intel-fixes-2015-07-15' into drm-intel-next-queued 2015-07-15 16:36:50 +02:00
i915_gem_fence.c drm/i915: kerneldoc for tiling IOCTL and swizzle functions 2015-07-27 10:26:30 +02:00
i915_gem_gtt.c Merge tag 'drm-intel-fixes-2015-07-15' into drm-intel-next-queued 2015-07-15 16:36:50 +02:00
i915_gem_gtt.h drm/i915/gtt: Move scratch_pd and scratch_pt into vm struct 2015-06-26 11:06:30 +02:00
i915_gem_render_state.c drm/i915: Add provision to extend Golden context batch 2015-07-21 09:30:57 +02:00
i915_gem_render_state.h drm/i915: Add provision to extend Golden context batch 2015-07-21 09:30:57 +02:00
i915_gem_shrinker.c
i915_gem_stolen.c Merge tag 'drm-intel-fixes-2015-07-15' into drm-intel-next-queued 2015-07-15 16:36:50 +02:00
i915_gem_tiling.c drm/i915: kerneldoc for tiling IOCTL and swizzle functions 2015-07-27 10:26:30 +02:00
i915_gem_userptr.c drm/i915: avoid leaking DMA mappings 2015-07-13 22:42:40 +02:00
i915_gpu_error.c
i915_guc_reg.h drm/i915: Add GuC-related header files 2015-07-21 08:38:00 +02:00
i915_ioc32.c Merge tag 'drm-intel-fixes-2015-07-15' into drm-intel-next-queued 2015-07-15 16:36:50 +02:00
i915_irq.c drm/i915/bxt: add support for HPD long/short pulse detection on HPD_PORT_A pin 2015-07-22 10:45:11 +02:00
i915_params.c drm/i915: Add GuC-related module parameters 2015-07-21 08:37:35 +02:00
i915_reg.h drm/i915/bxt: add support for HPD long/short pulse detection on HPD_PORT_A pin 2015-07-22 10:45:11 +02:00
i915_suspend.c drm/i915: use dev_priv for the FBC functions 2015-07-08 11:39:45 +02:00
i915_sysfs.c drm/i915/vlv: fix RC6 residency time calculation 2015-06-15 11:56:37 +02:00
i915_trace.h Merge tag 'drm-intel-fixes-2015-07-15' into drm-intel-next-queued 2015-07-15 16:36:50 +02:00
i915_trace_points.c
i915_vgpu.c
i915_vgpu.h
intel_acpi.c
intel_atomic.c drm/i915: Use full atomic modeset. 2015-07-15 14:55:23 +02:00
intel_atomic_plane.c drm/i915: Remove transitional references from intel_plane_atomic_check. 2015-06-22 14:28:29 +02:00
intel_audio.c Merge tag 'drm-intel-fixes-2015-07-15' into drm-intel-next-queued 2015-07-15 16:36:50 +02:00
intel_bios.c drm/i915: Nuke lvds downclock support 2015-06-24 10:27:26 +02:00
intel_bios.h
intel_crt.c
intel_csr.c Merge remote-tracking branch 'airlied/drm-next' into HEAD 2015-06-23 14:01:53 +02:00
intel_ddi.c drm/i915: set FDI translations to NULL on SKL 2015-07-06 11:33:30 +02:00
intel_display.c drm/i915: special-case dirtyfb for frontbuffer tracking 2015-08-05 10:01:22 +02:00
intel_dp.c drm/i915: Don't return error on sink crc stop. 2015-07-29 10:23:56 +02:00
intel_dp_mst.c
intel_drv.h drm/i915: fix FBC frontbuffer tracking flushing code 2015-08-05 09:59:44 +02:00
intel_dsi.c drm/i915: Apply OCD to VLV/CHV DPLL defines 2015-07-13 10:41:33 +02:00
intel_dsi.h
intel_dsi_panel_vbt.c
intel_dsi_pll.c drm/i915: Changes required to enable DSI Video Mode on CHT 2015-07-03 07:39:02 +02:00
intel_dvo.c
intel_fbc.c drm/i915: fix FBC frontbuffer tracking flushing code 2015-08-05 09:59:44 +02:00
intel_fbdev.c drm/i915: Readout initial hw mode. 2015-07-14 17:18:51 +02:00
intel_fifo_underrun.c
intel_frontbuffer.c drm/i915: fix FBC frontbuffer tracking flushing code 2015-08-05 09:59:44 +02:00
intel_guc_fwif.h drm/i915: Add GuC-related header files 2015-07-21 08:38:00 +02:00
intel_hdmi.c drm/i915: Adjust BXT HDMI port clock limits 2015-07-13 11:10:05 +02:00
intel_hotplug.c drm/i915: don't use HPD_PORT_A as an alias for HPD_NONE 2015-07-22 10:44:51 +02:00
intel_i2c.c Merge branch 'drm-next' of git://people.freedesktop.org/~airlied/linux 2015-06-26 13:18:51 -07:00
intel_lrc.c drm/i915: Add provision to extend Golden context batch 2015-07-21 09:30:57 +02:00
intel_lrc.h drm/i915: Added Programming of the MOCS 2015-07-14 17:13:14 +02:00
intel_lvds.c drm/i915: Convert resume to atomic. 2015-07-14 17:28:42 +02:00
intel_mocs.c drm/i915: Added Programming of the MOCS 2015-07-14 17:13:14 +02:00
intel_mocs.h drm/i915: Added Programming of the MOCS 2015-07-14 17:13:14 +02:00
intel_modes.c
intel_opregion.c Merge tag 'drm-intel-fixes-2015-07-15' into drm-intel-next-queued 2015-07-15 16:36:50 +02:00
intel_overlay.c drm/i915: Update intel_ring_begin() to take a request structure 2015-06-23 14:02:29 +02:00
intel_panel.c drm/i915: fix backlight after resume on 855gm 2015-06-29 14:31:04 +03:00
intel_pm.c Partially revert "drm/i915: s/mdelay/msleep/" in ilk rps code 2015-07-20 10:59:38 +02:00
intel_psr.c drm/i915: PSR: Increase idle_frames 2015-07-09 21:52:35 +02:00
intel_renderstate.h
intel_renderstate_gen6.c
intel_renderstate_gen7.c
intel_renderstate_gen8.c
intel_renderstate_gen9.c
intel_ringbuffer.c Merge tag 'drm-intel-fixes-2015-07-15' into drm-intel-next-queued 2015-07-15 16:36:50 +02:00
intel_ringbuffer.h Merge tag 'drm-intel-fixes-2015-07-15' into drm-intel-next-queued 2015-07-15 16:36:50 +02:00
intel_runtime_pm.c drm/i915: Refactor VLV display power well init/deinit 2015-07-13 10:42:51 +02:00
intel_sdvo.c Merge branch 'drm-next' of git://people.freedesktop.org/~airlied/linux 2015-06-26 13:18:51 -07:00
intel_sdvo_regs.h
intel_sideband.c
intel_sprite.c drm/i915: always disable irqs in intel_pipe_update_start 2015-07-15 15:06:02 +02:00
intel_tv.c
intel_uncore.c drm/i915: Report an error when i915.reset prevents a reset 2015-06-23 14:01:38 +02:00
Kconfig drm/i915: Remove KMS Kconfig option 2015-06-22 16:16:35 +02:00
Makefile drm/i915: Extract i915_gem_fence.c 2015-07-27 10:24:39 +02:00