mirror-linux/drivers/gpu/drm/i915
Jouni Högander 184889dfe0 drm/i915/psr: Do not trigger Frame Change events from frontbuffer flush
We want to get rid of triggering "Frame Change" events from
frontbuffer flush calls. We are about to move using TRANS_PUSH
register for this on LunarLake and onwards. Touching TRANS_PUSH
register from fronbuffer flush would be problematic as it's written by
DSB as well.

Fix this by using intel_psr_exit when flush or invalidate is done on
LunarLake and onwards. This is not possible on AlderLake and
MeteorLake due to HW bug in PSR2 disable.

This patch is also fixing problems with cursor plane where cursor is
disappearing or duplicate cursor is seen on the screen.

v2: Commit message updated

Bspec: 68927, 68934, 66624
Reported-by: Janna Martl <janna.martl109@gmail.com>
Closes: https://gitlab.freedesktop.org/drm/xe/kernel/-/issues/5522
Fixes: 411ad63877 ("drm/i915/psr: Use SFF_CTL on invalidate/flush for LunarLake onwards")
Tested-by: Janna Martl <janna.martl109@gmail.com>
Signed-off-by: Jouni Högander <jouni.hogander@intel.com>
Reviewed-by: Suraj Kandpal <suraj.kandpal@intel.com>
Link: https://lore.kernel.org/r/20250801062905.564453-1-jouni.hogander@intel.com
(cherry picked from commit 46fb38cb20)
Signed-off-by: Tvrtko Ursulin <tursulin@ursulin.net>
2025-08-12 09:05:11 +01:00
..
display drm/i915/psr: Do not trigger Frame Change events from frontbuffer flush 2025-08-12 09:05:11 +01:00
gem Summary of significant series in this pull request: 2025-07-31 14:57:54 -07:00
gt Significant patch series in this pull request: 2025-08-03 16:23:09 -07:00
gvt drm/i915: split out display register macros to a separate file 2025-06-09 13:25:10 +03:00
pxp drm/i915/pxp: fix undefined reference to `intel_pxp_gsccs_is_ready_for_sessions' 2025-04-22 10:55:38 +03:00
selftests Merge tag 'drm-intel-next-2025-07-04' of https://gitlab.freedesktop.org/drm/i915/kernel into drm-next 2025-07-08 14:07:44 +02:00
soc drm/xe/compat: remove old pcode compat interface 2025-06-23 21:45:17 +03:00
.gitignore
Kconfig
Kconfig.debug
Kconfig.profile
Makefile drm/i915/flipq: Provide the nuts and bolts code for flip queue 2025-06-27 15:54:43 +03:00
TODO.txt
i915_active.c Merge tag 'drm-intel-gt-next-2025-01-10' of https://gitlab.freedesktop.org/drm/i915/kernel into drm-next 2025-01-13 08:05:00 +10:00
i915_active.h drm/i915: Remove deadcode 2024-12-30 01:31:31 +01:00
i915_active_types.h
i915_cmd_parser.c
i915_cmd_parser.h
i915_config.c
i915_config.h
i915_debugfs.c drm/i915/debugfs: move PCH type to display caps 2025-04-11 09:47:39 +03:00
i915_debugfs.h
i915_debugfs_params.c
i915_debugfs_params.h
i915_deps.c
i915_deps.h
i915_driver.c drm/i915/dram: add return value and handling to intel_dram_detect() 2025-06-04 18:57:23 +03:00
i915_driver.h drm/i915/error: drop dmesg suggestion to file bugs on GPU hangs 2025-05-02 12:33:38 +03:00
i915_drm_client.c drm: make drm-active- stats optional 2024-12-19 16:56:17 +01:00
i915_drm_client.h
i915_drv.h Merge tag 'drm-intel-gt-next-2025-07-02' of https://gitlab.freedesktop.org/drm/i915/kernel into drm-next 2025-07-04 11:43:30 +10:00
i915_file_private.h
i915_gem.c drm/i915: fix typos in drm/i915 files 2025-01-23 05:48:23 -05:00
i915_gem.h drm/i915: move GEM_QUIRK_PIN_SWIZZLED_PAGES to i915_gem.h 2025-06-27 08:15:32 +02:00
i915_gem_evict.c
i915_gem_evict.h
i915_gem_gtt.c drm/i915: Fixed an typo in i915_gem_gtt.c 2024-11-25 10:59:00 -05:00
i915_gem_gtt.h
i915_gem_ww.c
i915_gem_ww.h
i915_getparam.c drm/{i915,xe}: convert i915 and xe display members into pointers 2025-05-16 11:15:16 +03:00
i915_getparam.h
i915_gpu_error.c drm for 6.17-rc1 2025-07-30 19:26:49 -07:00
i915_gpu_error.h drm/i915: use display snapshot mechanism for display irq regs 2025-04-14 21:34:17 +03:00
i915_gtt_view_types.h drm/i915: split out i915_gtt_view_types.h from i915_vma_types.h 2025-03-03 13:44:53 +02:00
i915_hwmon.c
i915_hwmon.h
i915_ioc32.c
i915_ioc32.h
i915_ioctl.c
i915_ioctl.h
i915_iosf_mbi.h x86/platform/iosf_mbi: Remove unused iosf_mbi_unregister_pmic_bus_access_notifier() 2025-04-01 20:31:39 +02:00
i915_irq.c drm/i915: stop including display/intel_display_{core, limits}.h from i915_drv.h 2025-05-27 11:25:53 +03:00
i915_irq.h drm/i915: Introduce i915_error_regs 2025-02-18 01:25:31 +02:00
i915_memcpy.c
i915_memcpy.h
i915_mitigations.c
i915_mitigations.h
i915_mm.c drm/i915: track_pfn() -> "pfnmap tracking" 2025-05-22 14:55:37 -07:00
i915_mm.h
i915_module.c Merge tag 'drm-intel-gt-next-2025-02-26' of https://gitlab.freedesktop.org/drm/i915/kernel into drm-next 2025-03-13 07:54:41 +10:00
i915_params.c
i915_params.h
i915_pci.c drm/i915/pci: Remove force_probe requirement for DG1 2025-05-15 16:50:04 +02:00
i915_pci.h
i915_perf.c drm/i915: Avoid open-coded use of ratelimit_state structure's ->missed field 2025-05-08 16:13:26 -07:00
i915_perf.h
i915_perf_oa_regs.h
i915_perf_types.h
i915_pmu.c drm/i915: fix build error some more 2025-06-25 10:23:16 +03:00
i915_pmu.h Merge tag 'drm-intel-gt-next-2025-02-26' of https://gitlab.freedesktop.org/drm/i915/kernel into drm-next 2025-03-13 07:54:41 +10:00
i915_priolist_types.h
i915_pvinfo.h
i915_query.c
i915_query.h
i915_reg.h drm/i915/power: move enum skl_power_gate under display 2025-06-26 21:50:23 +03:00
i915_reg_defs.h drm/i915: Convert REG_GENMASK*() to fixed-width GENMASK_U*() 2025-04-29 15:58:38 -04:00
i915_request.c drm/i915: Protect access to driver and timeline name 2025-06-13 08:26:36 +01:00
i915_request.h drm/i915: fix typos in drm/i915 files 2025-01-23 05:48:23 -05:00
i915_scatterlist.c
i915_scatterlist.h
i915_scheduler.c drm/i915: Fix memory leak by correcting cache object name in error handler 2024-12-09 10:29:06 +00:00
i915_scheduler.h
i915_scheduler_types.h
i915_selftest.h
i915_sw_fence.c drm/i915: Protect access to driver and timeline name 2025-06-13 08:26:36 +01:00
i915_sw_fence.h
i915_sw_fence_work.c
i915_sw_fence_work.h
i915_switcheroo.c drm/i915: stop including display/intel_display_{core, limits}.h from i915_drv.h 2025-05-27 11:25:53 +03:00
i915_switcheroo.h
i915_syncmap.c
i915_syncmap.h
i915_sysfs.c sysfs: treewide: switch back to bin_attribute::read()/write() 2025-06-17 10:44:13 +02:00
i915_sysfs.h
i915_tasklet.h
i915_trace.h drm/i915: extract intel_uncore_trace.[ch] 2024-12-16 18:09:31 +02:00
i915_trace_points.c
i915_ttm_buddy_manager.c
i915_ttm_buddy_manager.h
i915_user_extensions.c
i915_user_extensions.h
i915_utils.c treewide: Switch/rename to timer_delete[_sync]() 2025-04-05 10:30:12 +02:00
i915_utils.h drm/i915/backlight: drop dmesg suggestion to file bugs 2025-05-02 12:33:10 +03:00
i915_vgpu.c
i915_vgpu.h
i915_vma.c drm/i915: reduce stack usage in igt_vma_pin1() 2025-06-24 17:23:02 -04:00
i915_vma.h Merge tag 'drm-intel-next-2025-07-04' of https://gitlab.freedesktop.org/drm/i915/kernel into drm-next 2025-07-08 14:07:44 +02:00
i915_vma_resource.c
i915_vma_resource.h
i915_vma_types.h drm/i915: split out i915_gtt_view_types.h from i915_vma_types.h 2025-03-03 13:44:53 +02:00
intel_clock_gating.c drm/i915: stop including display/intel_display_{core, limits}.h from i915_drv.h 2025-05-27 11:25:53 +03:00
intel_clock_gating.h
intel_cpu_info.c drm/i915: Introduce intel_cpu_info.c for CPU IDs 2024-12-11 23:45:09 +01:00
intel_cpu_info.h drm/i915: Introduce intel_cpu_info.c for CPU IDs 2024-12-11 23:45:09 +01:00
intel_device_info.c drm/i915/dg2: Introduce DG2_D subplatform 2024-12-11 23:45:08 +01:00
intel_device_info.h drm/i915/dg2: Introduce DG2_D subplatform 2024-12-11 23:45:08 +01:00
intel_gvt.c drm/i915: fix typos in drm/i915 files 2025-01-23 05:48:23 -05:00
intel_gvt.h
intel_gvt_mmio_table.c drm/i915: split out display register macros to a separate file 2025-06-09 13:25:10 +03:00
intel_mchbar_regs.h
intel_memory_region.c drm/i915: Expose intel_memory_type_str() 2025-04-02 02:15:32 +03:00
intel_memory_region.h drm/i915: Expose intel_memory_type_str() 2025-04-02 02:15:32 +03:00
intel_pci_config.h
intel_pcode.c drm/i915/pcode: add struct drm_device based interface 2025-06-23 21:45:16 +03:00
intel_pcode.h drm/i915/pcode: add struct drm_device based interface 2025-06-23 21:45:16 +03:00
intel_region_ttm.c
intel_region_ttm.h
intel_runtime_pm.c ref_tracker: eliminate the ref_tracker_dir name field 2025-06-19 17:02:04 -07:00
intel_runtime_pm.h drm/i915: fix typos in drm/i915 files 2025-01-23 05:48:23 -05:00
intel_step.c
intel_step.h
intel_uncore.c drm/i915: add out_value to intel_wait_for_register_fw() and intel_de_wait_fw() 2025-06-04 16:28:35 +03:00
intel_uncore.h drm/i915: add out_value to intel_wait_for_register_fw() and intel_de_wait_fw() 2025-06-04 16:28:35 +03:00
intel_uncore_trace.c drm/i915: extract intel_uncore_trace.[ch] 2024-12-16 18:09:31 +02:00
intel_uncore_trace.h drm/i915: extract intel_uncore_trace.[ch] 2024-12-16 18:09:31 +02:00
intel_wakeref.c ref_tracker: eliminate the ref_tracker_dir name field 2025-06-19 17:02:04 -07:00
intel_wakeref.h drm/i915: reduce intel_wakeref.h dependencies 2025-04-01 11:48:18 +03:00
vlv_iosf_sb.c drm/i915: drop intel_dpio_phy.h include from VLV IOSF SB 2025-05-30 15:45:01 +03:00
vlv_iosf_sb.h drm/i915: rename VLV IOSF SB ports parameter to unit_mask 2025-05-13 10:26:45 +03:00
vlv_iosf_sb_reg.h drm/i915: rename vlv_sideband*.[ch] to vlv_iosf_sb*.[ch] 2025-05-13 10:26:44 +03:00
vlv_suspend.c drm/i915: extract intel_uncore_trace.[ch] 2024-12-16 18:09:31 +02:00
vlv_suspend.h