OpenCloudOS-Kernel/drivers/gpu/drm/i915
Cooper Chiou c7d561cfcf drm/i915: Enable WaProgramMgsrForCorrectSliceSpecificMmioReads for Gen9
This implements WaProgramMgsrForCorrectSliceSpecificMmioReads which
was omitted by mistake from Gen9 documentation, while it is actually
applicable to fused off parts.

Workaround consists of making sure MCR packet control register is
programmed to point to enabled slice/subslice pair before doing any
MMIO reads from the affected registers.

Failure do to this can result in complete system hangs when running
certain workloads. Two known cases which can cause system hangs are:

1. "test_basic progvar_prog_scope_uninit" test which is part of
    Khronos OpenCL conformance suite
    (https://github.com/KhronosGroup/OpenCL-CTS) with the Intel
    OpenCL driver (https://github.com/intel/compute-runtime).

2. VP8 media hardware encoding using the full-feature build of the
    Intel media-driver (https://github.com/intel/media-driver) and
    ffmpeg.

For the former case patch was verified to fix the hard system hang
when executing the OCL test on Intel Pentium CPU 6405U which contains
fused off GT1 graphics.

Reference: HSD#1508045018,1405586840, BSID#0575

Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
Cc: Jani Nikula <jani.nikula@intel.com>
Cc: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com>
Cc: William Tseng <william.tseng@intel.com>
Cc: Shawn C Lee <shawn.c.lee@intel.com>
Cc: Pawel Wilma <pawel.wilma@intel.com>
Signed-off-by: Cooper Chiou <cooper.chiou@intel.com>
Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Acked-by: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20211025042623.3876-1-cooper.chiou@intel.com
2021-11-01 10:46:53 +00:00
..
display drm/i915: Fix oops on platforms w/o hpd support 2021-10-14 23:23:55 +03:00
gem drm/i915: Use ERR_CAST instead of ERR_PTR(PTR_ERR()) 2021-10-25 16:35:55 +01:00
gt drm/i915: Enable WaProgramMgsrForCorrectSliceSpecificMmioReads for Gen9 2021-11-01 10:46:53 +00:00
gvt drm/i915: Use direction definition DMA_BIDIRECTIONAL instead of PCI_DMA_BIDIRECTIONAL 2021-09-30 16:19:45 +02:00
pxp drm/i915/pxp: add PXP documentation 2021-10-04 13:11:31 -04:00
selftests drm/i915/selftests: Update live.evict to wait on requests / idle GPU after each loop 2021-10-22 11:33:47 -07:00
.gitignore
Kconfig drm/i915: Clean up PXP Kconfig info. 2021-10-15 14:22:11 -04:00
Kconfig.debug drm/i915: Improve debug Kconfig texts a bit 2021-07-06 10:10:07 +02:00
Kconfig.profile drm/i915: Fail too long user submissions by default 2021-03-26 01:01:27 +01:00
Kconfig.unstable
Makefile drm/i915: rename intel_sideband.[ch] to intel_sbi.[ch] 2021-10-14 18:05:04 +03:00
TODO.txt drm/i915: add gem/gt TODO 2021-03-26 09:24:31 +01:00
dma_resv_utils.c dma-buf: drop the _rcu postfix on function names v3 2021-06-06 11:19:51 +02:00
dma_resv_utils.h drm/i915/gem: Optimistically prune dma-resv from the shrinker. 2020-12-23 21:58:00 +00:00
i915_active.c drm/i915: move i915_active slab to direct module init/exit 2021-07-28 16:45:57 +02:00
i915_active.h drm/i915: move i915_active slab to direct module init/exit 2021-07-28 16:45:57 +02:00
i915_active_types.h drm/i915: drop the __i915_active_call pointer packing 2021-05-05 11:36:23 +01:00
i915_buddy.c drm/i915/buddy: add some pretty printing 2021-08-20 09:40:22 +01:00
i915_buddy.h drm/i915/buddy: add some pretty printing 2021-08-20 09:40:22 +01:00
i915_cmd_parser.c drm/i915: Correct the docs for intel_engine_cmd_parser 2021-07-21 11:49:36 -04:00
i915_config.c drm/i915: remove IS_ACTIVE 2021-10-07 11:04:05 -07:00
i915_debugfs.c Merge tag 'drm-intel-gt-next-2021-10-21' of git://anongit.freedesktop.org/drm/drm-intel into drm-next 2021-10-22 06:30:34 +10:00
i915_debugfs.h
i915_debugfs_params.c drm/i915/guc: Connect reset modparam updates to GuC policy flags 2021-07-27 17:32:06 -07:00
i915_debugfs_params.h
i915_drv.c drm/i915: split out intel_pcode.[ch] to separate file 2021-10-14 18:04:17 +03:00
i915_drv.h drm/i915: Remove some dead struct fwd decl from i915_drv.h 2021-10-29 16:57:49 +02:00
i915_fixed.h
i915_gem.c drm/i915: Make wa list per-gt 2021-09-20 08:06:36 -07:00
i915_gem.h drm/i915: Break out dma_resv ww locking utilities to separate files 2021-06-17 14:22:59 +01:00
i915_gem_evict.c drm/i915/guc: Update intel_gt_wait_for_idle to work with GuC 2021-07-22 10:07:23 -07:00
i915_gem_gtt.c drm/i915: Use direction definition DMA_BIDIRECTIONAL instead of PCI_DMA_BIDIRECTIONAL 2021-09-30 16:19:45 +02:00
i915_gem_gtt.h
i915_gem_ww.c drm/i915: Break out dma_resv ww locking utilities to separate files 2021-06-17 14:22:59 +01:00
i915_gem_ww.h drm/i915: Ditch the i915_gem_ww_ctx loop member 2021-08-20 09:39:41 +01:00
i915_getparam.c drm/i915/userptr: Probe existence of backing struct pages upon creation 2021-08-05 11:34:00 +02:00
i915_gpu_error.c drm/i915: Check SFC fusing before recording/dumping SFC_DONE 2021-09-20 21:42:10 -07:00
i915_gpu_error.h Merge drm/drm-next into drm-misc-next 2021-05-22 07:17:05 +02:00
i915_ioc32.c
i915_ioc32.h
i915_irq.c drm/i915: constify hotplug function vtable. 2021-09-29 09:28:39 +03:00
i915_irq.h drm/i915/irq: reduce inlines to reduce header dependencies 2021-08-20 10:28:31 +03:00
i915_memcpy.c drm/i915: Move cmd parser pinning to execbuffer 2021-03-24 11:39:59 +01:00
i915_memcpy.h drm/i915: Move cmd parser pinning to execbuffer 2021-03-24 11:39:59 +01:00
i915_mitigations.c drm/i915: Allow the sysadmin to override security mitigations 2021-01-12 19:03:40 +02:00
i915_mitigations.h drm/i915: Allow the sysadmin to override security mitigations 2021-01-12 19:03:40 +02:00
i915_mm.c Revert "i915: use io_mapping_map_user" 2021-06-02 15:06:10 +03:00
i915_module.c drm/i915/pci: rename functions to have i915_pci prefix 2021-08-26 10:50:19 +03:00
i915_params.c drm/i915/uc: Use platform specific defaults for GuC/HuC enabling 2021-06-09 10:52:03 -07:00
i915_params.h drm/i915/display: Enable PSR2 selective fetch by default 2021-09-30 15:04:45 -07:00
i915_pci.c Merge tag 'drm-intel-gt-next-2021-10-08' of git://anongit.freedesktop.org/drm/drm-intel into drm-next 2021-10-11 18:09:39 +10:00
i915_pci.h drm/i915/pci: rename functions to have i915_pci prefix 2021-08-26 10:50:19 +03:00
i915_perf.c Merge tag 'drm-intel-next-2021-08-10-1' of git://anongit.freedesktop.org/drm/drm-intel into drm-next 2021-08-12 11:20:17 +10:00
i915_perf.h drm/i915: Use a table for i915_init/exit (v2) 2021-07-22 12:05:17 +02:00
i915_perf_types.h i915/perf: Store a mask of valid OA formats for a platform 2021-02-09 13:26:29 +02:00
i915_pmu.c drm/i915/guc/slpc: Sysfs hooks for SLPC 2021-08-03 16:05:40 -07:00
i915_pmu.h drm/i915: Use a table for i915_init/exit (v2) 2021-07-22 12:05:17 +02:00
i915_priolist_types.h drm/i915: Remove I915_USER_PRIORITY_SHIFT 2021-03-24 19:30:34 +01:00
i915_pvinfo.h
i915_query.c drm/i915: Expose logical engine instance to user 2021-10-15 10:37:31 -07:00
i915_query.h
i915_reg.h drm/i915/pmu: Connect engine busyness stats from GuC to pmu 2021-10-28 11:04:43 -07:00
i915_request.c drm/i915: Make request conflict tracking understand parallel submits 2021-10-15 10:45:50 -07:00
i915_request.h drm/i915: Update I915_GEM_BUSY IOCTL to understand composite fences 2021-10-15 10:45:51 -07:00
i915_scatterlist.c drm/i915/ttm: add i915_sg_from_buddy_resource 2021-06-16 16:33:26 +01:00
i915_scatterlist.h drm/i915/ttm: add i915_sg_from_buddy_resource 2021-06-16 16:33:26 +01:00
i915_scheduler.c drm/i915: move scheduler slabs to direct module init/exit 2021-07-28 17:18:56 +02:00
i915_scheduler.h drm/i915: move scheduler slabs to direct module init/exit 2021-07-28 17:18:56 +02:00
i915_scheduler_types.h drm/i915/guc: Implement GuC priority management 2021-07-27 17:32:27 -07:00
i915_selftest.h drm/i915: Pin timeline map after first timeline pin, v4. 2021-03-24 11:39:46 +01:00
i915_suspend.c drm/i915: replace IS_GEN and friends with GRAPHICS_VER 2021-06-07 00:59:48 -07:00
i915_suspend.h
i915_sw_fence.c dma-buf: drop the _rcu postfix on function names v3 2021-06-06 11:19:51 +02:00
i915_sw_fence.h
i915_sw_fence_work.c drm/i915: Drop error handling from dma_fence_work 2021-07-16 21:47:39 +02:00
i915_sw_fence_work.h drm/i915: Drop error handling from dma_fence_work 2021-07-16 21:47:39 +02:00
i915_switcheroo.c drm/i915: Remove references to struct drm_device.pdev 2021-02-02 13:58:42 +02:00
i915_switcheroo.h
i915_syncmap.c
i915_syncmap.h
i915_sysfs.c drm/i915: split out vlv sideband to a separate file 2021-10-14 12:22:55 +03:00
i915_sysfs.h
i915_trace.h drm/i915: Revert 'guc_id' from i915_request tracepoint 2021-10-27 14:09:04 +03:00
i915_trace_points.c
i915_ttm_buddy_manager.c drm/i915/buddy: add some pretty printing 2021-08-20 09:40:22 +01:00
i915_ttm_buddy_manager.h drm/i915: support forcing the page size with lmem 2021-06-30 13:24:29 +01:00
i915_user_extensions.c
i915_user_extensions.h
i915_utils.c drm/i915: Wrap our timer_list.expires checking 2021-01-07 21:37:14 +00:00
i915_utils.h drm/i915: remove IS_ACTIVE 2021-10-07 11:04:05 -07:00
i915_vgpu.c drm/i915: replace IS_GEN and friends with GRAPHICS_VER 2021-06-07 00:59:48 -07:00
i915_vgpu.h
i915_vma.c drm/i915: Multi-BB execbuf 2021-10-15 10:45:50 -07:00
i915_vma.h drm/i915: Multi-BB execbuf 2021-10-15 10:45:50 -07:00
i915_vma_types.h drm/i915/adlp: Add support for remapping CCS FBs 2021-09-23 17:36:01 +03:00
intel_device_info.c drm/i915: finish removal of CNL 2021-07-30 10:19:48 -07:00
intel_device_info.h drm/i915/pxp: define PXP device flag and kconfig 2021-10-04 13:10:22 -04:00
intel_dram.c drm/i915: Remove memory frequency calculation 2021-10-14 13:19:19 -07:00
intel_dram.h
intel_gvt.c
intel_gvt.h
intel_memory_region.c drm/i915/debugfs: hook up ttm_resource_manager_debug 2021-08-20 09:40:23 +01:00
intel_memory_region.h drm/i915/debugfs: hook up ttm_resource_manager_debug 2021-08-20 09:40:23 +01:00
intel_pch.c drm/i915: remove explicit CNL handling from intel_pch.c 2021-07-30 10:19:18 -07:00
intel_pch.h drm/i915/dg2: Add fake PCH 2021-07-22 09:28:58 -07:00
intel_pcode.c drm/i915: split out intel_pcode.[ch] to separate file 2021-10-14 18:04:17 +03:00
intel_pcode.h drm/i915: split out intel_pcode.[ch] to separate file 2021-10-14 18:04:17 +03:00
intel_pm.c drm/i915: split out intel_pcode.[ch] to separate file 2021-10-14 18:04:17 +03:00
intel_pm.h drm/i915/wm: provide wrappers around watermark vfuncs calls (v3) 2021-09-29 08:53:57 +03:00
intel_region_ttm.c drm/i915: support forcing the page size with lmem 2021-06-30 13:24:29 +01:00
intel_region_ttm.h drm/i915/ttm: remove node usage in our naming 2021-06-16 16:48:02 +01:00
intel_runtime_pm.c drm/i915: Fix docbook header for __intel_runtime_pm_get_if_active() 2021-03-31 16:57:33 +03:00
intel_runtime_pm.h drm/i915: intel_runtime_pm.h does not actually need intel_display.h 2021-08-20 10:28:49 +03:00
intel_sbi.c drm/i915: rename intel_sideband.[ch] to intel_sbi.[ch] 2021-10-14 18:05:04 +03:00
intel_sbi.h drm/i915: rename intel_sideband.[ch] to intel_sbi.[ch] 2021-10-14 18:05:04 +03:00
intel_step.c drm/i915/dg2: Add support for new DG2-G11 revid 0x5 2021-08-06 09:03:10 -07:00
intel_step.h drm/i915/step: Add macro magic for handling steps 2021-07-22 10:18:06 -07:00
intel_uncore.c Merge tag 'drm-intel-gt-next-2021-10-08' of git://anongit.freedesktop.org/drm/drm-intel into drm-next 2021-10-11 18:09:39 +10:00
intel_uncore.h Merge tag 'drm-intel-gt-next-2021-10-08' of git://anongit.freedesktop.org/drm/drm-intel into drm-next 2021-10-11 18:09:39 +10:00
intel_wakeref.c
intel_wakeref.h drm/i915/guc: Take engine PM when a context is pinned with GuC submission 2021-10-15 10:37:26 -07:00
intel_wopcm.c drm/i915: remove explicit CNL handling from intel_wopcm.c 2021-07-30 10:19:18 -07:00
intel_wopcm.h
vlv_sideband.c drm/i915: split out vlv sideband to a separate file 2021-10-14 12:22:55 +03:00
vlv_sideband.h drm/i915: split out vlv sideband to a separate file 2021-10-14 12:22:55 +03:00
vlv_suspend.c
vlv_suspend.h