linux_dsm_epyc7002/drivers/gpu/drm/i915
Chris Wilson 900ccf30f9 drm/i915: Only force GGTT coherency w/a on required chipsets
Not all chipsets have an internal buffer delaying the visibility of
writes via the GGTT being visible by other physical paths, but we use a
very heavy workaround for all. We only need to apply that workarounds to
the chipsets we know suffer from the delay and the resulting coherency
issue.

Similarly, the same inconsistent coherency fouls up our ABI promise that
a write into a mmap_gtt is immediately visible to others. Since the HW
has made that a lie, let userspace know when that contract is broken.
(Not that userspace would want to use mmap_gtt on those chipsets for
other performance reasons...)

Testcase: igt/drv_selftest/live_coherency
Testcase: igt/gem_mmap_gtt/coherency
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=100587
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Reviewed-by: Tomasz Lis <tomasz.lis@intel.com>
Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20180720101910.11153-1-chris@chris-wilson.co.uk
2018-07-20 16:53:55 +01:00
..
gvt Merge tag 'gvt-next-2018-07-11' of https://github.com/intel/gvt-linux into drm-intel-next-queued 2018-07-12 00:23:44 -07:00
selftests drm/i915/selftests: Free the backing store between iterations 2018-07-17 10:28:03 +01:00
dvo_ch7xxx.c drm/i915/dvo: switch to kernel unsigned int types 2018-06-18 14:45:58 +03:00
dvo_ch7017.c drm/i915/dvo: switch to kernel unsigned int types 2018-06-18 14:45:58 +03:00
dvo_ivch.c drm/i915/dvo: switch to kernel unsigned int types 2018-06-18 14:45:58 +03:00
dvo_ns2501.c drm/i915/dvo: switch to kernel unsigned int types 2018-06-18 14:45:58 +03:00
dvo_sil164.c drm/i915/dvo: switch to kernel unsigned int types 2018-06-18 14:45:58 +03:00
dvo_tfp410.c drm/i915/dvo: switch to kernel unsigned int types 2018-06-18 14:45:58 +03:00
dvo.h
i915_cmd_parser.c drm/i915/cmdparser: Do not check past the cmd length. 2018-02-06 11:41:40 -08:00
i915_debugfs.c drm/i915: Kill sink_crc for good 2018-07-18 12:53:08 -07:00
i915_drv.c drm/i915: Only force GGTT coherency w/a on required chipsets 2018-07-20 16:53:55 +01:00
i915_drv.h drm/i915: Update DRIVER_DATE to 20180719 2018-07-19 08:47:59 -07:00
i915_gem_batch_pool.c drm/i915: Change parameters order in i915_gem_batch_pool_init 2018-03-09 22:21:41 +00:00
i915_gem_batch_pool.h drm/i915: Change parameters order in i915_gem_batch_pool_init 2018-03-09 22:21:41 +00:00
i915_gem_clflush.c drm: move read_domains and write_domain into i915 2018-02-16 14:12:48 +00:00
i915_gem_clflush.h
i915_gem_context.c drm/i915: Record logical context support in driver caps 2018-07-06 14:05:23 +01:00
i915_gem_context.h drm/i915: Forward declare struct intel_context 2018-05-25 08:21:19 +01:00
i915_gem_dmabuf.c drm: move read_domains and write_domain into i915 2018-02-16 14:12:48 +00:00
i915_gem_evict.c drm/i915: Provide a timeout to i915_gem_wait_for_idle() 2018-07-09 13:55:41 +01:00
i915_gem_execbuffer.c drm/i915: Move i915_vma_move_to_active() to i915_vma.c 2018-07-06 18:22:41 +01:00
i915_gem_fence_reg.c drm/i915: Use INTEL_GEN everywhere 2018-02-09 22:29:02 +00:00
i915_gem_fence_reg.h
i915_gem_gtt.c drm/i915: Suppress assertion for i915_ggtt_disable_guc 2018-07-20 16:04:01 +01:00
i915_gem_gtt.h drm/i915/gtt: Read-only pages for insert_entries on bdw+ 2018-07-13 16:12:03 +01:00
i915_gem_internal.c drm: move read_domains and write_domain into i915 2018-02-16 14:12:48 +00:00
i915_gem_object.c
i915_gem_object.h drm/i915/userptr: Enable read-only support on gen8+ 2018-07-13 16:18:15 +01:00
i915_gem_render_state.c drm/i915: Start returning an error from i915_vma_move_to_active() 2018-07-06 18:22:37 +01:00
i915_gem_render_state.h drm/i915: Rename drm_i915_gem_request to i915_request 2018-02-21 20:57:22 +00:00
i915_gem_shrinker.c drm/i915: Introduce i915_address_space.mutex 2018-07-11 13:56:16 +01:00
i915_gem_stolen.c drm/i915: use the ICL stolen memory 2018-07-10 16:29:56 -07:00
i915_gem_tiling.c drm/i915: Refactor common list iteration over GGTT vma 2017-12-07 23:26:55 +00:00
i915_gem_userptr.c drm/i915/userptr: Enable read-only support on gen8+ 2018-07-13 16:18:15 +01:00
i915_gem.c drm/i915: Only force GGTT coherency w/a on required chipsets 2018-07-20 16:53:55 +01:00
i915_gem.h drm/i915/execlists: Direct submission of new requests (avoid tasklet/ksoftirqd) 2018-06-28 22:55:10 +01:00
i915_gemfs.c drm/i915: Disable THP until we have a GPU read BW W/A 2017-11-30 10:11:49 +02:00
i915_gemfs.h
i915_gpu_error.c drm/i915: Track vma activity per fence.context, not per engine 2018-07-06 18:22:43 +01:00
i915_gpu_error.h drm/i915: Track vma activity per fence.context, not per engine 2018-07-06 18:22:43 +01:00
i915_ioc32.c drm/i915: Clean up ancient doc comments for i915_ioc32.c 2018-02-15 16:22:21 +00:00
i915_irq.c drm/i915/execlists: Drop clear_gtiir() on GPU reset 2018-07-13 22:32:43 +01:00
i915_memcpy.c drm/i915: Do not enable movntdqa optimization in hypervisor guest 2017-12-22 11:12:15 +00:00
i915_mm.c
i915_oa_bdw.c drm/i915: ensure oa config uuid is null terminated 2017-11-02 14:52:58 +00:00
i915_oa_bdw.h
i915_oa_bxt.c drm/i915: ensure oa config uuid is null terminated 2017-11-02 14:52:58 +00:00
i915_oa_bxt.h
i915_oa_cflgt2.c drm/i915: ensure oa config uuid is null terminated 2017-11-02 14:52:58 +00:00
i915_oa_cflgt2.h
i915_oa_cflgt3.c drm/i915/perf: Fix compiler warning for string truncation 2018-02-12 23:34:50 -08:00
i915_oa_cflgt3.h drm/i915/perf: add support for Coffeelake GT3 2017-11-13 15:59:03 +00:00
i915_oa_chv.c drm/i915: ensure oa config uuid is null terminated 2017-11-02 14:52:58 +00:00
i915_oa_chv.h
i915_oa_cnl.c drm/i915/perf: Fix compiler warning for string truncation 2018-02-12 23:34:55 -08:00
i915_oa_cnl.h drm/i915/perf: enable perf support on CNL 2017-11-13 15:59:24 +00:00
i915_oa_glk.c drm/i915: ensure oa config uuid is null terminated 2017-11-02 14:52:58 +00:00
i915_oa_glk.h
i915_oa_hsw.c drm/i915: ensure oa config uuid is null terminated 2017-11-02 14:52:58 +00:00
i915_oa_hsw.h
i915_oa_icl.c drm/i915/perf: enable perf support on ICL 2018-03-29 13:25:30 +01:00
i915_oa_icl.h drm/i915/perf: enable perf support on ICL 2018-03-29 13:25:30 +01:00
i915_oa_kblgt2.c drm/i915: ensure oa config uuid is null terminated 2017-11-02 14:52:58 +00:00
i915_oa_kblgt2.h
i915_oa_kblgt3.c drm/i915: ensure oa config uuid is null terminated 2017-11-02 14:52:58 +00:00
i915_oa_kblgt3.h
i915_oa_sklgt2.c drm/i915: ensure oa config uuid is null terminated 2017-11-02 14:52:58 +00:00
i915_oa_sklgt2.h
i915_oa_sklgt3.c drm/i915: ensure oa config uuid is null terminated 2017-11-02 14:52:58 +00:00
i915_oa_sklgt3.h
i915_oa_sklgt4.c drm/i915: ensure oa config uuid is null terminated 2017-11-02 14:52:58 +00:00
i915_oa_sklgt4.h
i915_params.c drm/i915: Remove intel_panel_detect() 2018-07-19 18:39:31 +03:00
i915_params.h drm/i915: Remove intel_panel_detect() 2018-07-19 18:39:31 +03:00
i915_pci.c drm/i915: Only force GGTT coherency w/a on required chipsets 2018-07-20 16:53:55 +01:00
i915_perf.c drm/i915: Provide a timeout to i915_gem_wait_for_idle() 2018-07-09 13:55:41 +01:00
i915_pmu.c drm/i915/pmu: Do not assume fixed hrtimer period 2018-06-05 16:45:01 +01:00
i915_pmu.h drm/i915/pmu: Do not assume fixed hrtimer period 2018-06-05 16:45:01 +01:00
i915_pvinfo.h - Ice Lake's display enabling patches (Jose, Mahesh, Dhinakaran, Paulo, Manasi, Anusha, Arkadiusz) 2018-06-07 10:24:50 +08:00
i915_query.c drm/i915/query: nospec expects no more than an unsigned long 2018-05-22 16:55:57 +01:00
i915_query.h drm/i915: add query uAPI 2018-03-08 10:07:18 +00:00
i915_reg.h i915/dp/dsc: Add Rate Control Range Parameter Registers 2018-07-18 17:47:53 -07:00
i915_request.c drm/i915: Provide a timeout to i915_gem_wait_for_idle() 2018-07-09 13:55:41 +01:00
i915_request.h drm/i915: Track vma activity per fence.context, not per engine 2018-07-06 18:22:43 +01:00
i915_scheduler.h drm/i915: Pack params to engine->schedule() into a struct 2018-04-18 21:09:11 +01:00
i915_selftest.h drm/i915/selftests: Downgrade igt_timeout message 2018-07-16 11:23:45 +01:00
i915_suspend.c
i915_sw_fence.c drm/i915/fence: Separate timeout mechanism for awaiting on dma-fences 2018-01-15 10:29:18 +00:00
i915_sw_fence.h
i915_syncmap.c drm/i915: Fix kerneldoc parameter markup 2018-02-08 15:08:51 +00:00
i915_syncmap.h
i915_sysfs.c drm/i915: Kick the rps worker when changing the boost frequency 2018-03-12 11:24:49 -07:00
i915_timeline.c drm/i915: Split i915_gem_timeline into individual timelines 2018-05-02 23:57:18 +01:00
i915_timeline.h drm/i915: Replace nested subclassing with explicit subclasses 2018-07-07 08:09:43 +01:00
i915_trace_points.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
i915_trace.h drm/i915/ringbuffer: Fix context restore upon reset 2018-06-11 14:03:47 +01:00
i915_utils.h drm/i915: Retire requests along rings 2018-04-30 16:01:18 +01:00
i915_vgpu.c drm/i915/gtt: Rename i915_hw_ppgtt base member 2018-06-05 21:11:20 +01:00
i915_vgpu.h drm/i915: Add new vGPU cap info bit VGT_CAPS_HUGE_GTT 2018-06-05 16:57:01 +03:00
i915_vma.c drm/i915: Handle recursive shrinker for vma->last_active allocation 2018-07-19 12:27:46 +01:00
i915_vma.h drm/i915: Track the last-active inside the i915_vma 2018-07-06 18:23:07 +01:00
icl_dsi.c drm/i915/icl: Power down unused DSI lanes 2018-07-06 12:14:16 +03:00
intel_acpi.c drm/i915/dsm: remove unnecessary dsm priv structure 2018-06-14 15:59:09 +03:00
intel_atomic_plane.c drm/i915: Print prop name/id when rejecting it 2018-06-19 17:18:24 +03:00
intel_atomic.c drm/i915: Print prop name/id when rejecting it 2018-06-19 17:18:24 +03:00
intel_audio.c drm/i915/audio: constify ELD pointers 2018-06-19 17:41:44 +03:00
intel_bios.c drm/i915/psr: fix copy-paste error with setting of tp2_wakeup_time_us 2018-06-20 12:00:31 -07:00
intel_bios.h
intel_breadcrumbs.c drm/i915: Move the irq_counter inside the spinlock 2018-06-28 20:56:35 +01:00
intel_cdclk.c drm/i915: Mark expected switch fall-throughs 2018-07-05 16:40:51 +03:00
intel_color.c Merge airlied/drm-next into drm-misc-next 2018-03-21 09:40:55 -04:00
intel_crt.c drm/i915: Enforce max hdisplay/hblank_start limits on HSW/BDW FDI 2018-06-19 17:18:24 +03:00
intel_csr.c drm/i915: add support for specifying DMC firmware override by module param 2018-05-02 13:05:01 +03:00
intel_ddi.c drm/i915: Nuke dev_priv->irq_port[] 2018-07-13 18:22:22 +03:00
intel_device_info.c drm/i915: Record logical context support in driver caps 2018-07-06 14:05:23 +01:00
intel_device_info.h drm/i915: Only force GGTT coherency w/a on required chipsets 2018-07-20 16:53:55 +01:00
intel_display.c drm/i915: Fix assert_plane() warning on bootup with external display 2018-07-19 23:20:44 +03:00
intel_display.h drm/i915: Introduce for_each_intel_dp() 2018-07-13 18:22:21 +03:00
intel_dp_aux_backlight.c drm/i915/backlight: switch to kernel unsigned int types 2018-06-18 14:46:04 +03:00
intel_dp_link_training.c drm/i915/dp: Add support for HBR3 and TPS4 during link training 2018-06-14 14:58:22 -07:00
intel_dp_mst.c drm/i915: Replace drm_connector_{un/reference} with put,get functions 2018-06-28 19:09:21 +02:00
intel_dp.c drm/i915: Assume eDP is always connected 2018-07-19 18:39:31 +03:00
intel_dpio_phy.c drm/i915/gen9_lp: Increase DDI PHY0 power well enabling timeout 2018-04-10 13:12:22 +03:00
intel_dpll_mgr.c drm/i915/icl: compute the TBT PLL registers 2018-07-19 15:29:12 -07:00
intel_dpll_mgr.h drm/i915/icl: Fix MG PLL setup when refclk is 38.4MHz 2018-06-21 19:01:40 +03:00
intel_drv.h drm/i915: Remove intel_panel_detect() 2018-07-19 18:39:31 +03:00
intel_dsi_dcs_backlight.c
intel_dsi_vbt.c drm/i915/dsi: use vlv and bxt prefixes for the global DSI functions 2018-07-06 10:54:05 +03:00
intel_dsi.h drm/i915/dsi: use vlv and bxt prefixes for the global DSI functions 2018-07-06 10:54:05 +03:00
intel_dvo.c drm/i915/dvo: switch to kernel unsigned int types 2018-06-18 14:45:58 +03:00
intel_engine_cs.c drm/i915: Do not short-circuit tasklets during reset 2018-07-13 22:32:20 +01:00
intel_fbc.c drm/i915: Remove delayed FBC activation. 2018-06-29 10:06:31 +02:00
intel_fbdev.c drm/i915: Use intel_fb_obj() everywhere 2018-05-22 09:44:02 +01:00
intel_fifo_underrun.c
intel_frontbuffer.c drm/i915/psr: Nuke PSR support for VLV and CHV 2018-05-24 16:05:19 +03:00
intel_frontbuffer.h
intel_gpu_commands.h drm/i915: Split GPU commands definitions into separate header 2018-03-15 10:00:03 +00:00
intel_guc_ads.c drm/i915: Wrap engine->context_pin() and engine->context_unpin() 2018-04-30 16:01:13 +01:00
intel_guc_ads.h drm/i915/guc : Decoupling ADS and logs from submission 2018-01-03 14:02:10 +00:00
intel_guc_ct.c drm/i915/guc: Replace %phn with %ph 2018-04-10 17:15:29 +01:00
intel_guc_ct.h drm/i915/guc: Prepare to process incoming requests from CT 2018-03-28 20:35:17 +01:00
intel_guc_fw.c drm/i915/uc: Fetch uC firmware in init_early 2018-03-23 17:03:24 +00:00
intel_guc_fw.h drm/i915/guc: Move firmware selection to init_early 2017-12-06 14:41:47 +00:00
intel_guc_fwif.h drm/i915/guc: Move defines with size of GuC logs to intel_guc_log.h 2018-06-12 15:44:45 +01:00
intel_guc_log.c drm/i915/guc: Move defines with size of GuC logs to intel_guc_log.h 2018-06-12 15:44:45 +01:00
intel_guc_log.h drm/i915/guc: Add support for define guc_log_size in megabytes. 2018-06-12 15:44:47 +01:00
intel_guc_reg.h drm/i915/guc: Check the locking status of GuC WOPCM registers 2018-03-14 15:35:37 +02:00
intel_guc_submission.c drm/i915/guc: Keep guc submission permanently engaged 2018-07-19 10:13:26 +01:00
intel_guc_submission.h drm/i915/guc: Move GuC workqueue allocations outside of the mutex 2017-12-14 08:06:54 +00:00
intel_guc.c drm/i915/guc: Disable rpm wakeref asserts in GuC irq handler 2018-07-14 19:21:20 +01:00
intel_guc.h drm/i915/guc: Use intel_guc_init_misc to hide GuC internals 2018-06-28 22:51:32 +01:00
intel_gvt.c drm/i915: Unwind HW init after GVT setup failure 2018-07-10 16:46:09 +01:00
intel_gvt.h
intel_hangcheck.c drm/i915: Declare the driver wedged if hangcheck makes no progress 2018-06-14 19:20:33 +01:00
intel_hdcp.c drm/i915: Fix memory leak in intel_hdcp auth 2018-04-06 09:57:31 +03:00
intel_hdmi.c drm/i915/icl: Add 10-bit support for hdmi 2018-06-20 13:54:19 -07:00
intel_hotplug.c drm/i915: Pass hpd_pin to long_pulse_detect() 2018-07-13 18:22:22 +03:00
intel_huc_fw.c drm/i915/uc: Fetch uC firmware in init_early 2018-03-23 17:03:24 +00:00
intel_huc_fw.h drm/i915/uc: Make GuC/HuC fw fetch and loading functions/file structure symmetric 2018-03-02 09:04:45 +00:00
intel_huc.c drm/i915/uc: Fetch GuC/HuC firmwares from guc/huc specific init 2018-06-28 22:51:33 +01:00
intel_huc.h drm/i915/uc: Fetch GuC/HuC firmwares from guc/huc specific init 2018-06-28 22:51:33 +01:00
intel_i2c.c drm/i915/gmbus: Enable burst read 2018-07-12 17:31:28 +02:00
intel_lpe_audio.c drm/i915: Avoid leaking lpe audio platdev.data 2018-02-08 17:28:53 +00:00
intel_lrc_reg.h drm/i915/icl: Add Indirect Context Offset for Gen11 2018-03-07 15:07:39 +02:00
intel_lrc.c drm/i915/execlists: Move the assertion we have the rpm wakeref down 2018-07-19 13:23:43 +01:00
intel_lrc.h drm/i915/guc: Keep guc submission permanently engaged 2018-07-19 10:13:26 +01:00
intel_lspcon.c drm/i915/lspcon: switch to kernel unsigned int types 2018-06-18 14:46:22 +03:00
intel_lvds.c drm/i915: Nuke the LVDS lid notifier 2018-07-19 18:39:31 +03:00
intel_mocs.c drm/i915/icl: Add configuring MOCS in new Icelake engines 2018-05-03 16:41:04 -07:00
intel_mocs.h drm/i915: Rename drm_i915_gem_request to i915_request 2018-02-21 20:57:22 +00:00
intel_modes.c drm/i915: remove redundant ELD connector type update 2018-01-19 11:58:48 +02:00
intel_opregion.c drm/i915/opregion: move acpi notifier to dev_priv 2018-06-14 13:48:10 +03:00
intel_opregion.h drm/i915/opregion: move acpi notifier to dev_priv 2018-06-14 13:48:10 +03:00
intel_overlay.c drm/i915/frontbuffer: Pull frontbuffer_flush out of gem_obj_pin_to_display 2018-03-13 13:49:39 -07:00
intel_panel.c drm/i915: Remove intel_panel_detect() 2018-07-19 18:39:31 +03:00
intel_pipe_crc.c drm/i915: Remove support for legacy debugfs crc interface 2018-07-06 14:33:35 +02:00
intel_pm.c drm/i915: Silence warning for no vlv powercontext 2018-07-12 13:26:15 +01:00
intel_psr.c drm/i915/psr: Remove few mod parameters option. 2018-07-12 23:33:38 -07:00
intel_renderstate_gen6.c
intel_renderstate_gen7.c
intel_renderstate_gen8.c
intel_renderstate_gen9.c
intel_renderstate.h
intel_ringbuffer.c drm/i915: Prevent writing into a read-only object via a GGTT mmap 2018-07-13 16:14:04 +01:00
intel_ringbuffer.h drm/i915/selftests: Force a preemption hang 2018-07-16 17:17:27 +01:00
intel_runtime_pm.c drm/i915: Mark expected switch fall-throughs 2018-07-05 16:40:51 +03:00
intel_sdvo_regs.h
intel_sdvo.c drm/i915: Remove pointless if-else from sdvo code 2018-07-05 22:16:56 +03:00
intel_sideband.c
intel_sprite.c drm/i915: Use crtc_state->has_psr instead of CAN_PSR for pipe update 2018-07-12 19:30:30 -07:00
intel_tv.c drm/i915/tv: fix strncpy truncation warning 2018-07-12 10:18:19 +01:00
intel_uc_fw.c drm/i915/guc: Fix null pointer dereference when GuC FW is not available 2018-03-23 17:03:24 +00:00
intel_uc_fw.h drm/i915/firmware: Correct URL for firmware 2018-05-02 13:40:17 -07:00
intel_uc.c drm/i915/uc: Fetch GuC/HuC firmwares from guc/huc specific init 2018-06-28 22:51:33 +01:00
intel_uc.h drm/i915/uc: Fetch uC firmware in init_early 2018-03-23 17:03:24 +00:00
intel_uncore.c drm/i915: Add WaKBLVECSSemaphoreWaitPoll 2018-06-08 12:16:20 +03:00
intel_uncore.h drm/i915/uncore: switch to kernel unsigned int types 2018-06-18 14:45:51 +03:00
intel_vbt_defs.h drm/i915/vbt: switch to kernel unsigned int types 2018-06-18 14:44:52 +03:00
intel_wopcm.c drm/i915: Use correct reST syntax for WOPCM and GuC kernel-doc diagrams 2018-03-28 14:42:56 +03:00
intel_wopcm.h drm/i915/guc: Check the locking status of GuC WOPCM registers 2018-03-14 15:35:37 +02:00
intel_workarounds.c drm/i915: Keep the ctx workarounds tightly packed 2018-06-15 13:27:04 +01:00
intel_workarounds.h drm/i915: Check whitelist registers across resets 2018-04-14 18:36:45 +01:00
Kconfig
Kconfig.debug drm/i915: Squelch very verbose error logging 2018-07-06 11:23:47 +01:00
Makefile drm/i915/icl: Program DSI Escape clock Divider 2018-07-06 12:13:34 +03:00
vlv_dsi_pll.c drm/i915/dsi: use vlv and bxt prefixes for the global DSI functions 2018-07-06 10:54:05 +03:00
vlv_dsi.c drm/i915/dsi: update some of the platform based checks 2018-07-06 10:54:10 +03:00