linux/drivers/gpu/drm/i915
Chris Wilson 3800cd1953 drm/i915/execlists: Stop storing the CSB read pointer in the mmio register
As we now never read back our current head position from the CSB
pointers register, and the HW itself doesn't use it to prevent
overwriting unread CSB entries, we do not need to keep updating the
register. As it turns out this register is not listed as being shadowed,
and so requires forcewake -- but we haven't been taking forcewake around
it so the writes has probably been regularly dropped. Fortuitously, we
only read the value after a reset where it did not matter, and zero was
the right answer (well, close enough).

Mika pointed out that this was how we used to do it (accidentally!)
before he fixed it in commit cc53699b25 ("drm/i915: Use masked write
for Context Status Buffer Pointer").

References: cc53699b25 ("drm/i915: Use masked write for Context Status Buffer Pointer")
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Cc: Daniele Ceraolo Spurio <daniele.ceraolospurio@intel.com>
Cc: Mika Kuoppala <mika.kuoppala@linux.intel.com>
Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20180628201211.13837-7-chris@chris-wilson.co.uk
2018-06-28 22:55:08 +01:00
..
gvt drm/i915/gvt: Add mmio handler for for BXT. 2018-06-13 10:57:29 +08:00
selftests drm/i915: Replace drm_dev_unref with drm_dev_put 2018-06-28 19:09:46 +02:00
dvo.h
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
i915_cmd_parser.c
i915_debugfs.c drm/i915: Keep the ctx workarounds tightly packed 2018-06-15 13:27:04 +01:00
i915_drv.c drm/i915: remove check for aux irq 2018-06-21 18:55:35 +03:00
i915_drv.h drm/i915/psr: Kill useless function pointers. 2018-06-26 10:07:24 -07:00
i915_gem.c drm/i915/uc: Fetch GuC/HuC firmwares from guc/huc specific init 2018-06-28 22:51:33 +01:00
i915_gem.h drm/i915/execlists: Wait for ELSP submission on restart 2018-05-25 13:39:49 +01: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
i915_gem_clflush.h
i915_gem_context.c drm/i915: Fix context ban and hang accounting for client 2018-06-15 16:36:21 +03:00
i915_gem_context.h drm/i915: Forward declare struct intel_context 2018-05-25 08:21:19 +01:00
i915_gem_dmabuf.c
i915_gem_evict.c
i915_gem_execbuffer.c drm/i915: Redefine EINVAL for debugging 2018-06-21 10:32:37 +01:00
i915_gem_fence_reg.c
i915_gem_fence_reg.h
i915_gem_gtt.c drm/i915/gtt: Reduce a pair of runtime asserts 2018-06-14 20:25:54 +01:00
i915_gem_gtt.h drm/i915/gtt: Reduce a pair of runtime asserts 2018-06-14 20:25:54 +01:00
i915_gem_internal.c
i915_gem_object.c
i915_gem_object.h drm/i915: Replace drm_gem_object_unreference_unlocked with put function 2018-06-28 19:09:39 +02:00
i915_gem_render_state.c drm/i915/gtt: Rename i915_hw_ppgtt base member 2018-06-05 21:11:20 +01:00
i915_gem_render_state.h
i915_gem_shrinker.c drm/i915/gtt: Rename i915_hw_ppgtt base member 2018-06-05 21:11:20 +01:00
i915_gem_stolen.c drm/i915/gtt: Rename i915_hw_ppgtt base member 2018-06-05 21:11:20 +01:00
i915_gem_tiling.c
i915_gem_userptr.c drm/i915/userptr: reject zero user_size 2018-05-08 12:24:39 +01:00
i915_gemfs.c
i915_gemfs.h
i915_gpu_error.c drm/i915: Prepare for non-object vma 2018-06-07 21:53:10 +01:00
i915_gpu_error.h drm/i915/icl: Read the correct Gen11 interrupt registers 2018-05-17 15:35:08 -07:00
i915_ioc32.c
i915_irq.c drm/i915/execlists: Process one CSB update at a time 2018-06-28 22:55:04 +01: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 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
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: Remove unused enable_cmd_parser modparam 2018-05-17 20:52:39 +01:00
i915_params.h drm/i915: Remove unused enable_cmd_parser modparam 2018-05-17 20:52:39 +01:00
i915_pci.c drm/i915/aml: Introducing Amber Lake platform 2018-06-18 10:49:57 -07:00
i915_perf.c drm/i915/perf: make oa format tables const 2018-06-14 13:47:27 +03: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 drm/i915/icp: Add Interrupt Support 2018-06-27 14:28:51 -07:00
i915_request.c drm/i915: Only signal from interrupt when requested 2018-06-28 20:56:35 +01:00
i915_request.h drm/i915: Make closing request flush mandatory 2018-06-14 08:16:12 +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
i915_suspend.c
i915_sw_fence.c
i915_sw_fence.h
i915_syncmap.c
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: Split i915_gem_timeline into individual timelines 2018-05-02 23:57:18 +01:00
i915_trace.h drm/i915/ringbuffer: Fix context restore upon reset 2018-06-11 14:03:47 +01:00
i915_trace_points.c
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: Show vma allocator stack when in doubt 2018-06-28 20:56:35 +01:00
i915_vma.h drm/i915/gtt: Make gen6 page directories evictable 2018-06-12 18:01:51 +01:00
intel_acpi.c drm/i915/dsm: remove unnecessary dsm priv structure 2018-06-14 15:59:09 +03:00
intel_atomic.c drm/i915: Print prop name/id when rejecting it 2018-06-19 17:18:24 +03:00
intel_atomic_plane.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/icl: implement DVFS for ICL 2018-06-15 15:06:00 -07: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/ddi: Get AUX power domain for DP main link too 2018-06-26 13:00:52 +03:00
intel_device_info.c drm/i915: prefer INTEL_GEN() over INTEL_INFO()->gen 2018-04-26 18:14:29 +03:00
intel_device_info.h drm/i915/icl: Added ICL 11 slice, subslice and EU fuse detection 2018-03-21 10:36:33 +02:00
intel_display.c drm/i915: Replace drm_connector_{un/reference} with put,get functions 2018-06-28 19:09:21 +02:00
intel_display.h drm/i915/icl: Add power well support 2018-06-27 16:01:19 +03:00
intel_dp.c drm/i915/psr: Begin to handle PSR/PSR2 errors set by sink 2018-06-26 17:11:35 -07: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_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: Do read-modify-write as needed during MG PLL programming 2018-06-21 19:02:03 +03: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/psr: Begin to handle PSR/PSR2 errors set by sink 2018-06-26 17:11:35 -07:00
intel_dsi.c drm/i915: Allow DBLSCAN user modes with eDP/LVDS/DSI 2018-06-13 21:08:14 +03:00
intel_dsi.h
intel_dsi_dcs_backlight.c
intel_dsi_pll.c
intel_dsi_vbt.c drm/i915/dsi: improve dphy param limits logging 2018-04-19 15:20:10 +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/execlists: Unify CSB access pointers 2018-06-28 22:55:06 +01:00
intel_fbc.c drm/i915: Add debugfs file to clear FIFO underruns. 2018-04-10 16:29:24 +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.c drm/i915/uc: Fetch GuC/HuC firmwares from guc/huc specific init 2018-06-28 22:51:33 +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_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
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
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/gtt: Rename i915_hw_ppgtt base member 2018-06-05 21:11:20 +01:00
intel_guc_submission.h
intel_gvt.c drm/i915: Enable KVMGT for BXT. 2018-06-13 10:57:30 +08: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/icl: HPD pin for port F 2018-03-23 14:59:09 -07: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_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_i2c.c drm/i915/icl: fix gmbus gpio pin mapping 2018-06-12 14:12:34 -07:00
intel_lpe_audio.c
intel_lrc.c drm/i915/execlists: Stop storing the CSB read pointer in the mmio register 2018-06-28 22:55:08 +01:00
intel_lrc.h drm/i915: Store a pointer to intel_context in i915_request 2018-05-18 09:35:22 +01:00
intel_lrc_reg.h drm/i915/icl: Add Indirect Context Offset for Gen11 2018-03-07 15:07:39 +02: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: Allow DBLSCAN user modes with eDP/LVDS/DSI 2018-06-13 21:08:14 +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
intel_modes.c
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/backlight: switch to kernel unsigned int types 2018-06-18 14:46:04 +03:00
intel_pipe_crc.c i915: Convert to use match_string() helper 2018-05-04 10:23:43 +03:00
intel_pm.c drm/i915/icl: Don't update enabled dbuf slices struct until updated in hw 2018-06-04 16:53:55 -07:00
intel_psr.c drm/i915/psr: Enable CRC check in the static frame on the sink side 2018-06-26 17:15:55 -07:00
intel_renderstate.h
intel_renderstate_gen6.c
intel_renderstate_gen7.c
intel_renderstate_gen8.c
intel_renderstate_gen9.c
intel_ringbuffer.c drm/i915: Context objects can never be active when freed 2018-06-25 16:28:23 +01:00
intel_ringbuffer.h drm/i915/execlists: Reset CSB write pointer after reset 2018-06-28 22:55:07 +01:00
intel_runtime_pm.c drm/i915/icl: Add power well support 2018-06-27 16:01:19 +03:00
intel_sdvo.c drm/i915: Allow DBLSCAN user modes with eDP/LVDS/DSI 2018-06-13 21:08:14 +03:00
intel_sdvo_regs.h
intel_sideband.c
intel_sprite.c drm/i915: Fix sprite destination colorkeying on SKL+ 2018-06-08 21:20:21 +03:00
intel_tv.c drm/i915: Allow DBLSCAN user modes with eDP/LVDS/DSI 2018-06-13 21:08:14 +03: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_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_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/guc: Trace messages from CT while in debug 2018-03-28 20:38:23 +01:00
Makefile drm/i915/selftests: Refactor common flush_test() 2018-05-08 12:44:31 +01:00