OpenCloudOS-Kernel/drivers/gpu/drm/i915
Michel Thierry acdd884a2e drm/i915/bdw: Two-stage execlist submit process
Context switch (and execlist submission) should happen only when
other contexts are not active, otherwise pre-emption occurs.

To assure this, we place context switch requests in a queue and those
request are later consumed when the right context switch interrupt is
received (still TODO).

v2: Use a spinlock, do not remove the requests on unqueue (wait for
context switch completion).

Signed-off-by: Thomas Daniel <thomas.daniel@intel.com>

v3: Several rebases and code changes. Use unique ID.

v4:
- Move the queue/lock init to the late ring initialization.
- Damien's kmalloc review comments: check return, use sizeof(*req),
do not cast.

v5:
- Do not reuse drm_i915_gem_request. Instead, create our own.
- New namespace.

Signed-off-by: Michel Thierry <michel.thierry@intel.com> (v1)
Signed-off-by: Oscar Mateo <oscar.mateo@intel.com> (v2-v5)
Reviewed-by: Damien Lespiau <damien.lespiau@intel.com>
[davnet: Checkpatch + wash-up s/BUG_ON/WARN_ON/.]
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2014-08-14 22:10:59 +02:00
..
Kconfig drm/i915: Ditch UMS config option 2014-07-24 10:59:53 +02:00
Makefile drm/i915/bdw: New source and header file for LRs, LRCs and Execlists 2014-08-11 16:00:07 +02:00
dvo.h drm/i915: Remove unused mode_fixup() vfunc of struct intel_dvo_dev_ops 2013-09-05 21:39:59 +02:00
dvo_ch7xxx.c drm/i915: Remove spurious semicolons 2014-04-09 21:54:33 +02:00
dvo_ch7017.c
dvo_ivch.c drm/i915: Remove spurious semicolons 2014-04-09 21:54:33 +02:00
dvo_ns2501.c drm/i915: Remove spurious semicolons 2014-04-09 21:54:33 +02:00
dvo_sil164.c drm/i915: Remove spurious semicolons 2014-04-09 21:54:33 +02:00
dvo_tfp410.c drm/i915: Remove spurious semicolons 2014-04-09 21:54:33 +02:00
i915_cmd_parser.c drm/i915: Fix up checks for aliasing ppgtt 2014-08-13 14:23:31 +02:00
i915_debugfs.c drm/i915: Only track real ppgtt for a context 2014-08-13 14:23:33 +02:00
i915_dma.c drm/i915: Localise the fbdev console lock frobbing 2014-08-13 15:39:23 +02:00
i915_drv.c drm/i915: Sharing platform specific sequence between runtime and system suspend/ resume paths 2014-08-14 16:13:34 +02:00
i915_drv.h drm/i915: Print captured bo for all VM in error state 2014-08-14 16:52:41 +02:00
i915_gem.c drm/i915/bdw: Emission of requests with logical rings 2014-08-14 22:02:55 +02:00
i915_gem_context.c drm/i915: Drop create_vm argument to i915_gem_create_context 2014-08-13 14:23:33 +02:00
i915_gem_debug.c drm/i915: prefer struct drm_i915_private to drm_i915_private_t 2014-03-31 15:34:21 +02:00
i915_gem_dmabuf.c drm/i915: Introduce mapping of user pages into video memory (userptr) ioctl 2014-05-16 19:31:29 +02:00
i915_gem_evict.c drm/i915: Prevent negative relocation deltas from wrapping 2014-05-27 11:18:40 +03:00
i915_gem_execbuffer.c drm/i915: Only track real ppgtt for a context 2014-08-13 14:23:33 +02:00
i915_gem_gtt.c drm/i915: Cleanup aliasging ppgtt alongside the global gtt 2014-08-13 14:23:35 +02:00
i915_gem_gtt.h drm/i915: Extract commmon global gtt cleanup code 2014-08-13 14:23:35 +02:00
i915_gem_render_state.c drm/i915: fix freeze with blank screen booting highmem 2014-07-22 08:10:36 +02:00
i915_gem_stolen.c Linux 3.16 2014-08-05 09:04:59 +10:00
i915_gem_tiling.c drm/i915: Remove fenced_gpu_access and pending_fenced_gpu_access 2014-08-11 12:20:25 +02:00
i915_gem_userptr.c drm/i915/userptr: Keep spin_lock/unlock in the same block 2014-07-25 09:39:03 +02:00
i915_gpu_error.c drm/i915: Print captured bo for all VM in error state 2014-08-14 16:52:41 +02:00
i915_ioc32.c drm: Remove DRM_ARRAY_SIZE() for ARRAY_SIZE() 2014-06-10 09:36:17 +10:00
i915_irq.c drm/i915/bdw: Interrupts with logical rings 2014-08-11 23:06:58 +02:00
i915_params.c drm/i915/bdw: Macro for LRCs and module option for Execlists 2014-08-11 16:00:27 +02:00
i915_reg.h drm/i915: Add support for variable cursor size on 845/865 2014-08-13 14:23:38 +02:00
i915_suspend.c drm/i915: disable GT power saving early during system suspend 2014-05-22 21:53:27 +02:00
i915_sysfs.c drm/i915/chv: calculate rc6 residency correctly 2014-07-12 11:13:47 +02:00
i915_trace.h drm/i915: s/intel_ring_buffer/intel_engine_cs 2014-05-22 23:01:05 +02:00
i915_trace_points.c
i915_ums.c drm/i915: Only restore backlight combination mode reg for ums 2014-01-24 17:22:45 +01:00
intel_acpi.c Merge branch 'acpi-dsm' 2014-01-12 23:45:52 +01:00
intel_bios.c drm/i915: Gather the HDMI level shifter logic into one place 2014-08-08 17:43:46 +02:00
intel_bios.h drm/i915: Add support for Video Burst Mode for MIPI DSI 2014-08-08 17:43:45 +02:00
intel_crt.c Merge remote-tracking branch 'airlied/drm-next' into drm-intel-next 2014-07-29 20:49:36 +02:00
intel_ddi.c drm/i915: Fix wrong number of HDMI translation entries 2014-08-11 11:29:29 +02:00
intel_display.c drm/i915: Add support for variable cursor size on 845/865 2014-08-13 14:23:38 +02:00
intel_dp.c drm/i915: Make hpd debug messages less cryptic 2014-08-11 19:32:15 +02:00
intel_dp_mst.c drm/i915: fix build without fbdev. 2014-07-22 20:11:29 +10:00
intel_drv.h drm/i915: Localise the fbdev console lock frobbing 2014-08-13 15:39:23 +02:00
intel_dsi.c drm/i915: Align intel_dsi*.c files a bit 2014-08-08 17:43:45 +02:00
intel_dsi.h drm/i915: Add support for Video Burst Mode for MIPI DSI 2014-08-08 17:43:45 +02:00
intel_dsi_cmd.c drm/i915: Align intel_dsi*.c files a bit 2014-08-08 17:43:45 +02:00
intel_dsi_cmd.h drm/i915: wait for all DSI FIFOs to be empty 2014-08-07 11:07:15 +02:00
intel_dsi_panel_vbt.c drm/i915: Add support for Video Burst Mode for MIPI DSI 2014-08-08 17:43:45 +02:00
intel_dsi_pll.c drm/i915: Align intel_dsi*.c files a bit 2014-08-08 17:43:45 +02:00
intel_dvo.c Merge tag 'drm-intel-next-2014-06-20' of git://anongit.freedesktop.org/drm-intel into drm-next 2014-07-09 10:38:42 +10:00
intel_fbdev.c drm/i915: Localise the fbdev console lock frobbing 2014-08-13 15:39:23 +02:00
intel_hdmi.c drm/i915: Introduce a for_each_intel_encoder() macro 2014-08-08 17:43:50 +02:00
intel_i2c.c drm/i915: Kill duplicated cdclk readout code from i2c 2014-07-07 11:27:52 +02:00
intel_lrc.c drm/i915/bdw: Two-stage execlist submit process 2014-08-14 22:10:59 +02:00
intel_lrc.h drm/i915/bdw: Two-stage execlist submit process 2014-08-14 22:10:59 +02:00
intel_lvds.c drm/i915: Introduce a for_each_intel_encoder() macro 2014-08-08 17:43:50 +02:00
intel_modes.c
intel_opregion.c Linux 3.16 2014-08-05 09:04:59 +10:00
intel_overlay.c drm/i915: use helpers 2014-07-18 14:25:15 +10:00
intel_panel.c Linux 3.16 2014-08-05 09:04:59 +10:00
intel_pm.c drm/i915: Remove set but unused 'gt_perf_status' 2014-08-11 13:27:34 +02:00
intel_renderstate.h drm/i915: Simplify processing of the golden render context state 2014-06-16 19:53:09 +02:00
intel_renderstate_gen6.c drm/i915: Simplify processing of the golden render context state 2014-06-16 19:53:09 +02:00
intel_renderstate_gen7.c drm/i915: Simplify processing of the golden render context state 2014-06-16 19:53:09 +02:00
intel_renderstate_gen8.c drm/i915: Simplify processing of the golden render context state 2014-06-16 19:53:09 +02:00
intel_ringbuffer.c drm/i915: Fix up checks for aliasing ppgtt 2014-08-13 14:23:31 +02:00
intel_ringbuffer.h drm/i915/bdw: Two-stage execlist submit process 2014-08-14 22:10:59 +02:00
intel_sdvo.c Merge tag 'topic/core-stuff-2014-06-30' of git://anongit.freedesktop.org/drm-intel into drm-next 2014-07-08 11:04:35 +10:00
intel_sdvo_regs.h drm/i915: use __packed instead of __attribute__((packed)) 2013-12-03 18:19:49 +01:00
intel_sideband.c drm/i915: vlv/chv: fix DSI sideband register accessing 2014-05-19 17:50:14 +02:00
intel_sprite.c drm/i915: Add rotation property for sprites 2014-08-08 17:43:53 +02:00
intel_tv.c drm: add register and unregister functions for connectors 2014-06-19 08:55:28 +02:00
intel_uncore.c drm/i915: BDW can also detect unclaimed registers 2014-07-23 07:05:37 +02:00