linux/drivers/gpu/drm/i915
Chris Wilson 2564fe708b drm/i915: Disable semaphore busywaits on saturated systems
Asking the GPU to busywait on a memory address, perhaps not unexpectedly
in hindsight for a shared system, leads to bus contention that affects
CPU programs trying to concurrently access memory. This can manifest as
a drop in transcode throughput on highly over-saturated workloads.

The only clue offered by perf, is that the bus-cycles (perf stat -e
bus-cycles) jumped by 50% when enabling semaphores. This corresponds
with extra CPU active cycles being attributed to intel_idle's mwait.

This patch introduces a heuristic to try and detect when more than one
client is submitting to the GPU pushing it into an oversaturated state.
As we already keep track of when the semaphores are signaled, we can
inspect their state on submitting the busywait batch and if we planned
to use a semaphore but were too late, conclude that the GPU is
overloaded and not try to use semaphores in future requests. In
practice, this means we optimistically try to use semaphores for the
first frame of a transcode job split over multiple engines, and fail if
there are multiple clients active and continue not to use semaphores for
the subsequent frames in the sequence. Periodically, we try to
optimistically switch semaphores back on whenever the client waits to
catch up with the transcode results.

With 1 client, on Broxton J3455, with the relative fps normalized by %cpu:

x no semaphores
+ drm-tip
* patched
+------------------------------------------------------------------------+
|                                                    *                   |
|                                                    *+                  |
|                                                    **+                 |
|                                                    **+  x              |
|                                x               *  +**+  x              |
|                                x  x       *    *  +***x xx             |
|                                x  x       *    * *+***x *x             |
|                                x  x*   +  *    * *****x *x x           |
|                         +    x xx+x*   + ***   * ********* x   *       |
|                         +    x xx+x*   * *** +** ********* xx  *       |
|    *   +         ++++*  +    x*x****+*+* ***+*************+x*  *       |
|*+ +** *+ + +* + *++****** *xxx**********x***+*****************+*++    *|
|                                   |__________A_____M_____|             |
|                           |_______________A____M_________|             |
|                                 |____________A___M________|            |
+------------------------------------------------------------------------+
    N           Min           Max        Median           Avg        Stddev
x 120       2.60475       3.50941       3.31123     3.2143953    0.21117399
+ 120        2.3826       3.57077       3.25101     3.1414161    0.28146407
Difference at 95.0% confidence
	-0.0729792 +/- 0.0629585
	-2.27039% +/- 1.95864%
	(Student's t, pooled s = 0.248814)
* 120       2.35536       3.66713        3.2849     3.2059917    0.24618565
No difference proven at 95.0% confidence

With 10 clients over-saturating the pipeline:

x no semaphores
+ drm-tip
* patched
+------------------------------------------------------------------------+
|                     ++                                        **       |
|                     ++                                        **       |
|                     ++                                        **       |
|                     ++                                        **       |
|                     ++                                    xx ***       |
|                     ++                                    xx ***       |
|                     ++                                    xxx***       |
|                     ++                                    xxx***       |
|                    +++                                    xxx***       |
|                    +++                                    xx****       |
|                    +++                                    xx****       |
|                    +++                                    xx****       |
|                    +++                                    xx****       |
|                    ++++                                   xx****       |
|                   +++++                                   xx****       |
|                   +++++                                 x x******      |
|                  ++++++                                 xxx*******     |
|                  ++++++                                 xxx*******     |
|                  ++++++                                 xxx*******     |
|                  ++++++                                 xx********     |
|                  ++++++                               xxxx********     |
|                  ++++++                               xxxx********     |
|                ++++++++                             xxxxx*********     |
|+ +  +        + ++++++++                           xxx*xx**********x*  *|
|                                                         |__A__|        |
|                 |__AM__|                                               |
|                                                            |__A_|      |
+------------------------------------------------------------------------+
    N           Min           Max        Median           Avg        Stddev
x 120       2.47855        2.8972       2.72376     2.7193402   0.074604933
+ 120       1.17367       1.77459       1.71977     1.6966782   0.085850697
Difference at 95.0% confidence
	-1.02266 +/- 0.0203502
	-37.607% +/- 0.748352%
	(Student's t, pooled s = 0.0804246)
* 120       2.57868       3.00821       2.80142     2.7923878   0.058646477
Difference at 95.0% confidence
	0.0730476 +/- 0.0169791
	2.68622% +/- 0.624383%
	(Student's t, pooled s = 0.0671018)

Indicating that we've recovered the regression from enabling semaphores
on this saturated setup, with a hint towards an overall improvement.

Very similar, but of smaller magnitude, results are observed on both
Skylake(gt2) and Kabylake(gt4). This may be due to the reduced impact of
bus-cycles, where we see a 50% hit on Broxton, it is only 10% on the big
core, in this particular test.

One observation to make here is that for a greedy client trying to
maximise its own throughput, using semaphores is the right choice. It is
only the holistic system-wide view that semaphores of one client
impacts another and reduces the overall throughput where we would choose
to disable semaphores.

The most noticeable negactive impact this has is on the no-op
microbenchmarks, which are also very notable for having no cpu bus load.
In particular, this increases the runtime and energy consumption of
gem_exec_whisper.

Fixes: e886196469 ("drm/i915: Use HW semaphores for inter-engine synchronisation on gen8+")
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Cc: Dmitry Rogozhkin <dmitry.v.rogozhkin@intel.com>
Cc: Dmitry Ermilov <dmitry.ermilov@intel.com>
Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20190504070707.30902-1-chris@chris-wilson.co.uk
(cherry picked from commit ca6e56f654)
Signed-off-by: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
2019-05-07 12:46:19 +03:00
..
gvt Merge tag 'drm-intel-next-2019-04-17' of git://anongit.freedesktop.org/drm/drm-intel into drm-next 2019-04-24 10:02:20 +10:00
selftests drm/i915/selftests: Skip live timeline/suspend tests if wedged 2019-04-15 11:58:19 +01:00
.gitignore drm/i915: add Makefile magic for testing headers are self-contained 2019-04-04 19:49:42 +03:00
dvo.h drm/i915: drop all drmP.h includes 2019-01-09 10:26:36 +02:00
dvo_ch7xxx.c
dvo_ch7017.c
dvo_ivch.c
dvo_ns2501.c
dvo_sil164.c
dvo_tfp410.c
i915_active.c drm/i915: Protect i915_active iterators from the shrinker 2019-03-08 09:52:29 -08:00
i915_active.h drm/i915: Remove has-kernel-context 2019-03-08 10:57:12 +00:00
i915_active_types.h drm/i915: Pull i915_gem_active into the i915_active family 2019-02-05 17:20:11 +00:00
i915_cmd_parser.c drm/i915: Store the BIT(engine->id) as the engine's mask 2019-03-05 18:19:50 +00:00
i915_debugfs.c Merge tag 'drm-intel-next-2019-04-17' of git://anongit.freedesktop.org/drm/drm-intel into drm-next 2019-04-24 10:02:20 +10:00
i915_drv.c drm/i915: extract intel_cdclk.h from intel_drv.h 2019-04-08 09:53:35 +03:00
i915_drv.h drm/i915: Update DRIVER_DATE to 20190417 2019-04-17 12:07:47 +03:00
i915_fixed.h
i915_gem.c drm/i915: Avoid use-after-free in reporting create.size 2019-04-24 09:39:07 +03:00
i915_gem.h drm/i915: Move intel_engine_mask_t around for use by i915_request_types.h 2019-04-02 15:09:08 +01:00
i915_gem_batch_pool.c
i915_gem_batch_pool.h
i915_gem_clflush.c
i915_gem_clflush.h
i915_gem_context.c drm/i915: Introduce struct class_instance for engines across the uAPI 2019-04-17 07:25:42 +01:00
i915_gem_context.h drm/i915: Move intel_engine_mask_t around for use by i915_request_types.h 2019-04-02 15:09:08 +01:00
i915_gem_context_types.h drm/i915: Allow contexts to share a single timeline across all engines 2019-03-22 13:12:38 +00:00
i915_gem_dmabuf.c drm/i915: Flush pages on acquisition 2019-03-21 17:28:12 +00:00
i915_gem_evict.c drm/i915: Remove has-kernel-context 2019-03-08 10:57:12 +00:00
i915_gem_execbuffer.c drm/i915: Flush pages on acquisition 2019-03-21 17:28:12 +00:00
i915_gem_fence_reg.c drm/i915: Switch to bitmap_zalloc() 2019-03-20 17:50:35 +00:00
i915_gem_fence_reg.h drm/i915: Remove GPU reset dependence on struct_mutex 2019-01-25 14:27:22 +00:00
i915_gem_gtt.c drm/i915: Disable read only ppgtt support for gen11 2019-04-11 20:48:51 +01:00
i915_gem_gtt.h drm/i915: Move intel_engine_mask_t around for use by i915_request_types.h 2019-04-02 15:09:08 +01:00
i915_gem_internal.c drm/i915: Make object/vma allocation caches global 2019-02-28 11:08:02 +00:00
i915_gem_object.c drm/i915: Use i915_global_register() 2019-03-06 10:00:50 +00:00
i915_gem_object.h drm/i915: Check domains for userptr on release 2019-03-31 12:46:52 +01:00
i915_gem_render_state.c drm/i915: Flush pages on acquisition 2019-03-21 17:28:12 +00:00
i915_gem_render_state.h
i915_gem_shrinker.c drm/i915: Pull VM lists under the VM mutex. 2019-01-28 16:24:13 +00:00
i915_gem_stolen.c drm/i915: Make object/vma allocation caches global 2019-02-28 11:08:02 +00:00
i915_gem_tiling.c drm/i915: Switch to bitmap_zalloc() 2019-03-20 17:50:35 +00:00
i915_gem_userptr.c drm/i915: Check domains for userptr on release 2019-03-31 12:46:52 +01:00
i915_gemfs.c
i915_gemfs.h
i915_globals.c drm/i915: Use static allocation for i915_globals_park() 2019-04-08 17:04:01 +01:00
i915_globals.h drm/i915: Move over to intel_context_lookup() 2019-03-08 13:59:52 +00:00
i915_gpu_error.c drm/i915: add GEN2_ prefix to the I{E, I, M, S}R registers 2019-04-16 14:18:58 -07:00
i915_gpu_error.h drm/i915: Move intel_engine_mask_t around for use by i915_request_types.h 2019-04-02 15:09:08 +01:00
i915_ioc32.c drm: Split out drm_probe_helper.h 2019-01-24 13:20:42 +01:00
i915_irq.c drm/i915: fully convert the IRQ initialization macros to intel_uncore 2019-04-16 14:24:39 -07:00
i915_memcpy.c
i915_mm.c
i915_oa_bdw.c
i915_oa_bdw.h
i915_oa_bxt.c
i915_oa_bxt.h
i915_oa_cflgt2.c
i915_oa_cflgt2.h
i915_oa_cflgt3.c
i915_oa_cflgt3.h
i915_oa_chv.c
i915_oa_chv.h
i915_oa_cnl.c
i915_oa_cnl.h
i915_oa_glk.c
i915_oa_glk.h
i915_oa_hsw.c
i915_oa_hsw.h
i915_oa_icl.c
i915_oa_icl.h
i915_oa_kblgt2.c
i915_oa_kblgt2.h
i915_oa_kblgt3.c
i915_oa_kblgt3.h
i915_oa_sklgt2.c
i915_oa_sklgt2.h
i915_oa_sklgt3.c
i915_oa_sklgt3.h
i915_oa_sklgt4.c
i915_oa_sklgt4.h
i915_params.c drm/i915: Enable fastboot by default on Skylake and newer 2019-01-29 10:41:58 +01:00
i915_params.h drm/i915: Enable fastboot by default on Skylake and newer 2019-01-29 10:41:58 +01:00
i915_pci.c drm/i915: extract intel_fbdev.h from intel_drv.h 2019-04-08 09:52:49 +03:00
i915_perf.c drm/i915: switch intel_wait_for_register to uncore 2019-03-26 20:20:24 +00:00
i915_pmu.c Merge drm/drm-next into drm-intel-next-queued 2019-03-27 18:23:53 +02:00
i915_pmu.h Merge back earlier PM core material for v5.1. 2019-02-24 21:20:27 +01:00
i915_priolist_types.h drm/i915: Split out i915_priolist_types into its own header 2019-04-02 15:52:09 +01:00
i915_pvinfo.h drm/i915: Mark up vGPU support for full-ppgtt 2019-03-15 09:04:54 +00:00
i915_query.c drm/i915/query: Split out query item checks 2019-02-26 10:32:57 +00:00
i915_query.h
i915_reg.h drm/i915: add GEN2_ prefix to the I{E, I, M, S}R registers 2019-04-16 14:18:58 -07:00
i915_request.c drm/i915: Disable semaphore busywaits on saturated systems 2019-05-07 12:46:19 +03:00
i915_request.h drm/i915: Bump ready tasks ahead of busywaits 2019-04-11 07:14:27 +01:00
i915_reset.c drm/i915: add GEN2_ prefix to the I{E, I, M, S}R registers 2019-04-16 14:18:58 -07:00
i915_reset.h drm/i915: extract intel_fbc.h from intel_drv.h 2019-04-08 09:51:56 +03:00
i915_scheduler.c drm/i915: Bump ready tasks ahead of busywaits 2019-04-11 07:14:27 +01:00
i915_scheduler.h drm/i915: Move intel_engine_mask_t around for use by i915_request_types.h 2019-04-02 15:09:08 +01:00
i915_scheduler_types.h drm/i915: Only emit one semaphore per request 2019-04-02 15:52:09 +01:00
i915_selftest.h drm/i915/selftests: Apply a subtest filter 2019-01-29 19:59:57 +00:00
i915_suspend.c drm/i915: extract intel_fbc.h from intel_drv.h 2019-04-08 09:51:56 +03:00
i915_sw_fence.c drm/i915: Allow contexts to share a single timeline across all engines 2019-03-22 13:12:38 +00:00
i915_sw_fence.h drm/i915: Allow contexts to share a single timeline across all engines 2019-03-22 13:12:38 +00:00
i915_syncmap.c
i915_syncmap.h
i915_sysfs.c drm/i915: Syntatic sugar for using intel_runtime_pm 2019-01-14 16:18:25 +00:00
i915_timeline.c drm/i915: Consolidate the timeline->barrier 2019-04-08 17:04:12 +01:00
i915_timeline.h drm/i915: Consolidate the timeline->barrier 2019-04-08 17:04:12 +01:00
i915_timeline_types.h drm/i915: Consolidate the timeline->barrier 2019-04-08 17:04:12 +01:00
i915_trace.h drm/i915: Remove i915_request.global_seqno 2019-02-26 09:55:37 +00:00
i915_trace_points.c
i915_user_extensions.c drm/i915: Introduce the i915_user_extension_method 2019-03-22 13:12:30 +00:00
i915_user_extensions.h drm/i915: Introduce the i915_user_extension_method 2019-03-22 13:12:30 +00:00
i915_utils.h Merge drm/drm-next into drm-intel-next-queued 2019-03-27 18:23:53 +02:00
i915_vgpu.c drm/i915: rename raw reg access functions 2019-03-26 19:15:15 +00:00
i915_vgpu.h drm/i915: Mark up vGPU support for full-ppgtt 2019-03-15 09:04:54 +00:00
i915_vma.c drm/i915: Use i915_global_register() 2019-03-06 10:00:50 +00:00
i915_vma.h drm/i915: Use i915_global_register() 2019-03-06 10:00:50 +00:00
icl_dsi.c Linux 5.1-rc5 2019-04-15 15:51:49 +10:00
intel_acpi.c drm/i915: drop all drmP.h includes 2019-01-09 10:26:36 +02:00
intel_atomic.c drm/i915: extract intel_sprite.h from intel_drv.h 2019-04-08 09:53:30 +03:00
intel_atomic_plane.c drm/i915: extract intel_sprite.h from intel_drv.h 2019-04-08 09:53:30 +03:00
intel_atomic_plane.h drm/i915: extract intel_atomic_plane.h from intel_drv.h 2019-04-08 09:53:07 +03:00
intel_audio.c drm/i915: extract intel_audio.h from intel_drv.h 2019-04-08 09:51:22 +03:00
intel_audio.h drm/i915: extract intel_audio.h from intel_drv.h 2019-04-08 09:51:22 +03:00
intel_bios.c drm/i915/bios: iterate over child devices to initialize ddi_port_info 2019-03-25 15:16:33 +02:00
intel_bios.h
intel_breadcrumbs.c drm/i915: Drop bool return from breadcrumbs signaler 2019-04-16 11:06:00 +01:00
intel_cdclk.c drm/i915/ehl: inherit icl cdclk init/uninit 2019-04-17 11:50:23 +03:00
intel_cdclk.h drm/i915/cdclk: have only one init/uninit function 2019-04-08 09:53:40 +03:00
intel_color.c drm/i915: Fix ICL output CSC programming 2019-04-29 09:49:21 +03:00
intel_color.h drm/i915: extract intel_color.h from intel_drv.h 2019-04-08 09:52:14 +03:00
intel_combo_phy.c drm/i915: Suppress spurious combo PHY B warning 2019-04-12 16:35:50 +03:00
intel_connector.c drm/i915: extract intel_panel.h from intel_drv.h 2019-04-08 09:52:36 +03:00
intel_connector.h drm/i915: extract intel_connector.h from intel_drv.h 2019-04-08 09:51:41 +03:00
intel_context.c drm/i915: Disable semaphore busywaits on saturated systems 2019-05-07 12:46:19 +03:00
intel_context.h drm/i915: Hold a reference to the active HW context 2019-03-19 08:21:13 +00:00
intel_context_types.h drm/i915: Disable semaphore busywaits on saturated systems 2019-05-07 12:46:19 +03:00
intel_crt.c drm/i915: extract intel_connector.h from intel_drv.h 2019-04-08 09:51:41 +03:00
intel_crt.h drm/i915: extract intel_crt.h from intel_drv.h 2019-04-08 09:51:29 +03:00
intel_csr.c drm/i915: extract intel_csr.h from intel_drv.h 2019-04-08 09:51:49 +03:00
intel_csr.h drm/i915: extract intel_csr.h from intel_drv.h 2019-04-08 09:51:49 +03:00
intel_ddi.c drm/i915/icl: Fix MG_DP_MODE() register programming 2019-04-24 09:39:11 +03:00
intel_ddi.h drm/i915: extract intel_ddi.h from intel_drv.h 2019-04-08 09:51:36 +03:00
intel_device_info.c drm/i915: Fix uninitialized mask in intel_device_info_subplatform_init 2019-04-03 10:55:43 +01:00
intel_device_info.h drm/i915: Move intel_engine_mask_t around for use by i915_request_types.h 2019-04-02 15:09:08 +01:00
intel_display.c drm/i915: Nuke drm_crtc_state and use intel_atomic_state instead 2019-04-15 12:54:24 -07:00
intel_display.h drm next pull request for 5.1 2019-03-08 08:23:15 -08:00
intel_dp.c Linux 5.1-rc5 2019-04-15 15:51:49 +10:00
intel_dp.h drm/i915: Set DP min_bpp to 8*3 for non-RGB output formats 2019-04-11 21:22:40 +03:00
intel_dp_aux_backlight.c
intel_dp_link_training.c drm/i915: extract intel_dp.h from intel_drv.h 2019-04-08 09:52:54 +03:00
intel_dp_mst.c drm/i915: Set DP min_bpp to 8*3 for non-RGB output formats 2019-04-11 21:22:40 +03:00
intel_dpio_phy.c drm/i915: extract intel_dp.h from intel_drv.h 2019-04-08 09:52:54 +03:00
intel_dpll_mgr.c drm/i915: switch intel_wait_for_register to uncore 2019-03-26 20:20:24 +00:00
intel_dpll_mgr.h drm/i915: Nuke icl_calc_dp_combo_pll_link() 2019-03-19 12:57:55 +02:00
intel_drv.h Linux 5.1-rc5 2019-04-15 15:51:49 +10:00
intel_dsi.c
intel_dsi.h drm/i915: Adjust DSI fixed mode handling 2019-03-22 18:41:39 +02:00
intel_dsi_dcs_backlight.c
intel_dsi_vbt.c drm/i915: Adjust DSI fixed mode handling 2019-03-22 18:41:39 +02:00
intel_dvo.c drm/i915: extract intel_dvo.h from intel_drv.h 2019-04-08 09:53:25 +03:00
intel_dvo.h drm/i915: extract intel_dvo.h from intel_drv.h 2019-04-08 09:53:25 +03:00
intel_engine_cs.c drm/i915: Prepare for larger CSB status FIFO size 2019-04-11 09:20:04 +01:00
intel_engine_types.h drm/i915: Prepare for larger CSB status FIFO size 2019-04-11 09:20:04 +01:00
intel_fbc.c drm/i915: extract intel_psr.h from intel_drv.h 2019-04-08 09:52:03 +03:00
intel_fbc.h drm/i915: extract intel_fbc.h from intel_drv.h 2019-04-08 09:51:56 +03:00
intel_fbdev.c drm-misc-next for v5.2: 2019-04-24 10:12:50 +10:00
intel_fbdev.h drm/i915: extract intel_fbdev.h from intel_drv.h 2019-04-08 09:52:49 +03:00
intel_fifo_underrun.c drm/i915: extract intel_fbc.h from intel_drv.h 2019-04-08 09:51:56 +03:00
intel_frontbuffer.c drm/i915: extract intel_dp.h from intel_drv.h 2019-04-08 09:52:54 +03:00
intel_frontbuffer.h drm/i915: make intel_frontbuffer.h self-contained 2019-04-08 09:51:18 +03:00
intel_gpu_commands.h drm/i915: Use HW semaphores for inter-engine synchronisation on gen8+ 2019-03-01 17:45:07 +00:00
intel_guc.c drm/i915: switch intel_wait_for_register to uncore 2019-03-26 20:20:24 +00:00
intel_guc.h drm/i915/guc: Support for extended GuC notification messages 2019-03-24 11:31:47 +00:00
intel_guc_ads.c drm/i915: Track the pinned kernel contexts on each engine 2019-03-08 14:00:02 +00:00
intel_guc_ads.h
intel_guc_ct.c drm/i915/guc: Support for extended GuC notification messages 2019-03-24 11:31:47 +00:00
intel_guc_ct.h drm/i915/guc: Splitting CT channel open/close functions 2019-02-20 23:53:04 +00:00
intel_guc_fw.c drm/i915: use intel_uncore for all forcewake get/put 2019-03-20 21:12:31 +00:00
intel_guc_fw.h
intel_guc_fwif.h
intel_guc_log.c drm/i915/guc: Flush the residual log capture irq on disabling 2019-02-22 11:25:32 +00:00
intel_guc_log.h
intel_guc_reg.h
intel_guc_submission.c drm/i915/guc: Implement reset locally 2019-04-11 20:48:51 +01:00
intel_guc_submission.h drm/i915: Move intel_engine_mask_t around for use by i915_request_types.h 2019-04-02 15:09:08 +01:00
intel_gvt.c drm/i915: Enable gfx virtualization for Coffeelake platform 2019-01-10 11:38:34 +08:00
intel_gvt.h
intel_hangcheck.c drm/i915: Move intel_engine_mask_t around for use by i915_request_types.h 2019-04-02 15:09:08 +01:00
intel_hdcp.c drm/i915: extract intel_hdcp.h from intel_drv.h 2019-04-08 09:52:30 +03:00
intel_hdcp.h drm/i915: extract intel_hdcp.h from intel_drv.h 2019-04-08 09:52:30 +03:00
intel_hdmi.c drm/i915: extract intel_hdmi.h from intel_drv.h 2019-04-08 09:53:01 +03:00
intel_hdmi.h drm/i915: extract intel_hdmi.h from intel_drv.h 2019-04-08 09:53:01 +03:00
intel_hotplug.c drm/i915: Rename HAS_GMCH 2019-02-05 09:43:23 -08:00
intel_huc.c drm/i915: switch intel_wait_for_register to uncore 2019-03-26 20:20:24 +00:00
intel_huc.h
intel_huc_fw.c drm/i915: intel_wait_for_register_fw to uncore 2019-03-26 20:16:45 +00:00
intel_huc_fw.h
intel_i2c.c drm/i915: intel_wait_for_register_fw to uncore 2019-03-26 20:16:45 +00:00
intel_lpe_audio.c drm: Split out drm_probe_helper.h 2019-01-24 13:20:42 +01:00
intel_lrc.c drm/i915: Flush the CSB pointer reset 2019-04-12 14:32:11 +01:00
intel_lrc.h drm/i915/guc: Implement reset locally 2019-04-11 20:48:51 +01:00
intel_lrc_reg.h
intel_lspcon.c drm/i915: extract intel_dp.h from intel_drv.h 2019-04-08 09:52:54 +03:00
intel_lspcon.h drm/i915: extract intel_lspcon.h from intel_drv.h 2019-04-08 09:52:21 +03:00
intel_lvds.c drm/i915: extract intel_lvds.h from intel_drv.h 2019-04-08 09:53:21 +03:00
intel_lvds.h drm/i915: extract intel_lvds.h from intel_drv.h 2019-04-08 09:53:21 +03:00
intel_mocs.c drm/i915/gen11+: First assume next platforms will inherit stuff 2019-03-13 13:00:24 -07:00
intel_mocs.h drm/i915: drop all drmP.h includes 2019-01-09 10:26:36 +02:00
intel_opregion.c drm/i915: extract intel_panel.h from intel_drv.h 2019-04-08 09:52:36 +03:00
intel_opregion.h
intel_overlay.c drm/i915: add GEN2_ prefix to the I{E, I, M, S}R registers 2019-04-16 14:18:58 -07:00
intel_panel.c drm/i915: extract intel_panel.h from intel_drv.h 2019-04-08 09:52:36 +03:00
intel_panel.h drm/i915: extract intel_panel.h from intel_drv.h 2019-04-08 09:52:36 +03:00
intel_pipe_crc.c drm/i915: extract intel_pipe_crc.h from intel_drv.h 2019-04-08 09:53:12 +03:00
intel_pipe_crc.h drm/i915: extract intel_pipe_crc.h from intel_drv.h 2019-04-08 09:53:12 +03:00
intel_pm.c drm/i915: Mark up ips for RCU protection 2019-04-16 13:42:27 +01:00
intel_pm.h drm/i915: extract intel_pm.h from intel_drv.h 2019-04-08 09:52:43 +03:00
intel_psr.c drm/i915/psr: Do not enable PSR in interlaced mode for all GENs 2019-04-08 10:39:11 -07:00
intel_psr.h drm/i915: extract intel_psr.h from intel_drv.h 2019-04-08 09:52:03 +03:00
intel_quirks.c
intel_renderstate.h
intel_renderstate_gen6.c
intel_renderstate_gen7.c
intel_renderstate_gen8.c
intel_renderstate_gen9.c
intel_ringbuffer.c drm/i915: add GEN2_ prefix to the I{E, I, M, S}R registers 2019-04-16 14:18:58 -07:00
intel_ringbuffer.h drm/i915: Drop bool return from breadcrumbs signaler 2019-04-16 11:06:00 +01:00
intel_runtime_pm.c drm/i915/ehl: Inherit Ice Lake conditional code 2019-04-12 15:15:01 -07:00
intel_sdvo.c drm/i915: extract intel_hdmi.h from intel_drv.h 2019-04-08 09:53:01 +03:00
intel_sdvo.h drm/i915: extract intel_sdvo.h from intel_drv.h 2019-04-08 09:52:26 +03:00
intel_sdvo_regs.h
intel_sideband.c drm/i915: switch intel_wait_for_register to uncore 2019-03-26 20:20:24 +00:00
intel_sprite.c drm/i915: extract intel_sprite.h from intel_drv.h 2019-04-08 09:53:30 +03:00
intel_sprite.h drm/i915: extract intel_sprite.h from intel_drv.h 2019-04-08 09:53:30 +03:00
intel_tv.c drm/i915: extract intel_tv.h from intel_drv.h 2019-04-08 09:53:16 +03:00
intel_tv.h drm/i915: extract intel_tv.h from intel_drv.h 2019-04-08 09:53:16 +03:00
intel_uc.c drm/i915/guc: Retry GuC load for all load failures 2019-03-30 08:02:07 +00:00
intel_uc.h drm/i915/guc: Calling guc_disable_communication in all suspend paths 2019-02-20 23:53:21 +00:00
intel_uc_fw.c drm/i915: Downgrade scare message for unknown HuC firmware 2019-01-08 22:41:09 +00:00
intel_uc_fw.h
intel_uncore.c drm/i915: extract intel_pm.h from intel_drv.h 2019-04-08 09:52:43 +03:00
intel_uncore.h drm/i915: Convert i915_reset.c over to using uncore mmio 2019-04-05 22:03:24 +01:00
intel_vbt_defs.h drm/i915/vbt: Parse and use the new field with PSR2 TP2/3 wakeup time 2019-03-13 14:20:19 -07:00
intel_vdsc.c drm/dsc: Split DSC PPS and SDP header initialisations 2019-03-05 13:24:34 -05:00
intel_wopcm.c drm/i915/uc: add dev_priv parameter to intel_uc_is_using_* functions 2018-12-31 15:27:23 +02:00
intel_wopcm.h
intel_workarounds.c drm/i915/icl: Whitelist GEN9_SLICE_COMMON_ECO_CHICKEN1 2019-04-30 10:16:18 +03:00
intel_workarounds.h drm/i915: Teach intel_workarounds to use uncore mmio access 2019-04-13 07:46:43 +01:00
intel_workarounds_types.h drm/i915: Split struct intel_context definition to its own header 2019-03-08 13:59:44 +00:00
Kconfig treewide: surround Kconfig file paths with double quotes 2018-12-22 00:25:54 +09:00
Kconfig.debug drm/i915: Track all held rpm wakerefs 2019-01-14 16:17:50 +00:00
Makefile drm/i915: add Makefile magic for testing headers are self-contained 2019-04-04 19:49:42 +03:00
Makefile.header-test drm/i915: extract intel_cdclk.h from intel_drv.h 2019-04-08 09:53:35 +03:00
vlv_dsi.c Linux 5.1-rc5 2019-04-15 15:51:49 +10:00
vlv_dsi_pll.c drm/i915: switch intel_wait_for_register to uncore 2019-03-26 20:20:24 +00:00