linux/drivers/gpu/drm/i915
Michel Thierry a7a7a0e6eb drm/i915/tgl: Tigerlake only has global MOCS registers
Until Icelake, each engine had its own set of 64 MOCS registers. In
order to simplify, Tigerlake moves to only 64 Global MOCS registers,
which are no longer part of the engine context. Since these registers
are now global, they also only need to be initialized once.

>From Gen12 onwards, MOCS must specify the target cache (3:2) and LRU
management (5:4) fields and cannot be programmed to 'use the value from
Private PAT', because these fields are no longer part of the PPAT. Also
cacheability control (1:0) field has changed, 00 no longer means 'use
controls from page table', but uncacheable (UC).

v2 (Lucas):
    - Move the changes to the fault registers to a separate commit - the
      old ones overlap with the range used by the new global MOCS
      (requested by Daniele)
v3 (Lucas):
    - Clarify comment about setting the unused entries to the same value
      of index 0, that is the invalid entry (requested by Daniele)
    - Move changes to DONE_REG and ERROR_GEN6 to a separate commit
      (requested by Daniele)

Cc: Daniele Ceraolo Spurio <daniele.ceraolospurio@intel.com>
Signed-off-by: Michel Thierry <michel.thierry@intel.com>
Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Signed-off-by: Lucas De Marchi <lucas.demarchi@intel.com>
Reviewed-by: Tomasz Lis <tomasz.lis@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20190730180407.5993-5-lucas.demarchi@intel.com
2019-07-31 07:40:32 -07:00
..
display drm/i915/tgl: Add hpd interrupt handling 2019-07-30 12:31:08 -07:00
gem drm/i915/selftests: Pass intel_context to igt_spinner 2019-07-31 09:45:27 +01:00
gt drm/i915/tgl: Tigerlake only has global MOCS registers 2019-07-31 07:40:32 -07:00
gvt drm/i915/gt: Provide a local intel_context.vm 2019-07-30 16:09:35 +01:00
oa drm/i915: Drop extern qualifiers from header function prototypes 2019-07-12 13:04:54 +01:00
selftests drm/i915/selftests: Pass intel_context to igt_spinner 2019-07-31 09:45:27 +01:00
i915_active_types.h drm/i915: Capture vma contents outside of spinlock 2019-07-26 01:11:25 +01:00
i915_active.c drm/i915: Do not rely on for loop caching the mask 2019-07-26 17:14:06 +01:00
i915_active.h drm/i915: Capture vma contents outside of spinlock 2019-07-26 01:11:25 +01:00
i915_cmd_parser.c drm/i915: Move GEM object domain management from struct_mutex to local 2019-05-28 12:45:29 +01:00
i915_debugfs.c drm/i915/uc: Unify uC platform check 2019-07-25 07:30:41 +01:00
i915_debugfs.h
i915_drv.c drm/i915/uc: Don't enable communication twice on resume 2019-07-31 10:01:32 +01:00
i915_drv.h drm/i915/tgl: Tigerlake only has global MOCS registers 2019-07-31 07:40:32 -07:00
i915_fixed.h drm/i915: make i915_fixed.h self-contained 2019-06-27 10:50:24 +03:00
i915_gem_batch_pool.c drm/i915: Throw away the active object retirement complexity 2019-06-21 19:47:51 +01:00
i915_gem_batch_pool.h drm/i915: Split GEM object type definition to its own header 2019-05-28 12:45:29 +01:00
i915_gem_evict.c drm/i915: Move more GEM objects under gem/ 2019-05-28 12:45:29 +01:00
i915_gem_fence_reg.c drm/i915: Use intel_uncore_rmw in intel_gt_init_swizzling 2019-06-21 13:48:24 +01:00
i915_gem_fence_reg.h drm/i915: Convert i915_gem_init_swizzling to intel_gt 2019-06-21 13:48:22 +01:00
i915_gem_gtt.c drm/i915: Move aliasing_ppgtt underneath its i915_ggtt 2019-07-30 16:09:32 +01:00
i915_gem_gtt.h drm/i915: Move aliasing_ppgtt underneath its i915_ggtt 2019-07-30 16:09:32 +01:00
i915_gem.c drm/i915/tgl: Tigerlake only has global MOCS registers 2019-07-31 07:40:32 -07:00
i915_gem.h
i915_globals.c drm/i915: Move more GEM objects under gem/ 2019-05-28 12:45:29 +01:00
i915_globals.h drm/i915: make i915_globals.h self-contained 2019-06-27 10:50:32 +03:00
i915_gpu_error.c drm/i915/tgl: stop using ERROR_GEN6 and DONE_REG 2019-07-31 07:40:31 -07:00
i915_gpu_error.h drm/i915: Rely on spinlock protection for GPU error capture 2019-07-23 00:22:20 +01:00
i915_ioc32.c
i915_irq.c drm/i915/tgl: handle DP aux interrupts 2019-07-30 12:31:08 -07:00
i915_irq.h drm/i915/guc: move guc irq functions to intel_guc parameter 2019-07-13 19:56:01 +01:00
i915_memcpy.c
i915_mm.c mm/pgtable: drop pgtable_t variable from pte_fn_t functions 2019-07-12 11:05:46 -07:00
i915_params.c Revert "drm/i915: Update description of i915.enable_guc modparam" 2019-07-19 15:36:21 +01:00
i915_params.h Revert "drm/i915/guc: Turn on GuC/HuC auto mode" 2019-07-19 15:35:58 +01:00
i915_pci.c drm/i915/tgl: Tigerlake only has global MOCS registers 2019-07-31 07:40:32 -07:00
i915_perf.c drm/i915: Avoid ce->gem_context->i915 2019-07-31 07:43:42 +01:00
i915_pmu.c drm/i915: Show support for accurate sw PMU busyness tracking 2019-07-04 15:42:24 +01:00
i915_pmu.h
i915_priolist_types.h drm/i915: add infrastructure to hold off preemption on a request 2019-07-09 21:26:40 +01:00
i915_pvinfo.h drm/i915: make i915_pvinfo.h self-contained 2019-06-27 10:50:35 +03:00
i915_query.c Revert "drm/i915: Expand subslice mask" 2019-05-29 17:18:18 +03:00
i915_query.h
i915_reg.h drm/i915/tgl: Tigerlake only has global MOCS registers 2019-07-31 07:40:32 -07:00
i915_request.c drm/i915/gt: Use intel_gt as the primary object for handling resets 2019-07-12 21:06:56 +01:00
i915_request.h drm/i915: add infrastructure to hold off preemption on a request 2019-07-09 21:26:40 +01:00
i915_scatterlist.c drm/i915: Pull scatterlist utils out of i915_gem.h 2019-05-28 12:45:29 +01:00
i915_scatterlist.h drm/i915: Pull scatterlist utils out of i915_gem.h 2019-05-28 12:45:29 +01:00
i915_scheduler_types.h drm/i915/execlists: Minimalistic timeslicing 2019-06-20 16:52:36 +01:00
i915_scheduler.c drm/i915/execlists: Minimalistic timeslicing 2019-06-20 16:52:36 +01:00
i915_scheduler.h
i915_selftest.h drm/i915: make i915_selftest.h self-contained 2019-07-30 13:41:35 -07:00
i915_suspend.c drm/i915: move modesetting core code under display/ 2019-06-17 11:48:32 +03:00
i915_sw_fence.c
i915_sw_fence.h
i915_syncmap.c
i915_syncmap.h
i915_sysfs.c drm/i915: update with_intel_runtime_pm to use the rpm structure 2019-06-14 15:58:33 +01:00
i915_trace_points.c
i915_trace.h drm/i915: Copy name string into ring buffer for intel_update/disable_plane tracepoints 2019-07-11 22:53:20 +03:00
i915_user_extensions.c
i915_user_extensions.h
i915_utils.h drm/i915/execlists: Preempt-to-busy 2019-06-20 16:52:36 +01:00
i915_vgpu.c drm/i915/gt: Fixup kerneldoc parameters 2019-06-21 16:04:09 +01:00
i915_vgpu.h drm/i915: make i915_vgpu.h self-contained 2019-06-27 10:50:38 +03:00
i915_vma.c drm/i915: Move aliasing_ppgtt underneath its i915_ggtt 2019-07-30 16:09:32 +01:00
i915_vma.h drm/i915: Move fence register tracking from i915->mm to ggtt 2019-06-13 09:37:39 +01:00
intel_csr.c Linux 5.2-rc5 2019-06-19 12:07:29 +02:00
intel_csr.h
intel_device_info.c drm/i915/tgl: Check if pipe D is fused 2019-07-11 16:31:03 -07:00
intel_device_info.h drm/i915/tgl: Tigerlake only has global MOCS registers 2019-07-31 07:40:32 -07:00
intel_drv.h drm/i915: Add support for retrying hotplug 2019-07-15 12:13:34 -07:00
intel_gvt.c drm/i915: Propagate "_remove" function name suffix down 2019-07-12 13:05:08 +01:00
intel_gvt.h drm/i915: Propagate "_remove" function name suffix down 2019-07-12 13:05:08 +01:00
intel_pm.c drm/i915/uc: Unify uC platform check 2019-07-25 07:30:41 +01:00
intel_pm.h drm/i915: Convert most of atomic commit to take more intel state 2019-07-01 10:32:14 +02:00
intel_runtime_pm.c drm/i915: Propagate "_release" function name suffix down 2019-07-12 13:05:05 +01:00
intel_runtime_pm.h Merge drm/drm-next into drm-intel-next-queued 2019-07-29 08:51:48 -07:00
intel_sideband.c drm/i915: Make sandybridge_pcode_read() deal with the second data register 2019-05-27 20:51:48 +03:00
intel_sideband.h drm/i915: Make sandybridge_pcode_read() deal with the second data register 2019-05-27 20:51:48 +03:00
intel_uncore.c drm/i915: Replace "_load" with "_probe" consequently 2019-07-12 13:05:02 +01:00
intel_uncore.h drm/i915/uc: Move uC WOPCM setup in uc_init_hw 2019-07-31 10:19:28 +01:00
intel_wakeref.c drm/i915: Local debug BUG_ON for intel_wakeref 2019-06-21 19:48:00 +01:00
intel_wakeref.h drm/i915: Add a wakeref getter for iff the wakeref is already active 2019-06-26 18:01:01 +01:00
intel_wopcm.c drm/i915/uc: Move uC WOPCM setup in uc_init_hw 2019-07-31 10:19:28 +01:00
intel_wopcm.h drm/i915/uc: Move uC WOPCM setup in uc_init_hw 2019-07-31 10:19:28 +01:00
Kconfig drm/i915: add force_probe module parameter to replace alpha_support 2019-05-31 16:20:30 +03:00
Kconfig.debug drm/i915: use upstream version of header tests 2019-07-30 12:11:57 +03:00
Kconfig.profile drm/i915: Add a label for config DRM_I915_SPIN_REQUEST 2019-06-12 11:18:55 +01:00
Makefile drm/i915: use upstream version of header tests 2019-07-30 12:11:57 +03:00