linux/drivers/gpu/drm/i915
Rodrigo Vivi 5baf63cc4d drm/i915/psr: Use more PSR HW tracking.
So far we are using frontbuffer tracking for everything
and ignoring that PSR has a HW capable HW tracking for many
modern usages of GPU on Core platforms and newer Atom ones.

One reason for that is that we were trying to keep same
infrastructure in place for VLV/CHV than the rest of platforms.
But also because when this infrastructure was created
the front-buffer-tracking origin wasn't that good and stable
how it is today after Paulo reworked it to attend FBC cases.

However this PSR implementation without HW tracking died
on gen8LP. And newer platforms are starting to demand more HW
tracking specially with PSR2 cases in mind.

By disabling and re-enabling PSR totally every time we believe
someone is going to change the front buffer content we don't
allow PSR HW tracking to do this job and specially compromising
the whole idea of PSR2 case where the HW tracking detect only
the damaged area and do a partial screen update.

So, from now on, on the platforms that has hw_tracking let's
rely more on HW tracking.

This also is the case in used by other drivers and more validated
by SV teams. So I hope that this will lead us to less misterious
bugs.

v2: Only do this for platform that actually has hw tracking.

v3 from DK
Do this only for flips, small gradual changes are better.

Cc: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>
Cc: Jim Bride <jim.bride@linux.intel.com>
Cc: Vathsala Nagaraju <vathsala.nagaraju@intel.com>
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Signed-off-by: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>
Reviewed-by: Jose Roberto de Souza <jose.souza@intel.com>
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20180307033420.3086-3-dhinakaran.pandiyan@intel.com
2018-03-13 13:50:22 -07:00
..
gvt drm/i915/gvt: Return error at the failure of finding page_track 2018-03-06 14:49:38 +08:00
selftests drm/i915/icl: Gen11 forcewake support 2018-03-07 15:07:45 +02:00
dvo_ch7xxx.c
dvo_ch7017.c
dvo_ivch.c drm/i915/dvo: Remove incorrect kerneldoc markups 2018-02-14 12:04:31 +00:00
dvo_ns2501.c
dvo_sil164.c
dvo_tfp410.c
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: Use sseu size for determining eu_regs[] 2018-03-13 12:36:06 +00:00
i915_drv.c drm/i915/uc: Sanitize uC options early 2018-03-12 22:06:19 +00:00
i915_drv.h drm/i915/psr: Use more PSR HW tracking. 2018-03-13 13:50:22 -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/icl: new context descriptor support 2018-03-07 15:07:20 +02:00
i915_gem_context.h drm/i915: Update missing parts after the rename to i915_request 2018-02-23 16:34:32 +00: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: Rename drm_i915_gem_request to i915_request 2018-02-21 20:57:22 +00:00
i915_gem_execbuffer.c drm/i915: Rename drm_i915_gem_request to i915_request 2018-02-21 20:57:22 +00: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: Rename drm_i915_gem_request to i915_request 2018-02-21 20:57:22 +00:00
i915_gem_gtt.h drm/i915: Rename drm_i915_gem_request to i915_request 2018-02-21 20:57:22 +00: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: Rename drm_i915_gem_request to i915_request 2018-02-21 20:57:22 +00:00
i915_gem_render_state.c drm/i915: Rename drm_i915_gem_request to i915_request 2018-02-21 20:57:22 +00: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: Rename drm_i915_gem_request to i915_request 2018-02-21 20:57:22 +00:00
i915_gem_stolen.c drm: move read_domains and write_domain into i915 2018-02-16 14:12:48 +00:00
i915_gem_tiling.c drm/i915: Refactor common list iteration over GGTT vma 2017-12-07 23:26:55 +00:00
i915_gem_timeline.c drm/i915: properly init lockdep class 2017-12-14 20:10:01 +02:00
i915_gem_timeline.h drm/i915: Rename drm_i915_gem_request to i915_request 2018-02-21 20:57:22 +00:00
i915_gem_userptr.c drm: move read_domains and write_domain into i915 2018-02-16 14:12:48 +00:00
i915_gem.c drm/i915/frontbuffer: Pull frontbuffer_flush out of gem_obj_pin_to_display 2018-03-13 13:49:39 -07:00
i915_gem.h drm/i915/icl: Prepare for more rings 2018-03-01 14:13:47 +02: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 drm/i915: introduce simple gemfs 2017-10-07 10:11:41 +01:00
i915_gpu_error.c drm/i915: Move i915_gpu_error into its own header 2018-03-09 22:21:41 +00:00
i915_gpu_error.h drm/i915: Move i915_gpu_error into its own header 2018-03-09 22:21:41 +00: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/guc: Move GuC notification handling to separate function 2018-03-09 22:21:41 +00: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 drm/i915/perf: add support for Coffeelake GT2 2017-09-18 19:46:36 +01:00
i915_oa_cflgt3.c drm/i915/perf: Fix compiler warning for string truncation 2018-02-08 11:16:48 +00: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-08 11:16:49 +00: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_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: Enable inject_load_failure only in DEBUG config 2018-02-02 14:19:05 +00:00
i915_params.h drm/i915/guc: Keep GuC log disabled by default 2018-01-19 20:35:32 +00:00
i915_pci.c drm/i915/icl: Enhanced execution list support 2018-03-07 15:07:31 +02:00
i915_perf.c drm/i915/perf: fix perf stream opening lock 2018-03-01 14:32:37 +00:00
i915_pmu.c drm/i915: Make header i915_pmu.h more robust 2018-03-09 22:21:41 +00:00
i915_pmu.h drm/i915: Make header i915_pmu.h more robust 2018-03-09 22:21:41 +00:00
i915_pvinfo.h drm/i915: enable to read CSB and CSB write pointer from HWSP in GVT-g VM 2017-10-16 13:56:29 +03:00
i915_query.c drm/i915: expose rcs topology through query uAPI 2018-03-08 10:07:24 +00:00
i915_query.h drm/i915: add query uAPI 2018-03-08 10:07:18 +00:00
i915_reg.h drm/i915/psr: Display WA 0884 applied broadly for more HW tracking. 2018-03-12 11:43:49 -07:00
i915_request.c drm/i915: Remove the impedance mismatch around intel_engine_enable_signaling 2018-03-12 22:06:19 +00:00
i915_request.h drm/i915/breadcrumbs: Reduce signaler rbtree to a sorted list 2018-03-06 12:12:45 +00:00
i915_selftest.h drm/i915/selftests: Reduce the volume of the timeout message 2017-11-10 11:31:58 +00:00
i915_suspend.c drm/i915: Move i915_gem_restore_fences to i915_gem_resume 2017-09-29 12:30:17 +01:00
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-08 19:40:34 +00: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: Rename drm_i915_gem_request to i915_request 2018-02-21 20:57:22 +00:00
i915_utils.h drm/i915: Move some utility functions to i915_util.h 2017-12-22 09:13:47 +00:00
i915_vgpu.c
i915_vgpu.h drm/i915: enable to read CSB and CSB write pointer from HWSP in GVT-g VM 2017-10-16 13:56:29 +03:00
i915_vma.c drm/i915: Rename drm_i915_gem_request to i915_request 2018-02-21 20:57:22 +00:00
i915_vma.h drm/i915: Rename drm_i915_gem_request to i915_request 2018-02-21 20:57:22 +00:00
intel_acpi.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
intel_atomic_plane.c Merge tag 'drm-intel-next-2018-02-21' of git://anongit.freedesktop.org/drm/drm-intel into drm-next 2018-03-01 14:07:22 +10:00
intel_atomic.c Merge tag 'drm-intel-next-2018-02-21' of git://anongit.freedesktop.org/drm/drm-intel into drm-next 2018-03-01 14:07:22 +10:00
intel_audio.c drm/i915/audio: fix check for av_enc_map overflow 2018-02-15 16:29:13 +02:00
intel_bios.c drm/i915: Fix DSI panels with v1 MIPI sequences without a DEASSERT sequence v3 2018-02-14 11:38:12 +01:00
intel_bios.h
intel_breadcrumbs.c drm/i915: Remove the impedance mismatch around intel_engine_enable_signaling 2018-03-12 22:06:19 +00:00
intel_cdclk.c drm/i915/icl: add the main CDCLK functions 2018-02-13 10:16:04 -02:00
intel_color.c drm/i915: Don't mangle the CTM on pre-HSW 2018-02-28 15:17:12 +02:00
intel_crt.c drm/i915: Reinitialize sink scrambling/TMDS clock ratio on HPD 2018-03-06 17:57:24 -05:00
intel_csr.c drm/i915/dmc: DMC 1.07 for Cannonlake 2018-01-04 16:29:12 -08:00
intel_ddi.c drm/i915/icl: do not save DDI A/E sharing bit for ICL 2018-03-09 12:26:19 +02:00
intel_device_info.c drm/i915/debugfs: add rcs topology entry 2018-03-08 10:06:21 +00:00
intel_device_info.h drm/i915/debugfs: add rcs topology entry 2018-03-08 10:06:21 +00:00
intel_display.c drm/i915/frontbuffer: HW tracking for cursor moves to fix PSR lags. 2018-03-13 13:49:51 -07:00
intel_display.h drm/i915/psr: New power domain for AUX IO. 2018-02-27 12:05:43 -08:00
intel_dp_aux_backlight.c drm/i915: Rename global i915 to i915_modparams 2017-09-22 14:50:36 +03:00
intel_dp_link_training.c drm/i915: Track whether the DP link is trained or not 2018-03-06 17:59:08 -05:00
intel_dp_mst.c drm/i915: Nuke intel_digital_port->port 2017-11-09 20:06:14 +02:00
intel_dp.c drm/i915: Remove unused DP_LINK_CHECK_TIMEOUT 2018-03-09 16:13:52 -05:00
intel_dpio_phy.c drm: intel_dpio_phy: fix kernel-doc comments at nested struct 2018-02-19 12:19:04 +02:00
intel_dpll_mgr.c drm/i915/cnl: Simplify dco_fraction calculation. 2017-11-16 09:45:39 -08:00
intel_dpll_mgr.h
intel_drv.h drm/i915/psr: Use more PSR HW tracking. 2018-03-13 13:50:22 -07:00
intel_dsi_dcs_backlight.c
intel_dsi_pll.c
intel_dsi_vbt.c
intel_dsi.c drm/i915: Provide a device level .mode_valid() hook 2018-01-29 21:55:07 +02:00
intel_dsi.h
intel_dvo.c Merge tag 'drm-intel-next-2018-02-21' of git://anongit.freedesktop.org/drm/drm-intel into drm-next 2018-03-01 14:07:22 +10:00
intel_engine_cs.c drm/i915: Change parameters order in i915_gem_batch_pool_init 2018-03-09 22:21:41 +00:00
intel_fbc.c drm/i915: Handle changing enable_fbc parameter at runtime better. 2018-03-07 10:15:44 +01:00
intel_fbdev.c drm/i915/frontbuffer: Pull frontbuffer_flush out of gem_obj_pin_to_display 2018-03-13 13:49:39 -07:00
intel_fifo_underrun.c drm/i915: Don't rmw PIPESTAT enable bits 2017-09-25 16:54:09 +03:00
intel_frontbuffer.c drm/i915/psr: Use more PSR HW tracking. 2018-03-13 13:50:22 -07:00
intel_frontbuffer.h
intel_guc_ads.c drm/i915/guc : Decoupling ADS and logs from submission 2018-01-03 14:02:10 +00: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: Assert ctch->vma is allocated 2017-11-06 13:57:37 +00:00
intel_guc_ct.h
intel_guc_fw.c drm/i915/uc: Make GuC/HuC fw fetch and loading functions/file structure symmetric 2018-03-02 09:04:45 +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: Add support for reset engine using GuC commands 2017-11-02 08:42:11 +00:00
intel_guc_log.c drm/i915/guc: Create common entry points for log register/unregister 2018-03-09 22:21:41 +00:00
intel_guc_log.h drm/i915/guc: Create common entry points for log register/unregister 2018-03-09 22:21:41 +00:00
intel_guc_reg.h drm/i915/guc: Use consistent name for scratch register count 2017-11-24 20:47:39 +00:00
intel_guc_submission.c drm/i915/guc: Fill preempt context once at init time 2018-02-27 10:30:12 +00: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: Move GuC notification handling to separate function 2018-03-09 22:21:41 +00:00
intel_guc.h drm/i915/uc: Sanitize uC together with GEM 2018-03-12 22:06:19 +00:00
intel_gvt.c drm/i915/guc: Introduce USES_GUC_xxx helper macros 2017-12-06 14:41:49 +00:00
intel_gvt.h
intel_hangcheck.c drm/i915: Add some newlines to intel_engine_dump() headers 2018-02-05 10:59:59 +00:00
intel_hdcp.c drm/i915: Reauthenticate HDCP on failure 2018-02-05 12:59:23 -05:00
intel_hdmi.c drm/i915: Reinitialize sink scrambling/TMDS clock ratio on HPD 2018-03-06 17:57:24 -05:00
intel_hotplug.c drm/i915: Reinitialize sink scrambling/TMDS clock ratio on HPD 2018-03-06 17:57:24 -05:00
intel_huc_fw.c drm/i915/uc: Make GuC/HuC fw fetch and loading functions/file structure symmetric 2018-03-02 09:04:45 +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/huc: Mark firmware as failed on auth failure 2018-03-02 23:11:13 +00:00
intel_huc.h drm/i915/uc: Sanitize uC together with GEM 2018-03-12 22:06:19 +00:00
intel_i2c.c Add HDCP support to i915 drm driver. 2018-02-16 09:36:04 +10: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: add schedule out notification of preempted but completed request 2018-03-08 13:50:11 +02:00
intel_lrc.h drm/i915/icl: Enhanced execution list support 2018-03-07 15:07:31 +02:00
intel_lspcon.c drm/i915: For HPD connected port use hpd_pin instead of port. 2018-01-30 10:24:19 -08:00
intel_lvds.c drm/i915/lvds: Fixup commentary 2018-02-14 12:04:33 +00:00
intel_mocs.c drm/i915: Rename drm_i915_gem_request to i915_request 2018-02-21 20:57:22 +00: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: Move opregion definitions to dedicated intel_opregion.h 2017-12-22 09:19:48 +00:00
intel_opregion.h drm/i915: Move opregion definitions to dedicated intel_opregion.h 2017-12-22 09:19:48 +00: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/panel: Split range scaling calculation for readiblity 2018-02-14 12:02:44 +00:00
intel_pipe_crc.c drm/i915: Handle pipe CRC around enabling/disabling pipe. 2018-03-08 19:09:21 +01:00
intel_pm.c drm/i915: Index the ring frequency table by HW frequency range 2018-03-08 19:40:34 +00:00
intel_psr.c drm/i915/psr: Use more PSR HW tracking. 2018-03-13 13:50:22 -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: Update ring position from request on retiring 2018-03-09 14:13:31 +00:00
intel_ringbuffer.h drm/i915: Remove the impedance mismatch around intel_engine_enable_signaling 2018-03-12 22:06:19 +00:00
intel_runtime_pm.c drm/i915/psr: New power domain for AUX IO. 2018-02-27 12:05:43 -08:00
intel_sdvo_regs.h
intel_sdvo.c drm/i915: Convert intel_hpd_irq_event() into an encoder hotplug hook 2018-03-06 17:56:29 -05:00
intel_sideband.c drm/i915: Move rps.hw_lock to dev_priv and s/hw_lock/pcu_lock 2017-10-11 08:56:56 +01:00
intel_sprite.c Merge tag 'drm-intel-next-2018-02-21' of git://anongit.freedesktop.org/drm/drm-intel into drm-next 2018-03-01 14:07:22 +10:00
intel_tv.c drm/i915/tv: Cleanup up obsolete comments 2018-02-14 12:02:39 +00:00
intel_uc_fw.c drm/i915: Fixup kerneldoc for intel_uc_fw_upload() 2018-02-14 13:28:41 +00:00
intel_uc_fw.h drm/i915/uc: Sanitize uC together with GEM 2018-03-12 22:06:19 +00:00
intel_uc.c drm/i915/uc: Sanitize uC together with GEM 2018-03-12 22:06:19 +00:00
intel_uc.h drm/i915/uc: Sanitize uC together with GEM 2018-03-12 22:06:19 +00:00
intel_uncore.c drm/i915/icl: Gen11 forcewake support 2018-03-07 15:07:45 +02:00
intel_uncore.h drm/i915/icl: Gen11 forcewake support 2018-03-07 15:07:45 +02:00
intel_vbt_defs.h drm/i915/bios: add DP max link rate to VBT child device struct 2018-02-07 12:32:14 -08:00
Kconfig drm/i915/fence: Avoid del_timer_sync() from inside a timer 2017-09-19 13:06:21 +01:00
Kconfig.debug drm/i915: Avoid context dereference inside execlists_submission_tasklet 2017-12-19 23:04:45 +00:00
Makefile drm/i915: Warn against variable length arrays 2018-03-13 09:43:50 +00:00