OpenCloudOS-Kernel/drivers/gpu/drm/i915
Chris Wilson d55ac5bf97 drm/i915: Defer transfer onto execution timeline to actual hw submission
Defer the transfer from the client's timeline onto the execution
timeline from the point of readiness to the point of actual submission.
For example, in execlists, a request is finally submitted to hardware
when the hardware is ready, and only put onto the hardware queue when
the request is ready. By deferring the transfer, we ensure that the
timeline is maintained in retirement order if we decide to queue the
requests onto the hardware in a different order than fifo.

v2: Rebased onto distinct global/user timeline lock classes.
v3: Play with the position of the spin_lock().
v4: Nesting finally resolved with distinct sw_fence lock classes.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Link: http://patchwork.freedesktop.org/patch/msgid/20161114204105.29171-4-chris@chris-wilson.co.uk
2016-11-14 21:00:23 +00:00
..
gvt drm/i915/gvt: add KVMGT support 2016-11-10 15:45:39 +08:00
Kconfig drm/i915: rename preliminary_hw_support to alpha_support 2016-11-14 15:33:27 +02:00
Kconfig.debug drm/i915: Select DRM_VGEM for igt 2016-07-10 13:22:39 +01:00
Makefile drm/i915: Split out i915_vma.c 2016-11-11 14:34:54 +02:00
dvo.h
dvo_ch7xxx.c
dvo_ch7017.c
dvo_ivch.c
dvo_ns2501.c
dvo_sil164.c
dvo_tfp410.c
i915_cmd_parser.c drm/i915: Refactor object page API 2016-10-28 20:53:46 +01:00
i915_debugfs.c drm/i915: Remove two sloppy inline functions from .h 2016-11-08 12:36:35 +02:00
i915_drv.c drm/i915: Update i915_driver_load kerneldoc 2016-11-14 14:30:34 +02:00
i915_drv.h drm/i915: rename preliminary_hw_support to alpha_support 2016-11-14 15:33:27 +02:00
i915_gem.c drm/i915: Create distinct lockclasses for execution vs user timelines 2016-11-14 21:00:21 +00:00
i915_gem.h drm/i915: avoid harmless empty-body warning 2016-11-08 17:33:47 +01:00
i915_gem_batch_pool.c drm/i915: Move GEM activity tracking into a common struct reservation_object 2016-10-28 20:53:50 +01:00
i915_gem_batch_pool.h drm/i915: Double check the active status on the batch pool 2016-08-04 20:19:50 +01:00
i915_gem_context.c drm/i915: Export a function to flush the context upon pinning 2016-11-01 14:26:33 +00:00
i915_gem_dmabuf.c drm/i915: Move GEM activity tracking into a common struct reservation_object 2016-10-28 20:53:50 +01:00
i915_gem_evict.c drm/i915: Enable multiple timelines 2016-10-28 20:53:57 +01:00
i915_gem_execbuffer.c drm/i915: Further assorted dev_priv cleanups 2016-11-11 14:58:26 +00:00
i915_gem_fence_reg.c drm/i915: Split out i915_vma.c 2016-11-11 14:34:54 +02:00
i915_gem_fence_reg.h drm/i915: Split out i915_vma.c 2016-11-11 14:34:54 +02:00
i915_gem_gtt.c drm/i915: Pass dev_priv to INTEL_INFO everywhere apart from the gen use 2016-11-11 14:58:26 +00:00
i915_gem_gtt.h drm/i915: Split out i915_vma.c 2016-11-11 14:34:54 +02:00
i915_gem_internal.c drm/i915: Allow shrinking of userptr objects once again 2016-11-01 16:35:26 +00:00
i915_gem_object.h drm/i915: Split out i915_vma.c 2016-11-11 14:34:54 +02:00
i915_gem_render_state.c drm/i915: Introduce HAS_64BIT_RELOC 2016-11-03 12:45:57 +02:00
i915_gem_render_state.h drm/i915: Reuse the active golden render state batch 2016-10-28 20:53:44 +01:00
i915_gem_request.c drm/i915: Defer transfer onto execution timeline to actual hw submission 2016-11-14 21:00:23 +00:00
i915_gem_request.h drm/i915: Defer transfer onto execution timeline to actual hw submission 2016-11-14 21:00:23 +00:00
i915_gem_shrinker.c drm/i915: Unify global_list into global_link 2016-11-02 15:17:13 +02:00
i915_gem_stolen.c drm/i915: Assorted dev_priv cleanups 2016-11-11 14:58:26 +00:00
i915_gem_tiling.c drm/i915: Fix pages pin counting around swizzle quirk 2016-11-04 11:55:39 +00:00
i915_gem_timeline.c drm/i915: Create distinct lockclasses for execution vs user timelines 2016-11-14 21:00:21 +00:00
i915_gem_timeline.h drm/i915: Create distinct lockclasses for execution vs user timelines 2016-11-14 21:00:21 +00:00
i915_gem_userptr.c drm/i915: Assorted dev_priv cleanups 2016-11-11 14:58:26 +00:00
i915_gpu_error.c drm/i915: More assorted dev_priv cleanups 2016-11-11 14:58:26 +00:00
i915_guc_reg.h drm/i915/guc: general tidying up (loader) 2016-09-15 10:56:02 +01:00
i915_guc_submission.c drm/i915: Defer transfer onto execution timeline to actual hw submission 2016-11-14 21:00:23 +00:00
i915_ioc32.c
i915_irq.c drm/i915: Further assorted dev_priv cleanups 2016-11-11 14:58:26 +00:00
i915_memcpy.c drm/i915: Mark the static key for movntqda as static 2016-08-17 12:36:07 +01:00
i915_mm.c drm/i915: Use remap_io_mapping() to prefault all PTE in a single pass 2016-08-19 17:13:36 +01:00
i915_params.c drm/i915: rename preliminary_hw_support to alpha_support 2016-11-14 15:33:27 +02:00
i915_params.h drm/i915: rename preliminary_hw_support to alpha_support 2016-11-14 15:33:27 +02:00
i915_pci.c drm/i915: rename preliminary_hw_support to alpha_support 2016-11-14 15:33:27 +02:00
i915_pvinfo.h drm/i915: Use offsetof() to calculate the offset of members in PVINFO page 2016-06-17 19:44:25 +01:00
i915_reg.h drm/i915: Address broxton phy registers based on phy and channel number 2016-10-28 12:25:24 +03:00
i915_suspend.c drm/i915: Make IS_GEN macros only take dev_priv 2016-10-14 12:23:22 +01:00
i915_sw_fence.c drm/i915: Give each sw_fence its own lockclass 2016-11-14 21:00:20 +00:00
i915_sw_fence.h drm/i915: Give each sw_fence its own lockclass 2016-11-14 21:00:20 +00:00
i915_sysfs.c drm/i915: Allow disabling error capture 2016-10-12 12:00:32 +01:00
i915_trace.h drm/i915: Introduce a global_seqno for each request 2016-10-28 20:53:53 +01:00
i915_trace_points.c
i915_vgpu.c Merge tag 'drm-intel-next-2016-09-19' of git://anongit.freedesktop.org/drm-intel into drm-next 2016-09-20 06:23:22 +10:00
i915_vgpu.h drm/i915: Fold vGPU active check into inner functions 2016-06-17 19:44:29 +01:00
i915_vma.c drm/i915: Split out i915_vma.c 2016-11-11 14:34:54 +02:00
i915_vma.h drm/i915: Fix test on inputs for vma_compare() 2016-11-14 15:59:21 +00:00
intel_acpi.c
intel_atomic.c
intel_atomic_plane.c drm/i915: Add horizontal mirroring support for CHV pipe B planes 2016-11-14 19:58:48 +02:00
intel_audio.c drm/i915: Pass atomic state to intel_audio_codec_enable, v2. 2016-11-09 13:55:05 +01:00
intel_bios.c drm/i915: Assume non-DP++ port if dvo_port is HDMI and there's no AUX ch specified in the VBT 2016-11-14 16:29:46 +02:00
intel_bios.h
intel_breadcrumbs.c drm/i915: Spin until breadcrumb threads are complete 2016-11-09 15:01:52 +00:00
intel_color.c drm/i915: Pass dev_priv to INTEL_INFO everywhere apart from the gen use 2016-11-11 14:58:26 +00:00
intel_crt.c drm/i915: More assorted dev_priv cleanups 2016-11-11 14:58:26 +00:00
intel_csr.c drm/i915/DMC/KBL: Load DMC on KBL using the no_stepping_info array 2016-10-26 14:20:53 -07:00
intel_ddi.c drm/i915: Pass atomic state to intel_audio_codec_enable, v2. 2016-11-09 13:55:05 +01:00
intel_device_info.c drm/i915: Don't try to initialize sprite planes on pre-ilk 2016-10-31 16:56:32 +02:00
intel_display.c drm/i915: Remove some duplicated plane swapping logic 2016-11-14 20:27:55 +02:00
intel_dp.c drm/i915: Simplify DP port limited color range bit platform checks 2016-11-14 20:27:54 +02:00
intel_dp_aux_backlight.c
intel_dp_link_training.c drm/i915/skl: drop workarounds for A0 and B0 revisions 2016-09-26 12:08:22 +03:00
intel_dp_mst.c drm/i915: Kill dp_encoder_is_mst 2016-11-14 20:27:54 +02:00
intel_dpio_phy.c drm/i915/bxt: Don't set OCL2_LDOFUSE_PWR_DIS bit in phy init sequence 2016-11-02 09:35:47 +02:00
intel_dpll_mgr.c drm/i915: Address broxton phy registers based on phy and channel number 2016-10-28 12:25:24 +03:00
intel_dpll_mgr.h drm/i915/dp: Add a standalone function to obtain shared dpll for HSW/BDW/SKL/BXT 2016-09-09 14:53:18 -07:00
intel_drv.h drm/i915: Kill dp_encoder_is_mst 2016-11-14 20:27:54 +02:00
intel_dsi.c drm/i915: Make IS_CHERRYVIEW only take dev_priv 2016-10-14 12:23:19 +01:00
intel_dsi.h
intel_dsi_dcs_backlight.c drm/i915: Mass convert dev->dev_private to to_i915(dev) 2016-07-04 12:54:07 +01:00
intel_dsi_panel_vbt.c drm/i915/dsi: double check element parsing against size if present 2016-09-19 18:38:11 +03:00
intel_dsi_pll.c drm/i915: Make IS_BROXTON only take dev_priv 2016-10-14 12:23:19 +01:00
intel_dvo.c drm/i915: Pass dev_priv to intel_get_crtc_for_pipe() 2016-11-01 16:40:38 +02:00
intel_engine_cs.c drm/i915: Move hangcheck code out from i915_irq.c 2016-11-02 11:59:10 +02:00
intel_fbc.c drm/i915/fbc: convert intel_fbc.c to use INTEL_GEN() 2016-11-14 14:00:29 -02:00
intel_fbdev.c drm/i915: Pass dev_priv to INTEL_INFO everywhere apart from the gen use 2016-11-11 14:58:26 +00:00
intel_fifo_underrun.c drm/i915: Always use intel_get_crtc_for_pipe() 2016-11-01 16:40:38 +02:00
intel_frontbuffer.c drm/i915: Use dev_priv consistently through the intel_frontbuffer interface 2016-08-04 20:20:03 +01:00
intel_frontbuffer.h drm/i915: Use dev_priv consistently through the intel_frontbuffer interface 2016-08-04 20:20:03 +01:00
intel_guc.h drm/i915/guc: Cache the client mapping 2016-11-03 19:57:43 +00:00
intel_guc_fwif.h drm/i915: Increase GuC log buffer size to reduce flush interrupts 2016-10-25 09:34:23 +01:00
intel_guc_loader.c drm/i915: Further assorted dev_priv cleanups 2016-11-11 14:58:26 +00:00
intel_gvt.c Documentation/gpu: Add section for Intel GVT-g host support 2016-10-20 17:18:39 +08:00
intel_gvt.h drm/i915/gvt: clean up intel_gvt.h as interface for i915 core 2016-10-20 17:18:30 +08:00
intel_hangcheck.c drm/i915: Move hangcheck code out from i915_irq.c 2016-11-02 11:59:10 +02:00
intel_hdmi.c drm/i915: Pass atomic state to intel_audio_codec_enable, v2. 2016-11-09 13:55:05 +01:00
intel_hotplug.c drm/i915: More assorted dev_priv cleanups 2016-11-11 14:58:26 +00:00
intel_i2c.c drm/i915: GMBUS don't need no forcewake 2016-10-17 14:26:42 +03:00
intel_lrc.c drm/i915: Defer transfer onto execution timeline to actual hw submission 2016-11-14 21:00:23 +00:00
intel_lrc.h drm/i915: Make sure engines are idle during GPU idling in LR mode 2016-11-07 14:48:05 +02:00
intel_lspcon.c drm/i915/lspcon: Add workaround for resuming in PCON mode 2016-10-26 12:41:01 +03:00
intel_lvds.c drm/i915: Pass dev_priv to intel_get_crtc_for_pipe() 2016-11-01 16:40:38 +02:00
intel_mocs.c drm/i915: Rename struct intel_ringbuffer to struct intel_ring 2016-08-02 22:58:16 +01:00
intel_mocs.h drm/i915: rename 'ring' where it refers to an engine or engine_id 2016-07-21 09:59:41 +01:00
intel_modes.c drm: Remove superflous linux/fb.h includes 2016-08-12 10:41:39 +02:00
intel_opregion.c drm/i915: Ignore OpRegion panel type except on select machines 2016-09-14 11:25:05 +03:00
intel_overlay.c drm/i915: Use lockless object free 2016-10-28 20:53:50 +01:00
intel_panel.c drm/i915/backlight: setup backlight pwm alternate increment on backlight enable 2016-10-10 16:05:52 +03:00
intel_pm.c drm/i915/gen9: fix the WM memory bandwidth WA for Y tiling cases 2016-11-14 13:20:22 -02:00
intel_psr.c drm/i915: More assorted dev_priv cleanups 2016-11-11 14:58:26 +00:00
intel_renderstate.h drm/i915: Remove duplicate golden render state init from execlists 2016-08-02 22:58:30 +01:00
intel_renderstate_gen6.c
intel_renderstate_gen7.c
intel_renderstate_gen8.c
intel_renderstate_gen9.c
intel_ringbuffer.c drm/i915: Defer transfer onto execution timeline to actual hw submission 2016-11-14 21:00:23 +00:00
intel_ringbuffer.h drm/i915: Spin until breadcrumb threads are complete 2016-11-09 15:01:52 +00:00
intel_runtime_pm.c drm/i915: Pass dev_priv to .get_display_clock_speed() 2016-11-01 16:40:38 +02:00
intel_sdvo.c drm/i915: Pass dev_priv to IS_MOBILE() 2016-11-01 16:40:38 +02:00
intel_sdvo_regs.h
intel_sideband.c drm/i915: Convert wait_for(I915_READ(reg)) to intel_wait_for_register() 2016-06-30 15:42:33 +01:00
intel_sprite.c drm/i915: Add horizontal mirroring support for CHV pipe B planes 2016-11-14 19:58:48 +02:00
intel_tv.c drm/i915: Pass dev_priv to intel_wait_for_vblank() 2016-11-01 16:40:38 +02:00
intel_uncore.c drm/i915: Just clear the mmiodebug before a register access 2016-10-10 16:06:41 +03:00
intel_vbt_defs.h drm/i915: Assume non-DP++ port if dvo_port is HDMI and there's no AUX ch specified in the VBT 2016-11-14 16:29:46 +02:00